Acronis TRU
19 de agosto de 2026

Grandoreiro se espalha: do Brasil ao México com uma nova campanha de DLL sideloading

Grandoreiro é um notório trojan bancário que opera na América Latina desde pelo menos 2016, mirando instituições financeiras e seus usuários por meio de campanhas de phishing e técnicas de engenharia social. Escrito em Delphi e de origem brasileira, é um dos muitos trojans bancários latino-americanos (junto com Guildma, Javali e Melcoz).

Författare: Santiago Pontiroli

Outros idiomas disponíveis:English
På den här sidan
Resumo
Introdução
Detalhes técnicos
Telemetria
Mapeamento do MITRE ATT&CK
Detecção e caça
Conclusão
Detecção pela Acronis
Indicadores de comprometimento (IoCs)

Resumo

  • O Grandoreiro segue ativo apesar de importantes esforços de desarticulação por parte das autoridades em 2024. As campanhas recentes continuam atingindo usuários principalmente na América Latina.
  • A campanha analisada abusa do aplicativo legítimo Duplicate Files Finder (DFF) para executar código malicioso por meio de DLL sideloading, permitindo que o malware se misture a atividades de software confiáveis.
  • A amostra inicial tem várias funções antianálise, incluindo detecção de sandbox, verificações de artefatos de máquina virtual, lista de bloqueio de processos e criação de perfil do ambiente, criadas para evitar sistemas automatizados de análise. Essas verificações são realizadas antes de tentativas de contato com a infraestrutura de comando e controle, sugerindo que evitar a análise é uma alta prioridade para os operadores.
  • A telemetria coletada ao longo dos últimos 30 dias de junho de 2026 indica que a atividade do Grandoreiro segue concentrada na América Latina, e o México representa a maior parte das amostras observadas.
  • Embora também tenham sido observadas detecções na Europa e na América do Norte, a distribuição geral continua refletindo o foco de longa data do malware em regiões de língua espanhola.

Introdução

Grandoreiro é um notório trojan bancário que opera na América Latina desde pelo menos 2016, mirando instituições financeiras e seus usuários por meio de campanhas de phishing e técnicas de engenharia social. Escrito em Delphi e de origem brasileira, é um dos muitos trojans bancários latino-americanos (junto com Guildma, Javali e Melcoz). Ao longo dos anos, o malware passou por várias iterações e mudanças de infraestrutura para evitar detecção e sustentar as operações. Em janeiro de 2024, uma operação conjunta liderada pela Polícia Federal do Brasil e coordenada pela INTERPOL, com autoridades espanholas e parceiros do setor privado, interrompeu uma parte significativa da infraestrutura do trojan e reduziu seu alcance geral.

Apesardessas ações, o Grandoreiro não foi totalmente erradicado. Ainda é possível observar atividades associadas ao malware, mas em um volume bem menor em comparação com seu pico operacional. Em maio de 2026, observamos uma campanha renovada na qual os operadores do Grandoreiro abusaram do aplicativo legítimo Duplicate Files Finder junto com técnicas de DLL sideloading, continuando o padrão estabelecido de aproveitar software confiável para executar cargas maliciosas de forma furtiva.

Detalhes técnicos

Nas seções a seguir, analisamos o downloader inicial do Grandoreiro, um componente leve em termos de funcionalidade. Porém, ele é fortemente protegido e conta com vários mecanismos defensivos. Essas técnicas são projetadas para detectar ambientes em sandbox ou virtualizados e dificultar tentativas de análise, aumentando significativamente a complexidade da engenharia reversa.

Amostra inicial

O arquivo compactado analisado foi entregue como um arquivo zip chamado Fac-BH22DC0608_RevMQKSAC.zip (MD5: 82f771c3ec4fe979c3ae00372e8c3ac8). Embora não tenha sido possível confirmar o vetor inicial de entrega de forma conclusiva, tanto os padrões históricos de distribuição do Grandoreiro quanto o nome de arquivo semelhante a uma fatura (com "Fac" provavelmente se referindo a factura, que significa "fatura") nos levam a avaliar com confiança moderada que o malware foi entregue por meio de uma campanha de spam.

No arquivo, há uma pasta oculta com arquivos PDF e XML que servem como isca, projetados para evitar a detecção heurística.

Figura 1: Conteúdo do arquivo zip
Figura 1: Conteúdo do arquivo zip
Figura 2: Arquivos PDF fictícios
Figura 2: Arquivos PDF fictícios

 

DLL sideloading

DLL sideloading é uma técnica em que um atacante coloca uma DLL maliciosa ao lado de um executável legítimo que a carrega automaticamente por meio da ordem normal de pesquisa de DLLs do Windows. Quando o aplicativo confiável inicia, a DLL maliciosa é carregada no processo, permitindo que o código do atacante seja executado enquanto parece fazer parte de um aplicativo legítimo e frequentemente assinado.

Nesta campanha, os autores usam o aplicativo legítimo Duplicate Files Finder, mas o renomeiam para um nome de arquivo gerado aleatoriamente para obscurecer sua finalidade. Quando executado, primeiro ele carrega outra dependência legítima, dupfdll.dll. Essa DLL então tenta carregar sua próxima dependência, mingwm10.dll, que não é legítima. Nesse caso, é uma versão substituta maliciosa.

Figura 3: Cadeia de DLL sideloading
Figura 3: Cadeia de DLL sideloading

Nome do arquivo/MD5/horário de compilação:

  • _2IH4ENJIRRNCobran_03732qyykae214BKXXN6180-Dt.exe — cfbd8d062e9baa98737a0260996f48c6 — 2008/06/01
  • dupfdll.dll — e882ee4a643b00871c98bcfe4b4d7cd1 — 2008/06/01
  • mingwm10.dll — f1aed8cf2adafa86927fc58d5f24073e — 2026/05/01

A análise dos carimbos de data/hora de PE revela inconsistências que indicam possíveis atividades de DLL sideloading. Em particular, o aplicativo pai legítimo mostra um carimbo de compilação que remonta a 2008, enquanto o implant trojan injetado carrega um carimbo significativamente mais recente, aparentemente originado em 2026. Carimbos de compilação de PE são trivialmente falsificáveis e frequentemente são forjados por autores de malware, portanto o valor de 2026 não deve ser tratado como autoritativo por si só; ainda assim, combinado com a cadeia de sideloading e a incompatibilidade de dependências, avaliamos com alta confiança que um binário benigno está sendo abusado como carregador da carga maliciosa.

Como o Duplicate Files Finder é um aplicativo baseado em GUI que normalmente exibe uma janela de interface do usuário, o implant malicioso inicia sua execução ocultando a janela do aplicativo para evitar chamar a atenção do usuário.

Detecção de sandbox e antianálise

Depois de suprimir a GUI, ele prossegue para executar uma série de rotinas internas projetadas para determinar se o ambiente está em sandbox ou sendo analisado ativamente. Essas verificações têm como objetivo garantir a execução apenas em ambientes reais de usuário, ao mesmo tempo em que evitam sistemas automatizados de análise.

Figura 4: Thread principal do carregador
Figura 4: Thread principal do carregador

O malware verifica a disponibilidade do sistema da máquina atual. Seu limite é definido em 180.000 milissegundos, o que significa que o sistema deve estar em execução há pelo menos 3 minutos. Essa verificação pode ajudar a contornar sandboxes que iniciam a análise em um estado de inicialização recente.

Figura 5: Verificação da disponibilidade do sistema
Figura 5: Verificação da disponibilidade do sistema

Se o sistema infectado passar na verificação do tick count, o malware prossegue para inspecionar o software instalado no host. Em vez de consultar o sistema operacional diretamente, ele determina se um aplicativo está presente verificando a existência do atalho correspondente na área de trabalho. O malware verifica especificamente os seguintes aplicativos:

  • Google Chrome
  • CCleaner
  • Firefox
  • FileZilla Client
  • Acrobat Reader DC
  • Microsoft Edge
  • Skype

Curiosamente, a presença de todos esses aplicativos é tratada como um indicador de um ambiente de análise, e não de um sistema de usuário legítimo. Se os atalhos dos sete aplicativos estiverem presentes na área de trabalho, o malware classifica o sistema como um ambiente de sandbox e encerra a execução. Com base nesse comportamento, avaliamos com confiança moderada que os operadores estão tentando identificar e colocar em uma lista de bloqueio uma configuração específica de sandbox que vem com essa combinação particular de software.

Após a validação do software instalado, o malware realiza uma série de verificações adicionais do sistema para perfilar ainda mais o host infectado e determinar se ele está sendo executado em um ambiente de usuário legítimo. Especificamente, ele coleta informações sobre:

  • A quantidade de memória física instalada usando GlobalMemoryStatusEx
  • O número de processadores disponíveis
  • A quantidade de espaço livre em disco na unidade C:\
  • A resolução da tela por meio de GetSystemMetrics
  • A atividade recente do usuário, inspecionando documentos abertos recentemente

Essas verificações geralmente são usadas como medidas antianálise, pois ambientes de sandbox e virtualização frequentemente apresentam características diferentes das de sistemas reais de usuários, como recursos limitados de hardware, configurações de exibição incomuns ou ausência de evidências de atividade normal do usuário.

Além das verificações descritas anteriormente, o malware pesquisa ativamente artefatos associados a ambientes de virtualização. Ele faz isso procurando a presença de drivers e componentes do VMware e do VirtualBox, incluindo:

  • VBoxMouse.sys, VBoxGuest.sys, VBoxSF.sys, VBoxVideo.sys
  • vmmouse.sys, vmhgfs.sys, vm3dgl.dll, vmci.sys

O malware também consulta o caminho de registro HARDWARE\DESCRIPTION\System\BIOS e examina os valores de SystemManufacturer, SystemProductName e BIOSVendor. Esses valores são comparados com uma lista de bloqueio de palavras-chave relacionadas à virtualização, incluindo: VBOX, VMWARE, VIRTUAL, QEMU, XEN, INNOTEK.

Falando em verificações de registro, o malware também consulta a chave de registro \SOFTWARE\VMware, Inc.\VMware Tools, que indica a presença do VMware Tools instalado em um ambiente convidado.

A próxima camada dos mecanismos antianálise do Grandoreiro envolve inspecionar a lista de processos em execução no momento. O malware verifica especificamente a presença de ferramentas comumente usadas em depuração, engenharia reversa e análise de tráfego de rede (49 nomes de processo no total — depuradores, desmontadores, farejadores de rede e ferramentas de EDR/monitoramento). Ele mira os seguintes nomes de processo:

  • regmon.exe, procmon.exe, filemon.exe, Wireshark.exe, ProcessHacker.exe
  • ollydbg.exe, x64dbg.exe, x32dbg.exe, x96dbg.exe, cheatengine.exe, ollyice.exe
  • fiddler.exe, devenv.exe, radare2.exe, ghidra.exe, frida.exe, binaryninja.exe, cutter.exe, hopper.exe, jd-gui.exe
  • canvas.exe, pebrowsepro.exe, scylla.exe, cffexplorer.exe, angr.exe, hexworkshop.exe, sysexp.exe
  • Capsa.exe, tcpdump.exe, nw.exe, snort.exe, pcap.exe, nmap.exe, nessusd.exe, prtg.exe, cain.exe
  • NetworkAnalyzerPro.exe, netmon.exe, packetanalyzer.exe, packettotal.exe, tshark.exe, windump.exe, NetFlowAnalyzer.exe, SolarWinds.DataProcessor.exe
  • apimonitor-x64.exe, apimonitor-x32.exe, fakenet.exe, procexp64.exe, procexp.exe

Em seguida, o malware entra em contato com ip-api.com para determinar o endereço IP público e a geolocalização da vítima. Depois, ele coloca em uma lista de bloqueio vários países, incluindo CZ, RU e NL.

Figura 6: Verificação de país
Figura 6: Verificação de país

Já vimos listas de bloqueio de países, muitas vezes por razões "patrióticas" em campanhas de pay-per-install, por exemplo, malware de língua russa evitando infecções na Rússia ou em regiões próximas. No entanto, neste caso a seleção parece menos ideológica e mais operacional. Avaliamos com confiança baixa a moderada que o tráfego desses países inclui desproporcionalmente pesquisadores de segurança, empresas de antivírus ou ambientes automatizados de sandbox.

Após a verificação de geolocalização, o malware valida tanto o nome de usuário atual quanto o nome do computador da máquina. Em alguns casos, os valores parecem ser projetados como pares correspondentes, por exemplo, um nome de usuário como "Peter" combinado com um hostname como "PETER-PC". Por outro lado, certas entradas parecem acionar independentemente; por exemplo, um hostname como "difusor" é suficiente para sinalizar o sistema, independentemente do usuário conectado. A lista abaixo resume os nomes de usuário e nomes de computador colocados em uma lista de bloqueio:

  • nagini / DESKTOP-XXXXXXX
  • Bruno / -
  • dx / LAPTOP-V865QAO5
  • elias / WIN-LTLFLAIIS9W
  • elx / COMPUTER-VMPWPE
  • John / JOHN-PC
  • Peter / PETER-PC
  • WDAGUtilityAccount / - (note: this is the default Windows Sandbox account)
  • WORK / WORK
  • - / DESKTOP2457
  • - / difusor
  • Win-StephyPC3 / -
  • WIN-VUA6POUV5UP / -

O malware também verifica a existência de diretórios específicos. Em particular, ele pesquisa a presença dos seguintes caminhos:

  • A:\TOOLS\ProcessInvestigator\ , C:\TOOLS\ProcessInvestigator\ , D:\TOOLS\ProcessInvestigator\
  • F:\TOOLS\ProcessInvestigator\ , G:\TOOLS\ProcessInvestigator\ , H:\TOOLS\ProcessInvestigator\
  • D:\programming , D:\script

Se o computador infectado for sinalizado como uma sandbox, o loader exibe uma mensagem de erro em espanhol que diz "Houve um erro ao visualizar seu documento, reinicie o computador e tente novamente."

Figura 7: Erro simulado do sistema
Figura 7: Erro simulado do sistema

Comunicação com C2

Caso contrário, se o sistema passar por todas as verificações de validação, o malware prossegue para resolver o endereço IP do seu servidor de comando e controle (C2) codificado no binário. Para isso, ele utiliza o serviço DNS-over-HTTPS do Google enviando uma solicitação para hxxps://dns[.]google/resolve?name= seguida do domínio codificado no binário. Nesta amostra, o domínio usado é b744156103040828396040[.]nhlfan[.]net

Infelizmente, o servidor estava offline no momento da nossa análise, o que impediu a interação direta com a infraestrutura de C2. Ainda assim, a análise estática revelou que o malware emite uma solicitação HTTP GET pela porta TCP 6432 para recuperar o payload do segundo estágio. A própria solicitação é criptografada e contém informações específicas do host, incluindo identificadores associados ao usuário e ao sistema infectados. Decodificada, a solicitação assume a seguinte forma (esta é a representação descriptografada, não o ciphertext transmitido na rede):

CLIENT_SOLICITA_DDS_MDL|SOLICITADO*~+HU*~+Budapest*~+Budapest*~+DESKTOP-41NVP89*~+Steven*~+10*~+Windows Defender*~+0*~+0*~+0*~+1*~+42F69286*~+18-05-2026*~+00:55:57*~+*~+

A solicitação começa com o comando CLIENT_SOLICITA_DDS_MDL, que provavelmente indica uma solicitação do payload do segundo estágio. Durante a análise estática, foram identificadas strings adicionais associadas à comunicação com C2. Elas são facilmente distinguíveis, pois são escritas consistentemente em maiúsculas:

  • CLIENT_SOLICITA_DDS_MDL, SOLICITADO, CLIENT_ENVIA_STATUS, PUBLIC, REPETIDO, RECUPERADO
  • INFECTADO, AV_COMEU_MODULO, ERRO_EXECUCAO, ERRO_FALHA_DOWNLOAD, ERRO_EXTRACAO

É notável que, embora o malware pareça ter sido desenvolvido por autores de língua portuguesa, nenhuma telemetria observada tinha como destino o Brasil ou Portugal. Isso é consistente com relatos públicos de que a base de código do Grandoreiro após a derrubada sofreu um fork, com uma variante "light" agora focada em alvos mexicanos — o que se alinha à telemetria fortemente concentrada no México descrita abaixo.

Ofuscação de strings

Um desafio significativo durante a análise do loader é a presença de strings criptografadas. O Grandoreiro implementa um esquema personalizado de ofuscação de strings que combina uma rotina de descriptografia proprietária com codificação Base64 para codificar strings em tempo de execução e dificultar a análise estática.

Figura 8: Fluxo de trabalho de descriptografia de strings
Figura 8: Fluxo de trabalho de descriptografia de strings

Nenhum script pronto para uso, disponível publicamente, foi identificado para decodificar strings nesta variante específica. Como resultado, implementamos um decodificador personalizado em Python para reproduzir a rotina de desofuscação.

Figura 9: Implementação em Python da rotina de desofuscação de strings
Figura 9: Implementação em Python da rotina de desofuscação de strings

Vários detalhes de implementação do algoritmo de descriptografia merecem destaque:

  • A rotina usa codificação Base64 sem padding. Como resultado, quando o comprimento da entrada não é divisível por quatro, os caracteres de preenchimento apropriados (=) devem ser adicionados antes da decodificação.
  • O algoritmo permuta a chave de descriptografia e a usa para descriptografar as strings codificadas por XOR. Durante a análise, observamos que, em um certo estágio do processo, os primeiros 16 bytes da chave derivada são sobrescritos com bytes nulos. Esse comportamento parece não ser intencional e pode indicar um bug na implementação; no entanto, ele não afeta o processo de descriptografia, pois a rotina de criptografia correspondente aplica a mesma transformação.
  • A chave de descriptografia e o salt estão codificados no executável.
Figura 10: Chave de descriptografia codificada
Figura 10: Chave de descriptografia codificada

Telemetria

Verificamos a telemetria dos últimos 30 dias em nosso banco de dados e observamos um fluxo contínuo de atividade associada a essa família, indicando que, apesar da escala reduzida, a campanha segue ativa e continua evoluindo.

Figura 11: Distribuição geográfica das detecções
Figura 11: Distribuição geográfica das detecções

 

Essa distribuição destaca uma clara concentração de atividade no México, que responde pela maior parte das amostras observadas. Espanha e vários países da América Latina vêm em seguida, formando um grupo secundário de detecções. No geral, os dados sugerem que a atividade do Grandoreiro continua focada principalmente em regiões da América Latina, com presença limitada, mas notável, na Europa (principalmente Espanha) e na América do Norte.

Mapeamento do MITRE ATT&CK

  • T1574.002 — Hijack Execution Flow: DLL Side-Loading (DFF -> dupfdll.dll -> mingwm10.dll)
  • T1497.001 — Virtualization/Sandbox Evasion: System Checks (uptime, atalhos de aplicativos instalados, drivers de VM, palavras-chave de BIOS)
  • T1082 — System Information Discovery; T1016 — System Network Configuration Discovery; T1614 — System Location Discovery (ip-api.com / controle por país)
  • T1057 — Process Discovery (lista de bloqueio de 49 ferramentas para analista/EDR)
  • T1140 — Deobfuscate/Decode Files or Information (rotina personalizada de strings Base64 + XOR)
  • T1036.005 — Masquerading: Match Legitimate Name or Location (binário DFF renomeado)
  • T1071.001 — Application Layer Protocol: Web Protocols (C2 via TCP/6432); T1071.004 — DNS, somente se a observação de DoH for comprovada
  • T1564.003 — Janela oculta (supressão da GUI na inicialização)

Detecção e caça

Os defensores podem buscar os seguintes comportamentos de alto sinal observados nesta campanha:

  • Uma cópia renomeada do executável Duplicate Files Finder carregando mingwm10.dll do mesmo diretório (cadeia de sideload).
  • Processos resolvendo um domínio por meio de hxxps://dns[.]google/resolve?name= imediatamente seguidos por uma conexão TCP/6432 de saída (se o comportamento de DoH for confirmado).
  • O token literal CLIENT_SOLICITA_DDS_MDL no tráfego de saída ou na memória.
  • Um processo de GUI que suprime sua janela e depois consulta ip-api.com e o caminho do registro HARDWARE\DESCRIPTION\System\BIOS em rápida sucessão.

Conclusão

No geral, esta campanha destaca a evolução contínua do Grandoreiro e o foco de seus operadores em furtividade e evasão. Ao abusar do aplicativo legítimo Duplicate Files Finder para sideload de DLL, os atacantes conseguem mesclar a execução maliciosa ao comportamento de software confiável, complicando os esforços de detecção. A arquitetura em múltiplos estágios — começando com um loader fortemente protegido e avançando para um payload totalmente funcional — demonstra um esforço deliberado para separar o acesso inicial das capacidades operacionais de longo prazo. Embora a atividade geral associada ao Grandoreiro tenha diminuído em comparação com seu pico, a campanha mostra que ele permanece ativo e continua adaptando suas ferramentas e infraestrutura.

Detecção pela Acronis

Esta ameaça foi detectada e bloqueada pelo Acronis EDR / XDR.

Figura 12: Acronis detecta e bloqueia o Grandoreiro
Figura 12: Acronis detecta e bloqueia o Grandoreiro

Indicadores de comprometimento (IoCs)

Amostras (SHA256):

  • 1b2fe30c5bf57f9623efb34688580fe5bbb2c55351c5a07a6c4313bb6faa29f1
  • 1fe5a72aefc38afeeee72d8a939f9db50800a447b7313f4d8c504771bb7fa2de
  • 2820a2e36f1cb537a7853fde2313a5158d1e3696ff81c3066ec8fe274358c22d
  • 368246eb503585f26e0151431909792b8d9be0edc229bb207be882bfb374c005
  • 37492ecd9deb8591ea7e179ebb8e13c6b486cdacae18a6a482d9dd18f08453a3
  • 47d5a73b220813299f753ef0a96582a8d08b853391864128a1f15271dbb42e65
  • 609755a8c73e53f332428786c366323b3979850aaa0e075d946e6c05aa62f867
  • 65db035f79db85ad66fb3e0365e478f95f8f648545b18360d850a7ed179c9dab
  • 684f5eb157ef2ba3ea17335d6c8c9c801f93e6eb3aa08ecbfaf5806a4b5e3b80
  • a91c7cb932301454df4b0feed58082cae7f2d0e4078d7e6df3f53d806ed04f1d
  • ac35843c81381107d4f816681477d706c43fa75f064f2c3d99237c7282f0b798
  • ad5762fa98da2aff24d9d6b55be5dae21d07c54679ead67252a19c2521162a87
  • c019cfa9b50a69ff07e98bd78b3a6fc489110e5db1c0d79ada716605a2320951
  • ca33f5608b72ecca64a002074a4103c7cb83de902ecf5c69949eecb7eef03b5a
  • cc238813ab277cbb4324d37875c37985ca5baeaf8c412b4c85aa8ec5faec7096
  • e0491eddb45425a674e479b2590517ffef2f108add431761bb89791fc208b6e9
  • e99416ff71e4574de4fceebdc34f3b9a6e0610f36b77b735b231bd39edb7a0a1

Domínios de C2 (desarmados):

  • 445675885304004[.]pointto[.]us
  • b744156103040828396040[.]nhlfan[.]net
  • beeges[.]health-carereform[.]com
  • smartpdfhub-7q2m[.]read-books[.]org
  • streamlinepdf-8m2x[.]workisboring[.]com
  • voyage[.]mydissent[.]net