ESET participa de operação global para interromper a botnet Trickbot | WeLiveSecurity

ESET participa de operação global para interromper a botnet Trickbot

Uma coalizão de empresas de tecnologia conseguiu, por meio de um esforço coordenado, derrubar a infraestrutura da botnet TrickBot.

Uma coalizão de empresas de tecnologia conseguiu, por meio de um esforço coordenado, derrubar a infraestrutura da botnet TrickBot.

A ESET colaborou com a Microsoft, o Black Lotus Labs da Lumen, a NTT, entre outras empresas e organizações, em uma tentativa de interromper a botnet Trickbot. A ESET contribuiu para o projeto fornecendo análise técnica, informações estatísticas e nomes de domínio e IP de servidores de comando e controle.

A botnet Trickbot infectou mais de um milhão de dispositivos digitais em todo o mundo desde o final de 2016 e estávamos monitorando suas atividades desde o início dos ataques. Somente em 2020, nossa plataforma automatizada analisou mais de 125 mil amostras maliciosas, baixou e descriptografou mais de 40 mil arquivos de configuração usados ​​pelos diferentes módulos da Trickbot, o que nos permitiu ter uma excelente visão dos diversos servidores C&C usados ​​pela botnet.

Trickbot: uma botnet que durou bastante tempo

A botnet Trickbot tem sido um grande problema para os usuários da Internet há algum tempo. A primeira detecção da ameaça através da ESET surgiu em 2016. Durante esses anos, os ataques da botnet Trickbot foram relatados de forma consistente, o que a tornou uma das maiores e mais duradouras botnets existentes até hoje. Assim como destacamos em nosso relatório de ameaças do primeiro trimestre de 2020, a Trickbot é uma das famílias de malware bancário mais prevalentes. Na Figura 1, os dados de telemetria da ESET mostram que esse malware representa uma ameaça aos usuários da Internet em todo o mundo.

Figura 1. Detecções da botnet Trickbot em todo o mundo entre outubro de 2019 e outubro de 2020.

Ao longo de sua existência, a Trickbot foi distribuída de várias maneiras. Recentemente, observamos uma cadeia de distribuição bastante frequência com a ameaça sendo “droppeado” em sistemas que já foram comprometidos pelo Emotet, outra grande botnet. Anteriormente, a botnet Trickbot era usada por seus operadores como um trojan bancário que roubava credenciais de contas bancárias on-line e tentava fazer transferências falsas.

A arquitetura modular da Trickbot permite a realização de uma ampla gama de ações maliciosas usando uma variedade de plug-ins. Embora esse malware possa roubar todos os tipos de credenciais de um computador comprometido, observamos que a ameaça tem sido usada como um mecanismo de entrega para realizar ataques mais nocivos, como os de ransomware.

Um dos plug-ins desenvolvidos permite que a Trickbot use web injects, uma técnica que faz com que o malware altere dinamicamente o que um usuário cujo sistema foi comprometido vê ao visitar sites específicos. Para operar, esse plug-in depende de arquivos de configuração baixados pelo módulo principal. Esses arquivos contêm informações sobre quais sites e de que forma devem ser modificados. A Figura 2 mostra um trecho de um desses arquivos de configuração descriptografados que contém as URLs específicas e URLs C&C maliciosas que o bot deve contatar quando a vítima acessa as URLs específicas.

Figura 2. Trecho de um arquivo de configuração dinj descriptografado (redigido).

Através do nosso monitoramento de campanhas da botnet Trickbot, coletamos dezenas de milhares de arquivos de configuração diferentes, o que nos permitiu saber quais sites foram atacados pelos operadores da 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 extraídos em 2020.

Essas URLs direcionadas 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 da 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 o foco nas URLs extraídas. Essa queda no número de alvos provavelmente se deve ao fato do grupo por trás da Trickbot ter começado a se enfocar em outro meio de monetização durante esse período: o ransomware.

Nesses casos, o processo de comprometimento da Trickbot é usado para executar primeiro o movimento lateral e tarefas de reconhecimento na rede de uma organização e, em seguida, lançar o ransomware Ryuk no maior número possível de sistemas. A partir dos dados que coletamos, parece que os operadores da Trickbot passaram de tentar roubar dinheiro de contas bancárias a atacar organizações inteiras com a botnet e, em seguida, usá-la para executar o Ryuk e exigir um resgate para desbloquear os sistemas afetados.

Também observamos novos projetos de desenvolvimento de malware supostamente vindos de operadores da Trickbot, o que também pode explicar seu súbito desinteresse em usar a Trickbot como um trojan bancário. Um desses projetos é o chamado projeto Anchor, uma plataforma voltada para espionagem ao invés de crimeware. Provavelmente, eles também estão envolvidos no desenvolvimento do malware Bazar, um loader e backdoor usado para distribuir código malicioso, como o ransomware, e para roubar dados confidenciais de sistemas comprometidos.

Trickbot em profundidade

O que torna a Trickbot tão versátil é que suas funcionalidades podem ser amplamente expandidas com plug-ins. Durante o nosso acompanhamento, coletamos e analisamos 28 plug-ins diferentes. Alguns têm o objetivo de coletar senhas de navegadores, clientes de e-mail e uma variedade de aplicativos, enquanto outros podem modificar o tráfego de rede ou se propagar. Os plug-ins da Trickbot são implementados como DLLs padrão do Windows, geralmente com pelo menos estas quatro exportações distintas: Start, Control, Release e FreeBuffer.

Curiosamente, alguns têm Rich headers, enquanto outros não. Os Rich headers são uma estrutura de dados não documentada que é 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 no qual o executável foi criado. O fato de que os Rich headers 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.

Depois de desenvolvidos e usados ​​ativamente nas campanhas, foi possível ver muitos exemplos diferentes dos diversos plug-ins. Os que mais mudaram foram 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, é possível que 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 botnets. A maioria das variantes dos módulos mais recentes vem 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 (neste artigo), você pode encontrar uma breve descrição de cada um desses módulos.

Figura 4. Contagem de variantes para cada plug-in da Trickbot.

Arquivos de configuração para todos

Embora muitos arquivos de configuração diferentes sejam baixados em uma instalação da botnet Trickbot, o módulo principal contém uma configuração criptografada e hardcodeada. Ele contém uma lista de servidores C&C, bem como uma lista padrão de plug-ins que devem ser baixados.

Assim como mencionamos anteriormente, alguns plug-ins também dependem de arquivos de configuração para funcionar de forma correta. Esses plug-ins contam com o módulo principal para baixar esses arquivos de configuração dos servidores C&C. Os plug-ins fazem 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 que o módulo principal saiba o que deve baixar.

A possibilidade de coletar esses arquivos de configuração nos permitiu mapear a infraestrutura de rede da Trickbot. O módulo principal usa sua lista de servidores C&C hardcodeados e se conecta a uma delas 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 hardcodeado. Outros módulos podem ser baixados posteriormente, após receber dos operadores do Trickbot um comando para fazer isso. 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. Existem servidores C&C dedicados para plug-ins. Os mais prevalentes são os chamados servidores dpost, que são usados ​​para extrair 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 da botnet Trickbot.

Temos rastreado esses servidores C&C desde o início de 2017. Esse conhecimento, claro, foi vital na tarefa de interrupção, pois, dessa forma, foi possível contribuir para o mapeamento da infraestrutura de rede usada pelos cibercriminosos.

Outro artefato interessante que foi possível coletar ao rastrear essa botnet é o identificador exclusivo presente em cada amostra da Trickbot, chamados de gtags. Essa é uma string presente no arquivo de configuração inicial hardcodeado que identifica diferentes campanhas da Trickbot ou modo de comprometimento. Por exemplo, acredita-se que as campanhas do grupo mor sejam ataques ocasionados pela Trickbot devido ao Emotet. Os gtags também podem indicar o alvo de uma campanha em alguns casos. Um bom exemplo é o uk03-1, que se concentra principalmente nas instituições financeiras do Reino Unido.

A Figura 6 apresenta uma linha do tempo de todos os grupos gtags que extraímos dos arquivos de configuração da Trickbot de setembro de 2019 a setembro de 2020. Olhando para o grupo mor, por exemplo, podemos ver a parada abrupta das campanhas do Emotet em abril de 2020. Existem também alguns que são usados ​​por módulos específicos. Os grupos tot, jim e lib são alguns dos gtags vistos com mais frequência e estão associados aos módulos mShare, nworm/mworm e tab respectivamente, de acordo com uma postagem recente da equipe da Unit42. Como todos esses são usados para o movimento lateral, não é uma surpresa observar uma linha do tempo quase constante.

Figura 6. Cronologia dos grupos gtags.

Para destacar

Tentar interromper uma ameaça como a botnet Trickbot é uma tarefa bastante desafiadora e complexa. A Trickbot tem vários mecanismos de reserva e sua interconexão clandestina com outros cibercriminosos torna a operação extremamente complexa. Continuaremos monitorando essa ameaça e avaliando o impacto que tais ações podem ocasionar.

Um agradecimento especial a Jakub Tomanek, Jozef Dúc, Zoltán Rusnák e Filip Mazán.

Nomes das detecções, segundo a ESET

Win32/TrickBot
Win64/TrickBot

MITRE ATT&CK techniques

Nota: esta tabela foi criada usando a versão 7 do framework MITER ATT & CK.

TacticIDNameDescription
Initial AccessT1566.001Phishing: Spearphishing AttachmentTrickbot has used an email with an Excel sheet containing a malicious macro to deploy the malware.
ExecutionT1059.003Command and Scripting Interpreter: Windows Command ShellTrickbot has used cmd.exe /c to download and deploy the malware on the user’s machine.
T1059.005Command and Scripting Interpreter: Visual BasicTrickbot has used macros in Excel documents to download and deploy the malware on the user’s machine.
T1106Native APITrickbot uses the Windows API CreateProcessW to manage execution flow.
T1204.002User Execution: Malicious FileTrickbot has attempted to get users to launch a malicious Excel attachment to deliver its payload.
T1059.007Command and Scripting Interpreter: JavaScript/JscriptTrickbot group used obfuscated JavaScript to download Trickbot loader.
T1559.001Inter-Process Communication: Component Object ModelTrickbot used COM to setup scheduled task for persistence.
PersistenceT1547.001Boot or Logon Autostart Execution: Registry Run Keys / Startup FolderTrickbot establishes persistence in the Startup folder.
T1053.005Scheduled Task/Job: Scheduled TaskTrickbot creates a scheduled task on the system that provides persistence.
Privilege EscalationT1055.012Process Injection: Process HollowingTrickbot injects into the svchost.exe process.
Defense EvasionT1140Deobfuscate/Decode Files or InformationTrickbot decodes its configuration data and modules.
T1562.001Impair Defenses: Disable or Modify ToolsTrickbot can disable Windows Defender.
T1112Modify RegistryTrickbot can modify registry entries.
T1027Obfuscated Files or InformationTrickbot uses non-descriptive names to hide functionality and uses an AES-CBC (256 bits) encryption algorithm for its loader and configuration files.
T1027.002Software PackingTrickbot leverages a custom packer to obfuscate its functionality.
T1553Subvert Trust ControlsTrickbot uses signed loaders with stolen valid certificates.
Credential AccessT1555.003Credentials from Password Stores: Credentials from Web BrowsersTrickbot can obtain passwords stored by web browsers such as Chrome, Firefox, Internet Explorer, and Microsoft Edge.
T1056.004Input Capture: Credential API HookingTrickbot has the ability to capture RDP credentials by capturing the CredEnumerateA API.
T1552.001Unsecured Credentials: Credentials In FilesTrickbot can obtain passwords stored by several applications such as Outlook, Filezilla, and WinSCP. Additionally, it searches for the .vnc.lnk suffix to steal VNC credentials.
T1552.002Unsecured Credentials: Credentials in RegistryTrickbot can retrieve PuTTY credentials from the Software\SimonTatham\Putty\Sessions registry key.
T1110Brute ForceTrickbot uses brute-force attack against RDP with rdpscanDll module.
DiscoveryT1087.001Account Discovery: Local AccountTrickbot collects the users of the system.
T1087.003Account Discovery: Email AccountTrickbot collects email addresses from Outlook.
T1082System Information DiscoveryTrickbot gathers the OS version, CPU type, amount of RAM available from the victim’s machine.
T1083File and Directory DiscoveryTrickbot searches the system for all of the following file extensions: .avi, .mov, .mkv, .mpeg, .mpeg4, .mp4, .mp3, .wav, .ogg, .jpeg, .jpg, .png, .bmp, .gif, .tiff, .ico, .xlsx, and .zip. It can also obtain browsing history, cookies, and plugin information.
T1016System Network Configuration DiscoveryTrickbot obtains the IP address and other relevant network information from the victim’s machine.
T1007System Service DiscoveryTrickbot collects a list of installed programs and services on the system’s machine.
T1135Network Share DiscoveryTrickbot module shareDll/mshareDll discovers network shares via the WNetOpenEnumA API.
T1057Process DiscoveryTrickbot uses module networkDll for process list discovery.
Lateral MovementT1210Exploitation of Remote ServicesTrickbot utilizes EthernalBlue and EthernalRomance exploits for lateral movement in the modules wormwinDll, wormDll, mwormDll, nwormDll, tabDll.
CollectionT1005Data from Local SystemTrickbot collects local files and information from the victim’s local machine.
T1185Man in the BrowserTrickbot uses web injects and browser redirection to trick victims into providing their login credentials on a fake or modified web page.
Command and ControlT1071.001Application Layer Protocol: Web ProtocolsTrickbot uses HTTPS to communicate with its C&C servers, to get malware updates, modules that perform most of the malware logic and various configuration files.
T1573.001Encrypted Channel: Symmetric CryptographyTrickbot uses a custom crypter leveraging Microsoft’s CryptoAPI to encrypt C&C traffic.
T1105Ingress Tool TransferTrickbot downloads several additional files and saves them to the victim’s machine.
T1571Non-Standard PortSome Trickbot samples have used HTTP over ports 447 and 8082 for C&C.
T1219Remote Access SoftwareTrickbot uses vncDll module to remote control the victim machine.
ExfiltrationT1041Exfiltration Over C2 ChannelTrickbot exfiltrates data over the C&C channel using HTTP POST requests.

Apêndice

Módulos de movimento lateral

  • shareDll, mshareDll, tshareDll
    • Módulos usados ​​para propagar o loader da Trickbot em redes compartilhadas conectadas às máquinas das vítimas.
  • wormwinDll, wormDll, mwormDll, nwormDll
    • Os módulos costumavam ser distribuídos em uma rede local de máquinas infectadas via SMB. Usa o exploit EternalBLue.
  • tabDll
    • Módulo usado para distribuir dentro da rede usando o exploit EternalRomance.

Infostealers

  • pwgrab
    • Módulo para roubo de senhas.
  • systeminfo
    • Módulo usado para obter 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 sobre o sistema e tipologia 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.
  • mailsearcher
    • Módulo usado para buscar arquivos na máquina da vítima em uma lista de extensões hardcodeadas (documentos, imagens, vídeo).
  • cookiesDll
    • Módulo para roubar cookies do navegador.
  • squlDll
    • Módulo usado para coletar endereços de e-mail do servidor SQL.
  • aDll
    • Rouba banco de dados do Active Directory.
  • psfin
    • O módulo busca no Active Directory por strings específicas constantes que estão relacionadas ao software POS.

Abuso de rede

  • injectDll
    • Módulo Webinject.
  • NewBCtestDll, NewBCtestnDll
    • Módulo que funciona como proxy reverso e é capaz de executar comandos.
  • vncDll
  • Módulo usado como RAT na máquina da vítima.
  • vpnDll
  • Módulo usado para criar um proxy VPN direcionado a um endereço específico.
  • rdpscanDll
    • Módulo usado para força bruta o RDP de uma determinada lista de alvos.
  • bcClientDllTestTest
    • Um módulo antigo usado para desviar o tráfego operado pela Trickbot através da máquina da vítima.
  • shadnewDll
    • Módulo Man-in-the-Browser. Contém uma implementação completa do módulo principal IcedID. Ele pode interceptar o tráfego web na máquina da vítima.

Outros

  • mexecDll
  • Módulo com a finalidade geral de “baixar e executar”.
Module namesSub-configRich headers
shareDll, mshareDll, tshareDllNO
wormwinDll, wormDll, mwormDll, nwormDllNO
tabDlldpost YES
pwgrab dpost YES
systeminfo YES
domainDllNO
networkDll dpost YES
outlookDllNO
importDll NO
mailsearchermailconfNO
cookiesDlldpost YES
squlDll YES
aDll YES
psfindpost YES
injectDlldinj, sinj, dpost YES/NO
NewBCtestDll, NewBCtestnDll bcconfig3 YES
vncDll vncconf YES
vpnDllvpnsrv YES
rdpscanDllsrv YES
bcClientDllTestTest YES
shadnewDlldom YES
mexecDll YES

Links úteis:

Publicação da Microsoft: https://blogs.microsoft.com/on-the-issues/?p=64132

Newsletter

Discussão