blank

blank

Para o ator de ameaças Lazarus, o ganho financeiro é uma das principais motivações, com ênfase particular no negócio de criptomoedas. À medida que o preço da criptomoeda aumenta e a popularidade dos negócios de token não fungível (NFT) e finanças descentralizadas (DeFi) continua a aumentar, o direcionamento do grupo Lazarus ao setor financeiro continua evoluindo.

Descobrimos recentemente um aplicativo DeFi trojanizado que foi compilado em novembro de 2021. Esse aplicativo contém um programa legítimo chamado DeFi Wallet que salva e gerencia uma carteira de criptomoedas, mas também implanta um arquivo malicioso quando executado. Esse malware é um backdoor completo que contém recursos suficientes para controlar a vítima comprometida. Depois de analisar as funcionalidades desse backdoor, descobrimos inúmeras sobreposições com outras ferramentas usadas pelo grupo Lazarus.

O operador de malware usou exclusivamente servidores da Web comprometidos localizados na Coreia do Sul para este ataque. Para assumir os servidores, trabalhamos em estreita colaboração com o KrCERT e, como resultado desse esforço, tivemos a oportunidade de investigar um servidor C2 do grupo Lazarus. O agente da ameaça configurou essa infraestrutura com servidores configurados como vários estágios. O primeiro estágio é a fonte para o backdoor, enquanto o objetivo dos servidores do segundo estágio é se comunicar com os implantes. Este é um esquema comum usado na infraestrutura Lazarus.

ADVERSÁRIO: Lazarus
FAMÍLIA DE MALWARE: Lazarus
ATT&CK IDS: T1566 – Phishing,T1102 – Serviço Web,T1496 – Sequestro de recursos,T1049 – Descoberta de conexões de rede do sistema,T1036 – Mascaramento,T1140 – Desofuscar/decodificar arquivos ou informações,T1104 – Canais de vários estágios,T1041 – Exfiltração sobre o canal C2,T1057 – Descoberta de Processos,T1070 – Remoção do Indicador no Host,T1071 – Protocolo de camada de aplicativo,T1082 – Descoberta de informações do sistema,T1083 – Descoberta de arquivos e diretórios,T1124 – Descoberta de hora do sistema,T1204 – Execução do usuário,T1547 – Execução de inicialização automática de inicialização ou logon,T1573 – Canal criptografado

Background

Em meados de dezembro de 2021, notamos um arquivo suspeito carregado no VirusTotal. À primeira vista, parecia um aplicativo legítimo relacionado a finanças descentralizadas (DeFi); no entanto, olhando mais de perto, descobrimos que ele iniciava um esquema de infecção. Quando executado, o aplicativo descarta um arquivo malicioso e um instalador para um aplicativo legítimo, iniciando o malware com o caminho do instalador troiano criado. Em seguida, o malware gerado substitui o aplicativo legítimo pelo aplicativo trojanizado. Por meio desse processo, o aplicativo trojanizado é removido do disco, permitindo que ele cubra seus rastros.

blank
Linha do tempo da infecção

Infecção inicial

Embora ainda não esteja claro como o agente da ameaça enganou a vítima para executar o aplicativo trojanizado (0b9f4612cdfe763b3d8c8a956157474a), suspeitamos que eles enviaram um e-mail de spear phishing ou entraram em contato com a vítima por meio da mídia social. O procedimento de infecção até então desconhecido começa com o aplicativo Trojanized. Este pacote de instalação está disfarçado como um programa DeFi Wallet contendo um binário legítimo reempacotado com o instalador.

Após a execução, ele adquire o caminho do malware do próximo estágio (C:\ProgramData\Microsoft\GoogleChrome.exe) e o descriptografa com um XOR de um byte (Chave: 0x5D). No processo de criação do próximo estágio do malware, o instalador grava os primeiros oito bytes, incluindo o cabeçalho ‘MZ’, no arquivo GoogleChrome.exe e envia os 71.164 bytes restantes da seção de dados do aplicativo trojanizado. Em seguida, o malware carrega o recurso CITRIX_MEETINGS de seu corpo e o salva no caminho C:\ProgramData\Microsoft\CM202025.exe. O arquivo resultante é um aplicativo DeFi Wallet legítimo. Eventualmente, ele executa o malware criado anteriormente com o nome do arquivo como parâmetro:

C:\ProgramData\Microsoft\GoogleChrome.exe “[nome do arquivo atual]”

blank
Diagrama de criação de malware

Criação de backdoors

O malware (d65509f10b432f9bbeacfc39a3506e23 ) gerado pelo aplicativo trojanizado acima é disfarçado como uma instância benigna do navegador Google Chrome. Após o lançamento, o malware verifica se foi fornecido com um argumento antes de tentar copiar o aplicativo legítimo “C:\ProgramData\Microsoft\CM202025.exe” para o caminho fornecido como parâmetro de linha de comando, o que significa substituir o instalador troiano original, quase certamente em uma tentativa de esconder sua existência anterior. Em seguida, o malware executa o arquivo legítimo para enganar a vítima, mostrando seu processo de instalação benigno. Quando o usuário executa o programa recém-instalado, ele mostra o software DeFi Wallet construído com o código fonte público.

blank
Captura de tela do aplicativo manipulado

Em seguida, o malware inicia a inicialização das informações de configuração. A configuração mostra a estrutura mostrada na tabela abaixo, consistindo em sinalizadores, endereços de servidor C2, valor de identificação da vítima e valor de tempo. Como a estrutura sugere, esse malware pode conter até cinco endereços C2, mas apenas três servidores C2 estão incluídos neste caso.

Desvio Comprimento (bytes) Descrição
0x00 4 Sinalizador para iniciar a operação C2
0x04 4 Valor aleatório para selecionar o servidor C2
0x08 4 Valor aleatório para identificador de vítima
0x0C 0x208 Endereço do servidor C2
0x214 0x208 Endereço do servidor C2
0x41C 0x208 Endereço do servidor C2
0x624 0x208 Endereço do servidor C2
0x82C 0x208 Endereço do servidor C2
0xA34 0x464 Buffer para informações do sistema
0xE98 0x400 Caminho completo do cmd.exe
0x1298 0x400 Caminho da pasta temporária
0x1698 8 Hora de iniciar a operação de backdoor
0x16A0 4 Intervalo de tempo
0x16A4 4 Sinalizador para reunir unidades lógicas
0x16A8 8 Sinalizador para enumerar informações de sessão
0x16B0 8 O valor de tempo para reunir informações da unidade lógica e da sessão

O malware escolhe aleatoriamente um endereço de servidor C2 e envia um sinal de beacon para ele. Este sinal é uma DWORD ‘0x60D49D94’ codificada sem criptografia; os dados de resposta retornados do C2 carregam o mesmo valor. Se o valor esperado do servidor C2 for recebido, o malware inicia sua operação de backdoor.

Após a comunicação adicional com o C2, o malware criptografa os dados por um método predefinido. A criptografia é feita via RC4 e a chave codificada 0xD5A3 antes de ser codificada adicionalmente com base64.

O malware gera parâmetros POST com nomes codificados. O tipo de solicitação (msgID), o valor de identificação da vítima e um valor gerado aleatoriamente são mesclados no parâmetro ‘jsessid’. Ele também usa o parâmetro ‘cookie’ para armazenar quatro valores de quatro bytes gerados aleatoriamente. Esses valores são novamente criptografados com RC4 e adicionalmente codificados em base64. Com base em nossa investigação do script C2, observamos que esse malware não apenas usa um parâmetro chamado ‘jsessid’, mas também ‘jcookie’.

blank
Estrutura do parâmetro ‘jsessid’

A solicitação HTTP a seguir mostra o malware tentando se conectar ao C2 com o tipo de solicitação ’60d49d98′ e um valor de cookie gerado aleatoriamente.

Dependendo da resposta do C2, o malware executa sua tarefa de backdoor instruída. Ele carrega várias funcionalidades para coletar informações do sistema e controlar a máquina da vítima.

Comando Descrição
0x60D49D97 Defina a configuração de tempo com o valor do intervalo de tempo atual (o padrão é 10)
0x60D49D9F Defina a configuração de tempo com dados entregues do servidor C2
0x60D49DA0 Reúna informações do sistema, como endereço IP, nome do computador, versão do sistema operacional, arquitetura da CPU
0x60D49DA1 Colete informações da unidade, incluindo tipo e tamanho livre
0x60D49DA2 Enumerar arquivos (com nome de arquivo, tamanho, hora)
0x60D49DA3 Enumerar processos
0x60D49DA4 Encerrar processo
0x60D49DA5 Alterar diretório de trabalho
0x60D49DA6 Conecte-se a um determinado endereço IP
0x60D49DA7 Registro de data e hora do arquivo
0x60D49DA8 Executar comando do Windows
0x60D49DA9 Excluir um arquivo com segurança
0x60D49DAA Processo de geração com a API CreateProcessW
0x60D49DAB Processo de geração com a API CreateProcessAsUserW
0x60D49DAC Processo de spawn com alto nível de integridade
0x60D49DAD Baixe o arquivo do servidor C2 e salve no caminho do arquivo fornecido
0x60D49DAE Envie a hora e o conteúdo da criação do arquivo
0x60D49DAF Adicione arquivos ao arquivo .cab e envie-o para o servidor C2
0x60D49DB0 Colete uma lista de arquivos no caminho fornecido
0x60D49DB1 Envie a configuração para o servidor C2
0x60D49DB2 Receba a nova configuração do servidor C2
0x60D49DB3 Defina a configuração para a hora atual
0x60D49DB4 Durma 0,1 segundo e continue

A infraestrutura

A Lazarus usou apenas servidores web comprometidos localizados na Coreia do Sul nesta campanha. Como resultado de trabalhar em estreita colaboração com o KrCERT para derrubar alguns deles, tivemos a chance de examinar o script C2 correspondente de um dos servidores comprometidos. O script descrito nesta seção foi descoberto no seguinte caminho:

O script é um arquivo ASP VBScript.Encode, comumente usado pelo grupo Lazarus em seus scripts C2. Após a decodificação, mostra a string ’60d49d95′ como código de resposta de erro, enquanto a string ’60d49d94′ é usada como mensagem de sucesso. Além disso, o histórico de conexão é salvo no arquivo ‘stlogo.jpg  e o endereço C2 para a próxima etapa é armazenado no arquivo ‘globals.jpg  localizado na mesma pasta.

blank
Configuração do script C2

Este script verifica qual valor é entregue no parâmetro ‘jcookie’ e, se tiver mais de 24 caracteres, extrai os primeiros oito caracteres como msgID Dependendo do valor msgID, ele chama funções diferentes. O comando backdoor e o resultado da execução do comando entregues pelo backdoor são armazenados em variáveis ​​globais. Já vimos esse esquema em operação antes com o cluster Bookcode [2] . Este script usa as seguintes variáveis ​​como sinalizadores e buffers para entregar dados e comandos entre o backdoor e um servidor C2 de segundo estágio:

  • lFlag: sinalizador para sinalizar que há dados para entregar ao backdoor
  • lBuffer: buffer para armazenar dados a serem enviados posteriormente para o backdoor
  • tFlag: sinalizador para sinalizar que há uma resposta do backdoor
  • tBuffer: buffer para armazenar dados de entrada do backdoor
ID da mensagem Nome da função Descrição
60d49d98 TFConnect Salve o valor ‘TID’ (identificador da vítima) no arquivo de log, envie o valor ‘jcookie’ com o endereço IP do cliente após adquirir o endereço C2 do próximo estágio do arquivo de configuração (globals.jpg). Encaminhe a resposta do próximo servidor de estágio para o cliente.
60d49d99 TConnect Entregue o comando para o backdoor:

Se o lFlag for ‘true’, envie lBuffer para o cliente. Redefina ‘lBuffer’ e defina lFlag como ‘false’. Caso contrário, redefina ‘tBuffer’ e defina tFlag como ‘false’.

60d49d9a LConnect Envie o comando e retorne o resultado da execução do comando:

Defina o valor ‘​​lBuffer’ para o parâmetro ‘jcookie’, entregando ‘tBuffer’ ao cliente.

60d49d9c Verificar Recupere informações do host (nome do computador, versão do sistema operacional). Exclua o arquivo de configuração, que salva o endereço do próximo estágio do C2, se existir. Em seguida, salve a nova configuração com os dados entregues através do parâmetro ‘jcookie’.
60d49d9d LogDown Entregue o arquivo de log após a codificação base64 e exclua-o.
os outros N / D Grava conexões com dados msgID desconhecidos/inesperados (tipo de solicitação) em um arquivo de log, as entradas são marcadas com ‘xxxxxxxx’ .

Atribuição

Acreditamos com alta confiança que o grupo Lazarus está vinculado a esse malware, pois identificamos malware semelhante no cluster CookieTime. O cluster CookieTime, chamado LCPDot pelo JPCERT, era um cluster de malware muito usado pelo grupo Lazarus até recentemente. Vimos o grupo Lazarus atingir a indústria de defesa usando o cluster CookieTime com um chamariz de oportunidade de trabalho. Já publicamos vários relatórios sobre esse cluster para nossos clientes do Threat Intelligence Service e identificamos um aplicativo Citrix trojanizado (5b831eaed711d5c4bc19d7e75fcaf46e) com a mesma assinatura de código que o malware CookieTime. O backdoor descoberto na investigação mais recente e o aplicativo Trojan descoberto anteriormente são quase idênticos. Eles compartilham, entre outras coisas, o mesmo método de comunicação C2, funcionalidades backdoor, rotina de geração de números aleatórios e o mesmo método para criptografar dados de comunicação. Além disso, esse malware foi mencionado em um artigo da Ahnlab discutindo conexões com o malware CookieTime (também conhecido como LCPDot).

blank
Mesma chave de backdoor do antigo malware CookieTime

Por sua vez, identificamos que o cluster CookieTime possui vínculos com os clusters Manuscrypt e ThreatNeedle, que também são atribuídos ao grupo Lazarus. Isso não se aplica apenas ao backdoor em si, mas também aos scripts C2, que mostram várias sobreposições com o cluster ThreatNeedle. Descobrimos quase todos os nomes de funções e variáveis, o que significa que os operadores reciclaram a base de código e geraram scripts C2 correspondentes para o malware.

Script ThreatNeedle C2 de
roit.co[.]kr/xyz/adminer/edit_fail_decoded.asp
script C2 deste caso

Scripts quase idênticos para buscar o endereço IP do cliente

Script ThreatNeedle C2 de:
edujikim[.]com/pay_sample/INIstart.asp
script C2 deste caso

Scripts semelhantes para salvar dados em um arquivo

Conclusões

Em uma investigação anterior descobrimos que o grupo BlueNoroff , que também está ligado ao Lazarus, comprometeu outro programa de carteira DeFi chamado MetaMask. Como podemos ver no caso mais recente, os grupos Lazarus e BlueNoroff tentam entregar seu malware sem chamar atenção para ele e desenvolveram métodos sofisticados para atrair suas vítimas. A indústria baseada em criptomoedas e blockchain continua a crescer e atrair altos níveis de investimento. Por esta razão, acreditamos firmemente que o interesse da Lazarus nesta indústria como uma importante fonte de ganho financeiro não diminuirá tão cedo.

Indicadores de Compromisso

Aplicativo DeFi com Trojan
0b9f4612cdfe763b3d8c8a956157474a     DeFi-App.exe

Porta dos fundos descartada
d65509f10b432f9bbeacfc39a3506e23     %ProgramData%\Microsoft\GoogleChrome.exe

Semelhante backdoor
a4873ef95e6d76856aa9a43d56f639a4
d35a9babbd9589694deb4e87db222606
70bcafbb1939e45b841e68576a320603
3f4cf1a8a16e48a866aebd5697ec107b
b7092df99ece1cdb458259e0408983c7
8e302b5747ff1dcad301c136e9acb4b0
d90d267f81f108a89ad728b7ece38e70
47b73a47e26ba18f0dba217cb47c1e16
77ff51bfce3f018821e343c04c698c0e

Servidores C2 de primeiro estágio (legítimos, comprometidos)
hxxp://emsystec[.]com/include/inc[.]asp
hxxp://www[.]gyro3d[.]com/common/faq[.]asp
hxxp:/ /www[.]newbusantour[.]co[.]kr/gallery/left[.]asp
hxxp://ilovesvc[.]com/HomePage1/Inquiry/privacy[.]asp
hxxp://www[.]syadplus [.]com/search/search_00[.]asp
hxxp://bn-cosmo[.]com/customer/board_replay[.]asp

Servidores C2 de segundo estágio (legítimos, comprometidos)
hxxp://softapp[.]co[.]kr/sub/cscenter/privacy[.]asp
hxxp://gyro3d[.]com/mypage/faq[.]asp

Mapeamento MITRE ATT&CK

Esta tabela contém todos os TTPs identificados na análise da atividade descrita neste relatório.

Tática Técnica Nome da técnica
Execução T1204.002 Execução do usuário: arquivo malicioso
Use aplicativo Trojan para eliminar backdoor malicioso
Persistência T1547.001 Execução de Inicialização Automática de Inicialização ou Logon: Chaves de Execução do Registro /
Registro da Pasta de Inicialização Dropdoor para a chave de registro Executar
Evasão de Defesa T1070.004 Remoção do Indicador no Host: Exclusão de Arquivo
O aplicativo trojanizado se sobrescreve após criar um aplicativo legítimo para remover seu rastro
T1070.006 Remoção do indicador no host: Timestomp
Backdoor capaz de fazer timestomping de arquivos específicos
Descoberta T1057 Lista de Descoberta de Processos
executando processos com backdoor
T1082 Descoberta de informações do sistema
Reúna endereço IP, nome do computador, versão do sistema operacional e arquitetura da CPU com backdoor
T1083 Descoberta de arquivos e diretórios
Listar arquivos em alguns diretórios com backdoor
T1124 System Time Discovery
Reúna informações do sistema com backdoor
Comando e controle T1071.001 Protocolo de camada de aplicativo: protocolos da Web
Use HTTP como canal C2 com backdoor
T1573.001 Canal criptografado: criptografia simétrica
Use criptografia RC4 e base64 com backdoor
Exfiltração T1041 Exfiltração no canal C2
Os exfiltrados coletaram dados em canais C2 com backdoor

https://github.com/DeFiCh/app
Relatório da APT Intel: Lazarus Covet Covid19 Related Intelligence

 

Fonte: Kaspersky


Descubra mais sobre DCiber

Assine para receber os posts mais recentes por e-mail.