O trojan modular de rápido crescimento
DanaBot passou por novas mudanças. A versão lançada no final de janeiro de 2019 implementa um protocolo de comunicação completamente novo que adiciona vários níveis de criptografia à comunicação do Trojan e seu servidor C&C. Além disso, a arquitetura do DanaBot e os IDs da campanha foram alterados.
Evolução do DanaBot
Depois de ser
descoberto em maio de 2018 como parte de uma campanha de spam direcionada à Austrália, o DanaBot apareceu em vários outros ataques, incluindo uma campanha de spam na
Polônia, Itália, Alemanha, Áustria e Ucrânia , além dos
Estados Unidos . Nas campanhas europeias, a funcionalidade do Trojan foi aprimorada com novos plugins e
recursos de spam .
Em 25 de janeiro, encontramos arquivos executáveis incomuns relacionados ao DanaBot em dados de telemetria. Uma verificação adicional revelou que esses arquivos binários são realmente versões do DanaBot, mas eles usam um protocolo de comunicação diferente para se comunicar com o servidor C & C. Desde 26 de janeiro, os operadores do cavalo de Troia pararam de montar arquivos binários com o protocolo antigo.
No momento da redação deste artigo, a nova versão do DanaBot era distribuída em dois cenários:
- como “atualizações” entregues às vítimas do DanaBot;
- via correio de spam (na Polônia).
Novo protocolo de comunicação
No protocolo, usado até 25 de janeiro, os pacotes não foram criptografados, como mostra a Figura 1.
Figura 1. Uma captura de pacote mostrando o protocolo antigo com dados em formato não criptografadoApós a conclusão, o DanaBot usa algoritmos de criptografia AES e RSA na comunicação com o servidor C & C. O novo protocolo de comunicação é mais complexo porque usa vários níveis de criptografia, como mostra a figura abaixo.
Figura 2. Esquema do novo protocolo de comunicação DanaBotEssas alterações evitam a detecção usando assinaturas de rede existentes e dificultam a criação de novas regras para sistemas de detecção e prevenção de intrusões. Além disso, sem acesso às chaves RSA correspondentes, não é possível decodificar pacotes enviados ou recebidos; portanto, arquivos RSAP de sistemas de análise baseados em nuvem (como
ANY.RUN ) não são adequados para pesquisa.
Figura 3. Capturar um pacote com um novo protocolo de comunicaçãoCada pacote enviado pelo cliente possui um cabeçalho de 24 (0x18) bytes:

Para cada pacote, o cabeçalho é seguido pelos dados do pacote criptografados pelo AES, depois um valor de 4 bytes indicando o tamanho do turno do AES e, em seguida, a chave AES, criptografada pelo RSA. Todos os pacotes são criptografados com diferentes chaves AES.
As respostas do servidor usam o mesmo formato. Diferentemente das versões anteriores, os dados do pacote nas respostas do servidor não correspondem a nenhuma estrutura específica (com algumas exceções).
Estrutura de pacotes de dados
A estrutura de dados do pacote anterior foi descrita em detalhes pela
Proofpoint em outubro de 2018. Na versão mais recente do DanaBot, esse esquema é ligeiramente modificado, conforme mostrado na figura abaixo.
Figura 4. Comparação da estrutura de dados em pacotes nas versões antiga e nova do DanaBotAlterações na arquitetura do DanaBot
Além do protocolo de comunicação, o DanaBot possui uma arquitetura ligeiramente alterada. As versões anteriores do cavalo de Troia incluíam um componente que baixava e executava o módulo principal. Em seguida, o módulo principal baixou e executou plugins e configurações.
Na versão mais recente, essas funções são executadas por um novo gerenciador de inicialização, que é usado para baixar todos os plug-ins junto com o módulo principal. A persistência é garantida registrando o componente do carregador de inicialização como um serviço.
Figura 5. Comparação da arquitetura das versões antiga e nova do DanaBotEquipas
De acordo com a análise, o componente loader usa os seguintes comandos:
- 0x12C - Olá. O primeiro comando enviado do cliente para o servidor
- 0x12D - carregar componente do iniciador de 32/64 bits
- 0x12E - solicite uma lista de plugins e arquivos de configuração
- 0x12F - carregar plugins / arquivos de configuração
Os plug-ins e arquivos de configuração baixados são criptografados com a chave AES obtida do ID do cliente. Além disso, os plugins são arquivados no formato ZIP usando a compactação LZMA, enquanto os arquivos de configuração são arquivados usando o zlib.
Comandos com o ID 0x130-0x134 são enviados pelo módulo principal:
- 0x130 - transfira as informações coletadas para um servidor de C&C (por exemplo, uma captura de tela do computador da vítima; dados do sistema)
- 0x131 - transfira as informações coletadas para um servidor C&C (por exemplo, uma lista de arquivos no disco rígido de um computador infectado)
- 0x132 - solicite mais comandos do servidor C&C. Existem cerca de 30 comandos típicos de backdoors, incluindo o lançamento de plugins, a coleta de informações do sistema e a alteração de arquivos no sistema do cliente.
- 0x133 - atualize a lista de servidores C&C através do proxy Tor
- 0x134 - o destino exato é desconhecido, provavelmente é usado para comunicação entre plug-ins e um servidor C&C
Alterar IDs da campanha
Um estudo anterior mostrou que o DanaBot é distribuído sob diferentes IDs.
Na versão anterior do DanaBot,
foram utilizados cerca de 20 identificadores de campanha . Na versão mais recente, os identificadores mudaram um pouco. Em 5 de fevereiro de 2019, observamos os seguintes IDs:
- ID = 2 aparentemente, uma versão de teste que atende a um pequeno número de arquivos de configuração, sem injeção na Web
- O ID = 3 é distribuído ativamente, direcionado a usuários na Polônia e na Itália, atende a todos os arquivos de configuração e injeções da Web para fins poloneses e italianos
- ID = 5 serve arquivos de configuração para fins australianos
- ID = 7 aplica-se apenas à Polônia, serve injeções na Web para fins poloneses
- O ID = 9, aparentemente, também é uma versão de teste com distribuição limitada e sem direcionamento especial; ele serve um número limitado de arquivos de configuração, sem injeção na Web
Conclusões
Em 2018, observamos o desenvolvimento do DanaBot em termos de
distribuição e
funcionalidade . No início de 2019, o Trojan passou por mudanças "internas", indicando o trabalho ativo de seus criadores. Atualizações recentes sugerem que os criadores do DanaBot estão se esforçando para evitar a descoberta no nível da rede. É possível que os autores do Trojan prestem atenção aos estudos publicados, a fim de fazer alterações no código imediatamente, à frente dos desenvolvedores de produtos por segurança.
Os produtos ESET detectam e bloqueiam todos os componentes e plugins do DanaBot. Os nomes de detecção são fornecidos na próxima seção.
Indicadores de compromisso (IoCs)
Servidores C e C usados pela nova versão do DanaBot84.54.37[.]102
89.144.25[.]243
89.144.25[.]104
178.209.51[.]211
185.92.222[.]238
192.71.249[.]51
Servidores para injeção e redirecionamento da Web47.74.249[.]106
95.179.227[.]160
185.158.249[.]144
Exemplos de hashNovas versões do DanaBot são lançadas regularmente, para que possamos fornecer apenas parte dos hashes:
Conta-gotas
98C70361EA611BA33EE3A79816A88B2500ED7844
Win32 / TrojanDropper.Danabot.O
0DF17562844B7A0A0170C9830921C3442D59C73C
de
0DF17562844B7A0A0170C9830921C3442D59C73C
(x86), ID = 3
0DF17562844B7A0A0170C9830921C3442D59C73C
Win32 / Spy.Danabot.L
B816E90E9B71C85539EA3BB897E4F234A0422F85
de
B816E90E9B71C85539EA3BB897E4F234A0422F85
(x64), ID = 3
B816E90E9B71C85539EA3BB897E4F234A0422F85
Win64 / Spy.Danabot.G
5F085B19657D2511A89F3172B7887CE29FC70792
de
5F085B19657D2511A89F3172B7887CE29FC70792
(x86), ID = 9
5F085B19657D2511A89F3172B7887CE29FC70792
Win32 / Spy.Danabot.I
4075375A08273E65C223116ECD2CEF903BA97B1E
de
4075375A08273E65C223116ECD2CEF903BA97B1E
(x64), ID = 9
4075375A08273E65C223116ECD2CEF903BA97B1E
Win64 / Spy.Danabot.F
Módulo principal (x86)
28139782562B0E4CAB7F7885ECA75DFCA5E1D570
Win32 / Spy.Danabot.K
Módulo principal (x64)
B1FF7285B49F36FE8D65E7B896FCCDB1618EAA4B
Win64 / Spy.Danabot.C
PluginsRDPWrap
890B5473B419057F89802E0B6DA011B315F3EF94
Win32 / Spy.Danabot.H
Stealer (x86)
E50A03D12DDAC6EA626718286650B9BB858B2E69
Win32 / Spy.Danabot.C
Stealer (x64)
9B0EC454401023DF6D3D4903735301BA669AADD1
Win64 / Spy.Danabot.E
Sniffer
DBFD8553C66275694FC4B32F9DF16ADEA74145E6
Win32 / Spy.Danabot.B
VNC
E0880DCFCB1724790DFEB7DFE01A5D54B33D80B6
Win32 / Spy.Danabot.D
TOR
73A5B0BEE8C9FB4703A206608ED277A06AA1E384
Win32 / Spy.Danabot.G