ESET participa da operação global para interromper o Trickbot
Ao longo de seu monitoramento, a ESET analisou milhares de amostras maliciosas todos os meses para ajudar neste esforço
A ESET colaborou com os parceiros Microsoft, Lumen’s Black Lotus Labs, NTT Ltd. e outros em uma tentativa de interromper botnets do Trickbot. A ESET contribuiu para o projeto fornecendo análise técnica, informações estatísticas e nomes de domínio e IPs de servidor de comando e controle conhecidos.
O Trickbot infectou mais de um milhão de dispositivos de computação em todo o mundo desde o final de 2016 e temos monitorado suas atividades desde o início. Só em 2020, nossa plataforma automática analisou mais de 125.000 amostras maliciosas e baixou e descriptografou mais de 40.000 arquivos de configuração usados pelos diferentes módulos do Trickbot, dando-nos um excelente ponto de vista dos diferentes servidores C&C usados por este botnet.
Trickbot, um botnet de longa duração
O Trickbot tem sido um grande incômodo para os usuários da Internet há muito tempo. A primeira detecção do ESET para o Trickbot foi criada no final de 2016. Durante esses anos, os comprometimentos do Trickbot foram relatados de maneira constante, tornando-o um dos maiores e mais duradouros botnets existentes. Conforme relatado em nosso Relatório de Ameaças Q1 2020 , o Trickbot é uma das famílias de malware bancário mais prevalentes. Conforme visto na Figura 1, os dados de telemetria da ESET mostram que essa cepa de malware representa uma ameaça para usuários da Internet em todo o mundo.
Figura 1. Detecções mundiais de Trickbot entre outubro de 2019 e outubro de 2020
Ao longo de sua existência, o malware Trickbot foi distribuído de várias maneiras. Recentemente, uma cadeia que observamos com frequência é o Trickbot sendo descartado em sistemas já comprometidos pelo Emotet, outro grande botnet. No passado, o malware Trickbot era aproveitado por seus operadores principalmente como um trojan bancário, roubando credenciais de contas bancárias online e tentando realizar transferências fraudulentas.
A arquitetura modular do Trickbot permite que ele execute uma vasta gama de ações maliciosas usando uma variedade de plug-ins. Ele pode roubar todos os tipos de credenciais de um computador comprometido e, mais recentemente, tem sido observado principalmente como um mecanismo de entrega para ataques mais prejudiciais, como ransomware.
Um dos plug-ins mais antigos desenvolvidos para a plataforma permite que o Trickbot use web injects , uma técnica que permite ao malware alterar dinamicamente o que o usuário de um sistema comprometido vê ao visitar sites específicos. Para operar, este plugin depende de arquivos de configuração baixados pelo módulo principal. Eles contêm informações sobre quais sites devem ser modificados e como. A Figura 2 mostra um trecho de um arquivo de configuração descriptografado contendo URLs direcionados e os URLs C&C maliciosos que o bot deve contatar quando a vítima acessa os URLs direcionados.
<dinj><lm>https://<targeted URL>/retail/*</lm><hl>https://195.123.241[.]63:446/response.php?s=1595536873511390&id=f93fXZS6rZ70s42y9uVI</hl><pri>100</pri><sq>2</sq><require_header>*text/html*</require_header></dinj><dinj><lm>https://<targeted URL>/wps/*</lm><hl>https://195.123.241[.]63:446/response.php?s=1595536873511390&id=IbvDEzyn1zHm5Bqcse2V</hl><pri>100</pri><sq>2</sq><require_header>*text/html*</require_header></dinj><dinj><lm>https://<targeted URL>/ibank/*</lm><hl>https://195.123.241[.]63:446/response.php?s=1595536873511390&id=4hXQ3ZPSm9OQIKyMQaYZ</hl><pri>100</pri><sq>2</sq><require_header>*text/html*</require_header></dinj>
Figura 2. Trecho de um arquivo de configuração dinj descriptografado (redigido)
Através do nosso monitoramento de campanhas do Trickbot, coletamos dezenas de milhares de arquivos de configuração diferentes, permitindo-nos saber quais sites foram alvos dos operadores do Trickbot. A Figura 3 mostra o número de sites extraídos dos arquivos de configuração em 2020.
Figura 3. Número de sites direcionados em 2020
Esses URLs direcionados pertencem principalmente a instituições financeiras. Há uma queda acentuada no número de alvos encontrados nesses arquivos de configuração a partir de março. Isso coincide com o momento em que os operadores do Trickbot retiraram o módulo webinject da lista de plug-ins padrão baixados automaticamente pelo módulo principal – é por isso que não temos dados em março; tivemos que ajustar nossos processos para manter a visibilidade nos URLs direcionados. Essa queda no número de alvos provavelmente se deve ao fato de a gangue do Trickbot começar a se concentrar em outro meio de monetização durante esse período: o ransomware.
Nesses casos, um comprometimento do Trickbot é primeiro aproveitado para realizar o reconhecimento e o movimento lateral na rede de uma organização e, em seguida, colocar o ransomware Ryuk no máximo de sistemas possível. A partir dos dados que coletamos, parece que os operadores do Trickbot deixaram de tentar roubar dinheiro de contas bancárias para comprometer uma organização inteira com o Trickbot e então usá-lo para executar Ryuk e exigir um resgate para desbloquear os sistemas afetados.
Também observamos novos projetos de desenvolvimento de malware supostamente vindos de operadores do Trickbot, o que também pode explicar seu súbito desinteresse em operar o Trickbot como um cavalo de Troia bancário. Um desses projetos é o chamado projeto Âncora , uma plataforma voltada principalmente para espionagem em vez de crimeware. Eles também estão provavelmente envolvidos no desenvolvimento do malware Bazar – um carregador e backdoor usado para implantar malware, como ransomware, e para roubar dados confidenciais de sistemas comprometidos.
Mergulho profundo do Trickbot
O que torna o Trickbot tão versátil é que suas funcionalidades podem ser amplamente estendidas com plug-ins. Ao longo de nosso rastreamento, fomos capazes de coletar e analisar 28 plug-ins diferentes. Alguns são destinados a coletar senhas de navegadores, clientes de e-mail e uma variedade de aplicativos, enquanto outros podem modificar o tráfego de rede ou se autopropagar. Os plug-ins do Trickbot são implementados como DLLs padrão do Windows, geralmente com pelo menos estas quatro exportações distintas: Iniciar , Controlar , Liberar e FreeBuffer .
Curiosamente, alguns têm cabeçalhos Rich, enquanto outros não. Cabeçalhos ricos são uma estrutura de dados não documentada adicionada a todos os binários criados pelo Microsoft Visual Studio 97 SP3 ou posterior. Eles contêm informações sobre o ambiente de desenvolvimento onde o executável foi construído. O fato de que os cabeçalhos Rich nem sempre estão presentes nos plug-ins – e que quando estão presentes, mostram diferentes ambientes de desenvolvimento – nos leva a acreditar que esses plug-ins foram escritos por diferentes desenvolvedores.
Não observamos muitas amostras diferentes dos diferentes plug-ins, uma vez que foram desenvolvidos e usados na natureza. Os que mais mudaram são aqueles que contêm um arquivo de configuração estática embutido no binário. Esses arquivos de configuração estática contêm, entre outras coisas, informações do servidor C&C, portanto, espera-se que elas mudem com o tempo. A Figura 4 mostra o número de variações que vimos para cada módulo que coletamos por meio de nossa plataforma de rastreamento de botnet. A maioria das variantes dos módulos mais recentes vêm em pares: cerca de metade dos módulos coletados eram versões de 32 bits, enquanto a outra metade eram versões de 64 bits. No Apêndice você pode encontrar uma breve descrição de cada um desses módulos.
Figura 4. Contagem de variantes para cada plugin Trickbot
Arquivos de configuração para todos
Embora haja potencialmente muitos arquivos de configuração baixados diferentes presentes em uma instalação do Trickbot, o módulo principal contém uma configuração codificada e criptografada. Ele contém uma lista de servidores C&C, bem como uma lista padrão de plug-ins que devem ser baixados.
Conforme mencionado anteriormente, alguns plug-ins também dependem de arquivos de configuração para funcionar corretamente. Esses plug-ins contam com o módulo principal para baixar esses arquivos de configuração dos servidores C&C. Os plug-ins conseguem isso passando uma pequena estrutura de configuração do módulo, armazenada na seção de sobreposição do binário do plug-in, que permite ao módulo principal saber o que ele deve baixar.
Ser capaz de reunir esses arquivos de configuração nos permitiu mapear a infraestrutura de rede do Trickbot. O módulo principal usa sua lista de servidores C&C codificados e se conecta a um deles para baixar uma segunda lista de servidores C&C, a chamada lista psrv . O módulo principal contata esta segunda camada de servidores C&C para baixar os plug-ins padrão especificados no arquivo de configuração codificado. Outros módulos podem ser baixados posteriormente ao receber um comando para fazê-lo dos operadores do Trickbot. Alguns dos plug-ins, como o plug-in injetDll, por exemplo, têm seus próprios servidores C&C, que contêm arquivos de configuração. Finalmente, existem servidores C&C dedicados para plug-ins. Os mais prevalentes deles são os chamados dpostservidores, usados para exfiltrar dados roubados, como credenciais, mas, conforme detalhado no Apêndice , existem outros. Todas essas camadas diferentes tornam o esforço de interrupção mais desafiador. A Figura 5 ilustra esse processo de comunicação inicial.
Figura 5. Processo de comunicação da rede Trickbot
Temos rastreado esses diferentes servidores C&C desde o início de 2017. Esse conhecimento foi, claro, vital no esforço de interrupção, uma vez que pudemos contribuir para o mapeamento da infraestrutura de rede usada pelos agentes maliciosos.
Outro artefato interessante que conseguimos reunir por meio do rastreamento desse botnet é o identificador exclusivo presente em cada amostra do Trickbot, o chamado gtag . Esta é uma string presente no arquivo de configuração codificado inicial que identifica diferentes campanhas do Trickbot ou modo de compromisso. Por exemplo, acredita – se que as campanhas mor sejam compromissos do Trickbot devido ao Emotet. Às vezes, gtags também podem indicar o destino de uma campanha. Um bom exemplo é uk03-1 , que visava predominantemente instituições financeiras no Reino Unido.
A Figura 6 apresenta uma linha do tempo de todas as gtags que extraímos dos arquivos de configuração do Trickbot de setembro de 2019 a setembro de 2020. Olhando para o grupo mor , podemos ver a parada abrupta das campanhas Emotet em abril de 2020. Existem também alguns grupos que são usados por módulos específicos. Os grupos tot , jim e lib são alguns dos gtags vistos mais continuamente e estão associados aos módulos mshare, nworm / mworm e tab respectivamente, de acordo com uma postagem de blog recente da Unit42 . Como todos esses são usados para movimento lateral, não é surpreendente ver uma linha quase constante em sua linha do tempo.
Figura 6. Linha do tempo do grupo gtags
Discurso de encerramento
Tentar interromper uma ameaça indescritível como o Trickbot é muito desafiador e complexo. Ele tem vários mecanismos de fallback e sua interconexão com outros atores cibercriminosos altamente ativos no submundo torna a operação geral extremamente complexa. Continuaremos rastreando essa ameaça e avaliando o impacto que tais ações podem ter em uma rede de bots tão extensa no longo prazo.
Agradecimentos especiais a Jakub Tomanek, Jozef Dúc, Zoltán Rusnák e Filip Mazán
Nomes de detecção ESET
Win32 / TrickBot
Win64 / TrickBot
Técnicas MITER ATT e CK
Nota: Esta tabela foi construída usando a versão 7 da estrutura MITER ATT & CK.
Tática | ID | Nome | Descrição |
---|---|---|---|
Acesso Inicial | T1566.001 | Phishing: anexo de spearphishing | O Trickbot usou um e-mail com uma planilha do Excel contendo uma macro maliciosa para implantar o malware. |
Execução | T1059.003 | Intérprete de comandos e scripts: Shell de comando do Windows | O Trickbot usou cmd.exe / c para baixar e implantar o malware na máquina do usuário. |
T1059.005 | Intérprete de comandos e scripts: Visual Basic | O Trickbot usou macros em documentos do Excel para baixar e implantar o malware na máquina do usuário. | |
T1106 | API nativa | O Trickbot usa a API CreateProcessW do Windows para gerenciar o fluxo de execução. | |
T1204.002 | Execução do usuário: arquivo malicioso | O Trickbot tentou fazer com que os usuários iniciassem um anexo malicioso do Excel para entregar sua carga útil. | |
T1059.007 | Intérprete de comandos e scripts: JavaScript / Jscript | O grupo Trickbot usou JavaScript ofuscado para baixar o carregador do Trickbot. | |
T1559.001 | Comunicação entre processos: modelo de objeto componente | O Trickbot usou o COM para configurar a tarefa agendada para persistência. | |
Persistência | T1547.001 | Execução de inicialização automática de inicialização ou logon: Chaves de execução do registro / pasta de inicialização | O Trickbot estabelece persistência na pasta de inicialização. |
T1053.005 | Tarefa / Trabalho Agendado: Tarefa Agendada | O Trickbot cria uma tarefa agendada no sistema que fornece persistência. | |
Escalonamento de privilégios | T1055.012 | Injeção de processo: esvaziamento de processo | O Trickbot se injeta no processo svchost.exe . |
Evasão de Defesa | T1140 | Desofuscar / decodificar arquivos ou informações | O Trickbot decodifica seus dados de configuração e módulos. |
T1562.001 | Deteriorar as defesas: desabilitar ou modificar ferramentas | O Trickbot pode desativar o Windows Defender. | |
T1112 | Modificar registro | O Trickbot pode modificar as entradas do registro. | |
T1027 | Arquivos ou informações ofuscados | O Trickbot usa nomes não descritivos para ocultar a funcionalidade e usa um algoritmo de criptografia AES-CBC (256 bits) para seu carregador e arquivos de configuração. | |
T1027.002 | Pacote de Software | O Trickbot utiliza um empacotador personalizado para ofuscar sua funcionalidade. | |
T1553 | Subverter controles de confiança | O Trickbot usa carregadores assinados com certificados válidos roubados. | |
Acesso de credencial | T1555.003 | Credenciais de armazenamentos de senhas: credenciais de navegadores da web | O Trickbot pode obter senhas armazenadas por navegadores da web como Chrome, Firefox, Internet Explorer e Microsoft Edge. |
T1056.004 | Captura de entrada: Credential API Hooking | O Trickbot tem a capacidade de capturar credenciais RDP capturando a API CredEnumerateA . | |
T1552.001 | Credenciais inseguras: credenciais em arquivos | O Trickbot pode obter senhas armazenadas por vários aplicativos, como Outlook, Filezilla e WinSCP. Além disso, ele procura o sufixo .vnc.lnk para roubar credenciais do VNC. | |
T1552.002 | Credenciais inseguras: credenciais no registro | O Trickbot pode recuperar credenciais PuTTY da chave de registro Software \ SimonTatham \ Putty \ Sessions . | |
T1110 | Força bruta | O Trickbot usa um ataque de força bruta contra RDP com o módulo rdpscanDll. | |
Descoberta | T1087.001 | Descoberta de conta: conta local | O Trickbot coleta os usuários do sistema. |
T1087.003 | Descoberta de conta: conta de e-mail | O Trickbot coleta endereços de e-mail do Outlook. | |
T1082 | Descoberta de informações do sistema | O Trickbot coleta a versão do sistema operacional, o tipo de CPU e a quantidade de RAM disponível na máquina da vítima. | |
T1083 | Descoberta de arquivos e diretórios | O Trickbot procura no sistema todas as seguintes extensões de arquivo: .avi, .mov, .mkv, .mpeg, .mpeg4, .mp4, .mp3, .wav, .ogg, .jpeg, .jpg, .png, .bmp , .gif, .tiff, .ico, .xlsx e .zip. Ele também pode obter o histórico de navegação, cookies e informações de plug-ins. | |
T1016 | Descoberta de configuração de rede do sistema | O Trickbot obtém o endereço IP e outras informações de rede relevantes da máquina da vítima. | |
T1007 | Descoberta de serviço do sistema | O Trickbot coleta uma lista de programas e serviços instalados na máquina do sistema. | |
T1135 | Descoberta de compartilhamento de rede | O módulo shareDll / mshareDll do Trickbot descobre compartilhamentos de rede por meio da API WNetOpenEnumA . | |
T1057 | Descoberta de Processo | O Trickbot usa o módulo networkDll para descoberta da lista de processos. | |
Movimento lateral | T1210 | Exploração de Serviços Remotos | O Trickbot utiliza exploits EthernalBlue e EthernalRomance para movimento lateral nos módulos wormwinDll, wormDll, mwormDll, nwormDll, tabDll. |
Coleção | T1005 | Dados do sistema local | O Trickbot coleta arquivos locais e informações da máquina local da vítima. |
T1185 | Homem no navegador | O Trickbot usa injeção na web e redirecionamento de navegador para induzir as vítimas a fornecer suas credenciais de login em uma página da web falsa ou modificada. | |
Comando e controle | T1071.001 | Protocolo de camada de aplicativo: protocolos da Web | O Trickbot usa HTTPS para se comunicar com seus servidores C&C, para obter atualizações de malware, módulos que executam a maior parte da lógica do malware e vários arquivos de configuração. |
T1573.001 | Canal criptografado: criptografia simétrica | O Trickbot usa um crypter personalizado aproveitando o CryptoAPI da Microsoft para criptografar o tráfego C&C. | |
T1105 | Transferência de ferramenta de entrada | O Trickbot baixa vários arquivos adicionais e os salva na máquina da vítima. | |
T1571 | Porta não padrão | Algumas amostras do Trickbot usaram HTTP nas portas 447 e 8082 para C&C. | |
T1219 | Software de acesso remoto | O Trickbot usa o módulo vncDll para controlar remotamente a máquina da vítima. | |
Exfiltração | T1041 | Exfiltração no canal C2 | O Trickbot exfila dados pelo canal C&C usando solicitações HTTP POST. |
Apêndice
Módulos de movimento lateral
- shareDll, mshareDll, tshareDll
- Módulos usados para propagar o carregador do Trickbot para compartilhamentos de rede conectados da máquina vitimada.
- wormwinDll, wormDll, mwormDll, nwormDll
- Módulos usados para propagação dentro de uma rede local de máquinas infectadas via SMB. Ele usa o exploit EternalBlue.
- tabDll
- Módulo usado para se espalhar na rede usando o exploit EternalRomance.
Infostealers
- pwgrab
- Módulo de ladrão de senha.
- Informação do sistema
- Módulo usado para coletar informações sobre a máquina da vítima.
- domainDll
- Módulo usado para roubar credenciais e outros dados do controlador de domínio via LDAP.
- networkDll
- Módulo usado para coletar informações do sistema e topologia de rede.
- outlookDll
- Módulo usado para roubar credenciais do Microsoft Outlook.
- importDll
- Módulo usado para roubar informações do navegador, como cookies, histórico do navegador, configurações.
- mailearcher
- Módulo usado para pesquisar arquivos na máquina da vítima em uma lista de extensões codificadas (documentos, imagens, vídeo).
- cookiesDll
- Módulo ladrão de cookies do navegador da Web.
- squlDll
- Módulo usado para colher endereços de e-mail do servidor SQL e raspar credenciais do sistema infectado com o utilitário Mimikatz.
- aDll
- Rouba o banco de dados do Active Directory.
- psfin
- O módulo consulta o Active Directory em busca de constantes de string específicas relacionadas ao software de ponto de venda.
Abuso de rede
- injectDll
- Módulo Webinject.
- NewBCtestDll, NewBCtestnDll
- Módulo que é um proxy reverso capaz de executar comandos.
- vncDll
- Módulo usado como RAT na máquina da vítima.
- vpnDll
- Módulo usado para criar proxy VPN roteado para um determinado endereço.
- rdpscanDll
- Módulo usado para RDP de força bruta em uma determinada lista de alvos.
- bcClientDllTestTest
- Um módulo antigo usado para fazer proxy do tráfego do operador do Trickbot por meio de uma máquina vítima.
- shadnewDll
- Módulo Man-in-the-Browser. Ele contém uma implementação completa do módulo principal IcedID . Ele pode interceptar o tráfego da web na máquina da vítima.
De outros
- mexecDll
- Módulo “baixar e executar” de propósito geral.
Nomes de módulos | Sub-config | Rich headers |
---|---|---|
shareDll, mshareDll, tshareDll | NÃO | |
wormwinDll, wormDll, mwormDll, nwormDll | NÃO | |
tabDll | dpost | SIM |
pwgrab | dpost | SIM |
Informação do sistema | SIM | |
domainDll | NÃO | |
networkDll | dpost | SIM |
outlookDll | NÃO | |
importDll | NÃO | |
mailearcher | mailconf | NÃO |
cookiesDll | dpost | SIM |
squlDll | SIM | |
aDll | SIM | |
psfin | dpost | SIM |
injectDll | dinj, sinj, dpost | SIM / NÃO |
NewBCtestDll, NewBCtestnDll | bcconfig3 | SIM |
vncDll | vncconf | SIM |
vpnDll | vpnsrv | SIM |
rdpscanDll | srv | SIM |
bcClientDllTestTest | SIM | |
shadnewDll | dom | SIM |
mexecDll | SIM |
Fonte: https://www.welivesecurity.com/2020/10/12/eset-takes-part-global-operation-disrupt-trickbot