Trojan DanaBot é atualizado com nova comunicação C&C | WeLiveSecurity

Trojan DanaBot é atualizado com nova comunicação C&C

Pesquisadores da ESET descobriram versões novas e atualizadas do trojan DanaBot que apresentam um protocolo mais complexo de comunicação com o C&C e pequenas modificações na arquitetura e nos IDs das campanhas.

Pesquisadores da ESET descobriram versões novas e atualizadas do trojan DanaBot que apresentam um protocolo mais complexo de comunicação com o C&C e pequenas modificações na arquitetura e nos IDs das campanhas.

O trojan modular de evolução rápida conhecido como DanaBot passou por outras mudanças e, em sua última versão, passou a contar com um protocolo de comunicação completamente novo. O protocolo, introduzido ao DanaBot no final de janeiro de 2019, adiciona várias camadas de criptografia à comunicação com o C&C da ameaça.

Além das mudanças na comunicação, a arquitetura do DanaBot e os IDs das 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, muitos incidentes causados pelo DanaBot, como em campanhas de spam na Polônia, Itália, Alemanha, Áustria e Ucrânia, bem como nos Estados Unidos. Em campanhas européias, foi possível ver como esse trojan expandiu suas capacidades com novos plugins e funcionalidades para o envio de spam.

Em 25 de janeiro de 2019, notamos na telemetria da ESET diferentes executáveis relacionados ao DanaBot. Depois de analisá-los, foi possível descobrir que esses binários eram, na verdade, variantes do DanaBot, mas que eles usavam um protocolo de comunicação diferente para se comunicar com o servidor C&C. Desde 26 de janeiro de 2019, os operadores do DanaBot pararam de criar binários com o protocolo anterior.

No momento de produção deste texto, a nova versão da ameaça estava sendo distribuída em dois cenários:

  • Como “atualizações” enviadas para vítimas do DanaBot.
  • Através de spam malicioso na Polônia.

O novo protocolo de comunicação

No protocolo de comunicação usado antes de 25 de janeiro, os pacotes não estavam criptografados de nenhuma forma, como pode ser visto na Figura 1.

Figura 1 – Captura do pacote que mostra o protocolo anterior com dados de texto simples.

Após as alterações mais recentes, o DanaBot passou a usar os algoritmos de criptografia AES e RSA em suas comunicações com a C&C. O novo protocolo de comunicação é complexo, pois utiliza várias camadas de criptografia. A figura 2 descreve o processo de criptografia.

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

Essas mudanças quebram as assinaturas existentes baseadas em rede e dificultam a criação de novas regras para os sistemas de detecção de intrusão (IDPS, sigla em inglês). Além disso, sem acesso às chaves RSA correspondentes, é impossível decodificar pacotes enviados ou recebidos. Portanto, arquivos PCAP de sistemas de análise baseados em nuvem (como ANY.RUN) tornam-se inutilizáveis ​​para os pesquisadores.

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

O cabeçalho de cada pacote enviado pelo cliente tem um byte em tamanho e seu valor é 24 (0x18):

OffsetSize (bytes)Meaning
0x00x8Size of the data after this header
0x80x8Random value
0x100x8Sum of first two fields

Para cada pacote, o cabeçalho é seguido por pacotes de dados criptografados em AES, os próximos 4 bytes indicam o tamanho do preenchimento do AES e, finalmente, a chave AES criptografada em RSA. Cada pacote é criptografado com uma chave AES diferente.

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

Design de pacote de dados

O design anterior de pacote de dados foi detalhado pelo Proofpoint em outubro de 2018. Na versão mais recente do DanaBot, o design foi ligeiramente modificado, como pode ser visto na Figura 4.

Figura 4 – Comparação do design de pacote de dados entre as versões anterior e a mais recente do DanaBot.

Mudanças na arquitetura do DanaBot

Junto com a mudança no protocolo de comunicação, o DanaBot também fez algumas alterações em sua arquitetura. Versões anteriores do DanaBot incluíam um componente que baixava e executava o módulo principal. Ou seja, este módulo baixava e executava plugins e configurações.

A versão mais recente usa um novo componente loader para baixar todos os plug-ins junto com o módulo principal. A persistência é obtida ao registrar o componente loader como um serviço.

Figura 5 – Comparação da arquitetura das versões anterior e atual do DanaBot.

Comandos

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

  • 0x12C – Olá. Primeiro comando enviado pelo cliente para o servidor.
  • 0x12D – Baixar o componente que executa a ameaça de 32/64 bits.
  • 0x12E – Solicitar lista de plugins e arquivos de configuração.
  • 0x12F – Baixar arquivos de configuração/plugin.

Os plugins e os arquivos de configuração baixados são criptografados usando as chaves AES do ID do cliente. Além disso, os plug-ins são compactados no formato ZIP usando a compactação LZMA, enquanto os arquivos de configuração são compactados com o zlib.

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

  • 0x130 – Carregar informações coletadas no servidor C&C (por exemplo: capturas de tela do computador da vítima, informações do sistema).
  • 0x131 – Carregar informações coletadas no servidor C&C (por exemplo: lista de arquivos no disco rígido da vítima).
  • 0x132 – Solicitar comandos adicionais ao servidor C&C. Há cerca de 30 comandos backdoor típicos disponíveis, incluindo plugins em execução, coleta de informações detalhadas do sistema e modificação de arquivos no sistema do cliente.
  • 0x133 – Atualizar a lista do servidor C&C através do proxy do Tor.
  • 0x134 – Propósito exato desconhecido – usado principalmente para comunicação entre plugins e o C&C.

Alterações nos IDs da campanha

Pesquisas anteriores sugeriram que o DanaBot é distribuído sob vários códigos de “afiliados” ou “campanhas”. Na versão anterior do DanaBot, pelo menos 20 diferentes IDs de campanha foram usados.

Na versão mais recente, os IDs da campanha foram modificados ligeiramente. Em 5 de fevereiro de 2019, observamos os seguintes IDs ativos:

  • ID = 2 parece ser uma versão de teste, oferecendo um número limitado de arquivos de configuração e nenhum webinject.
  • ID = 3 foi propagado de forma ativa, destinado a usuários tanto na Polônia quanto na Itália, fornecendo todos os arquivos de configuração e webinjects para alvos poloneses e italianos.
  • ID = 5 fornece arquivos de configuração para alvos australianos.
  • ID = 7 está sendo distribuído apenas na Polônia, fornecendo webinjects para alvos poloneses.
  • ID = 9 parece ser outra versão de teste, com uma distribuição limitada e sem um destino específico, fornecendo um número limitado de arquivos de configuração e sem webinject.

Conclusão

Em 2018, vimos o DanaBot se expandir tanto em propagação quanto em funcionalidades. Durante o início de 2019, foi possível ver como esse trojan foi submetido a alterações “internas”, o que indica um desenvolvimento ativo por parte de seus criadores. As atualizações mais recentes sugerem que os criadores dessa ameaça estão se esforçando para evitar a detecção no nível de rede e, possivelmente, prestando atenção às pesquisas publicadas e fazendo alterações para evitar a detecção.

Os sistemas da ESET detectam e bloqueiam todos os componentes e plug-ins do DanaBot sob os nomes de detecção listados na seção IoCs.

Esta investigação realizada por Kaspars Osis, Tomáš Procházka e Michal Kolář.

Indicadores de Comprometimento (IoCs)

Servidores C&C usados ​​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 que desde que os novos componentes do DanaBot foram lançados regularmente, compartilhamos apenas uma amostra de hashes.

ComponentSHA-1ESET detection name
Dropper98C70361EA611BA33EE3A79816A88B2500ED7844Win32/TrojanDropper.Danabot.O
Loader (x86), campaign ID=30DF17562844B7A0A0170C9830921C3442D59C73CWin32/Spy.Danabot.L
Loader (x64), campaign ID=3B816E90E9B71C85539EA3BB897E4F234A0422F85Win64/Spy.Danabot.G
Loader (x86), campaign ID=95F085B19657D2511A89F3172B7887CE29FC70792Win32/Spy.Danabot.I
Loader (x64), campaign ID=94075375A08273E65C223116ECD2CEF903BA97B1EWin64/Spy.Danabot.F
Main module (x86)28139782562B0E4CAB7F7885ECA75DFCA5E1D570Win32/Spy.Danabot.K
Main module (x64)B1FF7285B49F36FE8D65E7B896FCCDB1618EAA4BWin64/Spy.Danabot.C

Plugins

PluginSHA-1ESET detection name
RDPWrap890B5473B419057F89802E0B6DA011B315F3EF94Win32/Spy.Danabot.H
Stealer (x86)E50A03D12DDAC6EA626718286650B9BB858B2E69Win32/Spy.Danabot.C
Stealer (x64)9B0EC454401023DF6D3D4903735301BA669AADD1Win64/Spy.Danabot.E
SnifferDBFD8553C66275694FC4B32F9DF16ADEA74145E6Win32/Spy.Danabot.B
VNCE0880DCFCB1724790DFEB7DFE01A5D54B33D80B6Win32/Spy.Danabot.D
TOR73A5B0BEE8C9FB4703A206608ED277A06AA1E384Win32/Spy.Danabot.G

Discussão