Trojan DanaBot tem novo protocolo de comunicação C&C

Investigadores da ESET descobriram novas e atualizadas versões do trojan DanaBot que apresentam um protocolo de comunicação com o C&C mais complexo e ligeiras modificações tanto na sua arquitetura como nos ID das campanhas.

O trojan modular de rápida evolução conhecido como DanaBot passou por mudanças adicionais e, na sua última versão, possui um protocolo de comunicação completamente novo. O protocolo, apresentado ao DanaBot no final de janeiro de 2019, adiciona várias camadas de encriptação à comunicação com o DanaBot C&C.

Além das mudanças na comunicação, a arquitetura do DanaBot e dos IDs da campanha também foram modificados.

A evolução do DanaBot

Desde que foi descoberto em maio de 2018 como parte de uma campanha de spam direcionada à Austrália, houve muita atividade do DanaBot; aparecendo em campanhas de spam malicioso na Polónia, Itália, Alemanha, Áustria e Ucrânia, bem como nos Estados Unidos. Nas campanhas europeias, foi possível ver como o trojan expandiu as suas capacidades com novos plugins e funcionalidades para envio de spam.

A 25 de janeiro de 2019, notámos na telemetria ESET executáveis relacionados com o DanaBot pouco comuns. Depois de inspecioná-los, podemos revelar que esses binários eram, na verdade, variantes do DanaBot, mas usavam um protocolo de comunicação diferente para se comunicarem com o servidor C&C. Desde 26 de janeiro de 2019, os operadores da DanaBot deixaram de criar binários com o protocolo antigo.

Na altura em que este artigo foi escrito, a nova versão estava a ser distribuída em dois cenários:

  • Como “atualizações” enviadas a vítimas de DanaBot existentes
  • Através de spam malicioso na Polónia

O novo protocolo de comunicação

No protocolo de comunicação utilizado antes de 25 de janeiro, os pacotes não estavam encriptados de forma nenhuma, como se pode verificar na Figura 1.

Figura 1 – Captura do pacote que mostra o antigo protocolo com dados em texto simples

Depois das mais recentes alterações, o DanaBot passou a utilizar os algoritmos de encriptação AES e RSA nas suas comunicações com o C&C. O novo protocolo de comunicação é complexo, já que utiliza várias camadas de encriptação. A figura 2 descreve o processo de encriptação.

Figura 2 – Um diagrama do novo protocolo de comunicação do DanaBot

Estas alterações rompem com assinaturas existentes baseadas na rede e dificultam a criação de novas regras para os Sistemas de Prevenção e Deteção de Intrusos (IDPS). Além disso, sem acesso às chaves RSA correspondentes, é impossível desencriptar pacotes enviados ou recebidos; portanto, ficheiros PCAP de sistemas de análise baseados na cloud (como ANY.RUN) tornam-se inutilizáveis para os investigadores.

Figura 3 – Estrutura de um pacote com o novo protocolo de comunicação

O cabeçalho de cada pacote enviado pelo cliente tem a dimensão de um byte e o seu valor é de 24 (0x18):

Em cada pacote, o cabeçalho é seguido por pacotes de dados encriptados no AES, os 4 bytes seguintes indicam o tamanho do conteúdo AES e, finalmente, a chave AES encriptada no RSA. Cada pacote é encriptado com uma chave AES diferente.

A resposta do servidor utiliza o mesmo formato. Ao contrário das versões anteriores, os pacotes de dados nas respostas do servidor não seguem nenhum layout específico (salvo algumas exceções).

Layout do pacote de dados

O layout anterior do pacote de dados foi detalhado pelo Proofpoint em outubro de 2018. Na versão mais recente do DanaBot, o layout está ligeiramente modificado, como se pode ver na Figura 4.

Figura 4 – Comparação do layout do pacote de dados entre as versões antigas e as mais recentes do DanaBot

Mudanças na arquitetura do DanaBot

Com a mudança no protocolo de comunicação, o DanaBot também realizou algumas alterações na sua arquitetura. Versões anteriores do DanaBot incluíam um componente que descarregava e executava o módulo principal. Este módulo descarregava e executava plugins e configurações.

A versão mais recente utiliza um novo componente loader para descarregar todos os plugins em simultâneo com o módulo principal. A persistência é obtida registando o componente loader como um serviço.

Figura 5 – Comparação da arquitectura de verões anteriores e atuais do DanaBot

Comandos

De acordo com a nossa análise, o componente loader utiliza os seguintes comandos:

0x12C – Olá. Primeiro comando enviado pelo cliente ao servidor

0x12D – Descarregar o componente que executa a ameaça de 32/64-bit

0x12E – Solicitar lista de plugins e ficheiros de configuração

0x12F – Descarregar ficheiros de configuração/plugin

Os plugins e os ficheiros de configuração descarregados estão encriptados mediante a utilização de chaves AES provenientes do ID do cliente. Adicionalmente, os plugins são comprimidos em formato ZIP utilizando a compressão LZMA, enquanto que os ficheiros de configuração são comprimidos utilizando zlib.

Comandos com números de ID 0x130 – 0x134 são enviados pelo módulo principal:

0x130 – Carregar informação recolhida no servidor C&C (por exemplo: capturas de ecrã do computador da vítima; informação do sistema)

0x131 – Carregar informação recolhida no servidor C&C (por exemplo: lista de ficheiros no disco rígido da vítima)

0x132 – Solicitar ao servidor C&C comandos adicionais. Existem cerca de 30 comandos típicos de backdoors disponíveis, incluindo execução de plugins, compilação de informação detalhada do sistema e modificação de ficheiros no sistema cliente

0x133 – Atualizar a lista do servidor C&C através da proxy de Tor

0x134 – Propósito exato desconhecido; principalmente utilizado para comunicação entre plugins e o C&C

Alterações nos ID da campanha

Investigações prévias sugeriam que o DanaBot se distribui sob vários ID de “afiliados” ou “campanhas”.

Na versão anterior do DanaBot, foram utilizados pelo menos 20 IDs de campanhas diferentes. Nesta última versão, os ID foram modificados ligeiramente. A partir de 5 de fevereiro de 2019, foram observados os seguintes ID ativos:

ID=2parece ser uma versão de teste, oferecendo um número limitado de ficheiros de configuração e nenhum webinject

ID=3foi propagado ativamente, dirigido a utilizadores tanto da Polónia como de Itália, fornecendo todos os ficheiros de configuração e webinjects tanto para alvos da Polónia como de Itália

ID=5fornece ficheiros de configuração para alvos na Austrália

ID=7está a ser distribuído apenas na Polónia, fornecendo webinjects para alvos na Polónia

ID=9parece ser outra versão de teste, com uma distribuição limitada e sem um alvo específico, proporcionando um número limitado de ficheiros de configuração e nenhum webinject

Conclusão

Em 2018, vimos o DanaBot expandir-se tanto na forma de se propagar como nas suas funcionalidades. No início de 2019 verificámos que o trojan foi submetido a alterações “internas”, o que indica um desenvolvimento ativo por parte dos seus autores. As atualizações mais recentes sugerem que os autores estão a esforçar-se para evitar a deteção ao nível da rede e, possivelmente, estão também atentos aos resultados de investigação publicados e fazem alterações para evitar a deteção.

Os sistemas ESET detetam e bloqueiam todos os componentes e pluggins do DanaBot sob os nomes de deteção listados na secção IoCs.

Indicadores de Compromisso (IoCs)

Servidores C&C utilizados pela nova versão do DanaBot

  • 84.54.37[.]102
  • 89.144.25[.]243
  • 89.144.25[.]104
  • 178.209.51[.]211
  • 185.92.222[.]238
  • 192.71.249[.]51

Webinject e servidores redirecionados

  • 47.74.249[.]106
  • 95.179.227[.]160
  • 185.158.249[.]144

Exemplo de hashes

Observe-se que, como os novos componentes do DanaBot foram lançados de forma regular, referimo-nos apenas a uma amostra de hashes.

Plugins

DEIXE UMA RESPOSTA

Please enter your comment!
Please enter your name here

fourteen − thirteen =