Pesquisa GReAT

GoPix, o trojan bancário que vive na memória

Introdução

O GoPix é uma ameaça avançada e persistente que visa clientes de instituições financeiras brasileiras e usuários de criptomoedas. Ele representa uma ameaça evoluída que visa usuários de Internet banking e utiliza implantes apenas em memória e scripts PowerShell ofuscados. O GoPix evoluiu das ameaças RAT e Sistema de Transferência Automatizada (ATS), que foram usadas em campanhas anteriores, para uma ameaça única nunca antes vista. Operando como um LOLBin (Living off the Land Binary), o GoPix exemplifica uma abordagem sofisticada que integra vetores de malvertising em plataformas como o Google Ads para comprometer clientes de instituições financeiras proeminentes.

Nossa análise extensa revela a capacidade do GoPix de executar ataques man-in-the-middle, monitorar transações por Pix, boletos bancários e manipular transações de criptomoedas. O malware burla as medidas de segurança das instituições financeiras, mantendo a persistência e empregando mecanismos de limpeza robustos para desafiar os esforços de Digital Forensics e de Resposta a Incidentes (DFIR).

O GoPix atingiu um nível de sofisticação nunca antes visto em um malware criado no Brasil. Já se passaram mais de três anos desde que o identificamos pela primeira vez e ele permanece muito ativo. A ameaça é reconhecida pelos seus métodos furtivos para infectar vítimas e evitar ser detectada pelos softwares de segurança, usando novos truques para permanecer ativa.

O comportamento do GoPix difere dos RATs já vistos em outras famílias nacionais, como a Grandoreiro. O GoPix usa C2s com uma vida útil muito curta, que permanecem on-line apenas por algumas horas. Além disso, os atacantes por trás dessa ameaça abusam de serviços antifraude e de reputação legítimos para entregar o payload de forma direcionada e garantir que não infectaram uma sandbox ou sistema usado em análise. As vítimas são escolhidas a dedo: órgãos financeiros de governos estaduais e grandes corporações.

A campanha se aproveita de outra campanha de malvertising que está ativa desde dezembro de 2022. O uso de várias camadas de ofuscação e de um certificado digital roubado demonstra a capacidade do GoPix de burlar as defesas de segurança tradicionais e roubar e manipular dados financeiros confidenciais.

O grupo brasileiro por trás do GoPix está aprendendo com grupos APT a tornar o malware persistente e ocultá-lo, carregando módulos na memória, mantendo poucos artefatos em disco e tornando ineficaz a detecção por regras YARA. O malware também pode alternar entre processos para executar funcionalidades específicas, potencialmente desativando softwares de segurança e executando ataques man-in-the-middle com uma técnica inédita.

Infecção inicial

A infecção inicial é realizada por campanhas de malvertising. Na maioria dos casos, os threat actors usam o Google Ads para espalhar armadilhas relacionadas a serviços populares como o WhatsApp, o Google Chrome e o serviço postal brasileiro Correios e atrair vítimas para páginas maliciosas.

Estamos monitorando essa ameaça desde 2023 e ela continua muito ativa até o momento.

Detecção do malware GoPix (download)

O vetor de infecção inicial é mostrado abaixo:

Vetor de infecção inicial

Vetor de infecção inicial

Quando o usuário acessa a página do GoPix, o malware abusa de sistemas legítimos de reputação de IP para determinar se o usuário é um alvo de interesse ou um bot executado em ambientes de análise de malware. A pontuação inicial é feita por um serviço antifraude legítimo, para o qual são enviados vários parâmetros do navegador e do ambiente, que retorna um ID de solicitação. O site malicioso usa esse ID para verificar se o usuário deve receber o instalador malicioso ou ser redirecionado para uma página fictícia inofensiva. Se o usuário não for considerado um alvo valioso, nenhum malware é entregue.

Site exibido caso o usuário seja detectado como um bot ou sandbox

Site exibido caso o usuário seja detectado como um bot ou sandbox

No entanto, se ficar comprovado que a vítima não é um bot, o site malicioso consultará o endpoint check.php, que retornará uma resposta JSON com 2 URLs:

Resposta JSON de endpoint malicioso

Resposta JSON de endpoint malicioso

A vítima então recebe uma página falsa oferecendo o download do software anunciado, que, neste caso, é o “Instalador do WhatsApp Web” malicioso. Para decidir para qual URL a vítima será redirecionada, o código JavaScript verifica se a porta 27275 está aberta no host local.

Solicitação do WebSocket para verificar se a porta está aberta

Solicitação do WebSocket para verificar se a porta está aberta

Essa porta é usada pelo recurso Avast Safe Banking, presente em vários produtos da Avast que são muito populares em países como o Brasil. Se a porta estiver aberta, a vítima baixará o payload do primeiro estágio usando a segunda URL (url2). Trata-se de um arquivo ZIP que contém um arquivo LNK com um PowerShell ofuscado criado para baixar o próximo estágio. Se a porta não for aberta, a vítima será redirecionada à primeira URL (url), que oferece o download de um instalador NSIS executável falso do WhatsApp.

A princípio, pensamos que essa detecção poderia levar a um exploit. No entanto, nossa pesquisa mostrou que a única diferença é que, se o Avast estiver instalado, a vítima será direcionada a outro vetor de infecção, descrito abaixo.

Malware distribuído por meio de um site malicioso

Malware distribuído por meio de um site malicioso

Cadeia de infecção

Payload de primeiro estágio

Se não houver o produto da Avast instalado, um arquivo executável do instalador NSIS será enviado ao dispositivo da vítima. Os atacantes alteram esse instalador com frequência para evitar detecção. Ele é assinado digitalmente com um certificado roubado emitido para “PLK Management Limited”, o mesmo usado para assinar o software legítimo “Driver Easy Pro”.

Certificado roubado usado para assinar o instalador malicioso

Certificado roubado usado para assinar o instalador malicioso

O instalador NSIS cria e executa um arquivo em lote ofuscado que usa o PowerShell para solicitar o payload do próximo estágio ao site malicioso.

Código do instalador NSIS criando um arquivo em lote

Código do instalador NSIS criando um arquivo em lote

No entanto, se a porta 27275 estiver aberta, indicando que a vítima tem um produto Avast instalado, a infecção ocorre pela segunda URL. A vítima é levada a baixar um arquivo ZIP que contém um arquivo LNK. Este arquivo de atalho contém uma linha de comando ofuscada.

Linha de comando ofuscada dentro do LNK

Linha de comando ofuscada dentro do LNK

Linha de comando desofuscada:

O objetivo desta linha de comando é baixar e executar o payload do próximo estágio por meio da URL maliciosa mencionada acima.

É muito provável que esse método seja usado, já que o Avast Safe Browser bloqueia downloads diretos de arquivos executáveis. Portanto, em vez de baixar o instalador NSIS executável, um arquivo ZIP é entregue.

Depois que o comando do PowerShell do arquivo LNK ou EXE é executado, o GoPix executa outro script ofuscado do PowerShell recuperado remotamente (na imagem do downloader do GoPix abaixo, ele é definido como “Script do Powershell”).

Cadeia de entrega do GoPix

Cadeia de entrega do GoPix

Script inicial do PowerShell

O objetivo desse script é coletar informações do sistema e enviá-las ao C2 do GoPix. Assim, o script obtém um arquivo JSON que contém os módulos e as configurações do GoPix salvos no computador da vítima.

Coleta de informações do sistema

Coleta de informações do sistema

As informações contidas neste arquivo JSON são as seguintes:

  • nomes de pastas e arquivos a serem criados no diretório %APPDATA%;
  • script ofuscado do PowerShell;
  • script criptografado do PowerShell ps;
  • implante de código malicioso sc contendo um shellcode do dropper do GoPix criptografado, o dropper do GoPix, o shellcode do payload principal e o implante principal do GoPix;
  • Arquivo de configuração do GoPix pf.

Depois que esses arquivos são salvos, um arquivo em lote adicional também é criado e executado. Sua finalidade é iniciar o script ofuscado do PowerShell.

Script ofuscado do PowerShell

Após a execução, o script ofuscado do PowerShell descriptografa o script do PowerShell ps, inicia outra instância do PowerShell e envia o script descriptografado através do seu stdin, para que o script descriptografado nunca seja carregado em disco.

Script desofuscado do PowerShell

Script desofuscado do PowerShell

Script descriptografado do PowerShell “ps”

O objetivo desse script apenas em memória do PowerShell é executar uma descriptografia na memória do shellcode do dropper do GoPix, no shellcode do payload principal e no implante de malware principal do GoPix na memória alocada. Depois disso, ele cria um pequeno shellcode no processo do PowerShell para transferir a execução ao shellcode do dropper do GoPix já descriptografado.

O shellcode do script do PowerShell transfere a execução ao shellcode do loader de malware

O shellcode do script do PowerShell transfere a execução ao shellcode do loader de malware

O shellcode do dropper do GoPix é criado para a arquitetura x86 ou x64, dependendo do computador da vítima.

Construção do shellcode do GoPix conforme a arquitetura alvo

Construção do shellcode do GoPix conforme a arquitetura alvo

Shellcode

Este shellcode é incluído com o malware e permanece criptografado em disco. Ele é utilizado duas vezes na cadeia de infecção separadamente: primeiro para iniciar o dropper do GoPix e, depois, para executar o malware principal. Nós observamos duas versões desse shellcode. A principal diferença é que o antigo determina endereços de API pelos seus nomes, enquanto o mais recente emprega um algoritmo de hash para determinar o endereço de uma determinada API. O cálculo do hash da API começa gerando um hash para o nome da DLL, que depois é usado no nome da função para calcular o hash final da API.

A amostra antiga (à esquerda) usava strings em stack com nomes de API; a nova amostra (à direita) usa a técnica de ofuscação de API por hash

A amostra antiga (à esquerda) usava strings em stack com nomes de API; a nova amostra (à direita) usa a técnica de ofuscação de API por hash

Na primeira vez que o GoPix é colocado na memória por meio do PowerShell, sua estrutura é a seguinte:

  1. Shellcode do dropper em memória
  2. DLL do dropper em memória
  3. Shellcode principal de payload
  4. DLL de payload

Ambas as DLLs têm sua assinatura MZ apagada, o que ajuda a evitar a detecção por ferramentas de dump de memória que verificam arquivos PE na memória.

Assinatura MZ zerada

Assinatura MZ zerada

Dropper do GoPix

Quando a função principal do dropper é chamada, ela verifica se está sendo executada dentro do processo Explorer.exe; caso contrário, ela será encerrada. Em seguida, ela verifica sequencialmente os navegadores instalados (Chrome, Firefox, Edge e Opera) recuperando o caminho completo do primeiro navegador detectado da chave de registro SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths. Uma diferença significativa em relação aos droppers analisados anteriormente é que esta versão criptografa cada string usando um algoritmo exclusivo.

Depois de selecionar o navegador, o dropper usa syscalls diretas para iniciar o processo do navegador escolhido em um estado suspenso. Isso permite injetar o shellcode principal do GoPix e seus parâmetros no processo. O shellcode injetado extrai e carrega o implante principal do GoPix diretamente na memória e depois chama sua função principal exportada. Os parâmetros incluem o número 1, que aciona a função principal do GoPix, e o ID do processo atual, que é do Explorer.exe.

O dropper usa a instrução syscall e chama a função principal do implante apenas em memória do GoPix

O dropper usa a instrução syscall e chama a função principal do implante apenas em memória do GoPix

Implante principal do GoPix

Funcionalidade de roubo da área de transferência

O boleto bancário foi adicionado como um dos alvos de roubo e substituição da área de transferência do malware. Ele é um método de pagamento popular no Brasil que funciona de forma semelhante a uma fatura, sendo o segundo sistema de pagamento mais popular no país. Trata-se de um documento padronizado que inclui informações de pagamento importantes, como o valor devido, a data de vencimento e os detalhes do beneficiário. Ele apresenta uma linha digitável, uma sequência de números que pode ser inserida em aplicativos de Internet banking para pagamento. Esta linha é o alvo da funcionalidade do GoPix. Um exemplo dessa linha é “23790.12345 60000.123456 78901.234567 8 76540000010000”.

Boletos bancários são alvo da funcionalidade de roubo da área de transferência

Boletos bancários são alvo da funcionalidade de roubo da área de transferência

Quando o GoPix detecta uma transação por Pix ou boleto, envia essas informações ao C2. No entanto, quando um endereço de carteira de Bitcoin ou Ethereum é copiado para a área de transferência, o malware substitui o endereço por um que pertence ao agente da ameaça.

Um ataque singular de man-in-the-middle

Os arquivos PAC (Proxy AutoConfig) não são novidade; eles têm sido usados por criminosos brasileiros há mais de uma década. Porém, o GoPix levou essa técnica conhecida a outro patamar. Embora no passado os criminosos usassem arquivos PAC para redirecionar as vítimas para uma página de phishing falsa, o objetivo do arquivo PAC nos ataques do GoPix é manipular o tráfego enquanto o usuário acessa um site financeiro legítimo.

Para ocultar qual site o GoPix quer interceptar, ele usa um algoritmo CRC32 no campo de host do arquivo PAC. Ele é formatado dinamicamente usando um arquivo de configuração pf: os itens que ele contém determinam para qual proxy a vítima será redirecionada. Para ocultar seu servidor proxy malicioso, o malware enumera todas as conexões após a abertura da conexão com o proxy e identifica o processo que a iniciou. Em seguida, ele usa a soma de verificação CRC32C do nome do executável do processo e a compara com uma lista hardcoded de somas de verificação CRC dos navegadores. Se ela não corresponder a um navegador conhecido, a conexão é encerrada.

Trecho do arquivo PAC

Trecho do arquivo PAC

Para descobrir os alvos do GoPix, compilamos uma lista de muitos domínios e subdomínios de instituições financeiras brasileiras, computamos suas somas de verificação CRC32 e as comparamos com os valores hardcoded do GoPix. A tabela abaixo mostra cada CRC32 e seu respectivo alvo.

CRC32 Infraestrutura
8BD688E8 Local
8CA8ACFF www2.banco********.com.br
AD8F5213 autoatendimento.********.com.br
105A3F17 www2.****.com.br
B477FE70 internetbanking.*******.gov.br
785F39C2 loginx.********.br
C72C8593 internetpf.*****.com.br
75E3C3BA internet.*****.com.br
FD4E6024 internetbanking.*******.com.br

Interceptação de HTTPS

Como toda comunicação é criptografada por meio de HTTPS, o GoPix burla isso ao injetar um certificado root confiável na memória de um navegador da Web enquanto estiver na máquina da vítima. Isso permite que os atacantes detectem e até mesmo manipulem o tráfego da vítima. Nós encontramos dois certificados em amostras do GoPix, um que expirou em janeiro de 2025 e outro criado em fevereiro de 2025 e está definido para expirar em fevereiro de 2027.

Certificado de root confiável do GoPix

Certificado de root confiável do GoPix

Conclusão

Com a capacidade de carregar seu implante apenas em memória, que permite a instalação de um Proxy AutoConfig malicioso (PAC) e um servidor HTTP para executar um ataque man-in-the-middle sem precedentes, o GoPix é de longe o trojan bancário mais avançado de origem brasileira que já encontramos. A injeção de um certificado root confiável no navegador melhora sua capacidade de interceptar e manipular dados financeiros confidenciais, ao mesmo tempo em que se mantém furtivo, pois o certificado malicioso não é visível para as ferramentas do sistema operacional. Além disso, o GoPix expandiu sua capacidade de monitoramento da área de transferência ao adicionar boletos ao seu arsenal, que já inclui transações por Pix e endereços de carteiras de criptomoedas.

É uma ameaça sofisticada, com múltiplas camadas de evasão, persistência e funcionalidade. A investigação do shellcode, do dropper e do módulo principal do malware descobriu mecanismos intrincados, incluindo a transferência de execução entre processos para aproveitar funcionalidades específicas. Essa técnica, combinada com métodos robustos de criptografia de strings aplicados ao dropper e ao payload principal, indica que o threat actor fez um grande esforço para impedir a detecção. Curiosamente, os atacantes usaram um serviço antifraude comercial legítimo para pré-qualificar seus alvos, com o objetivo de evitar sandboxes e investigações de pesquisadores de segurança. Além disso, os mecanismos de persistência e limpeza implementados pelo malware aumentam sua durabilidade durante os esforços de resposta a incidentes, com uma vida útil muito curta dos C2s.

Para obter mais informações sobre o GoPix e todos os detalhes técnicos, entre em contato com crimewareintel@kaspersky.com.

Os produtos da Kaspersky detectam essa ameaça como HEUR:Trojan-Banker.Win64.GoPix, Trojan.PowerShell.GoPix e HEUR:Trojan-Banker.OLE2.GoPix.

Indicadores de comprometimento

EB0B4E35A2BA442821E28D617DD2DAA2 – instalador NSIS
C64AE7C50394799CE02E97288A12FFF – arquivo ZIP com um arquivo LNK
D3A17CB4CDBA724A0021F5076B33A103 – dropper do malware
28C314ACC587F1EA5C5666E935DB716C – payload principal

Impressão digital de certificado malicioso
<Name(CN=Root CA 2024)> f110d0bd7f3bd1c7b276dc78154dd21eef953384
<Name(CN=Root CA 2025)> 1b1f85b68e6c9fde709d975a186185c94c0faa51

C2
paletolife[.]com

Domínios e IPs
https://correioez0ubcfht9i3.lovehomely[.]com/
https://correiotwknx9gu315h.lovehomely[.]com/
http://webmensagens4bb7[.]com/
https://mydigitalrevival[.]com/get.php
http://b3d0[.]com/1/
http://4a3d[.]com/1/
http://9de1[.]com/1/
http://ef0h[.]com/1/
http://yogarecap[.]com/1/

GoPix, o trojan bancário que vive na memória

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

 

Relatórios

GoPix, o trojan bancário que vive na memória

Os especialistas do Kaspersky GReAT descrevem o GoPix, trojan bancário brasileiro sem precedentes, que usa implantes apenas em memória, man-in-the-middle via arquivos Proxy AutoConfig (PAC) e malvertising via Google Ads.

BeatBanker: um trojan de dupla função para Android

Pesquisadores da Kaspersky identificaram um novo trojan para Android, o BeatBanker, que tem como alvo o Brasil, se disfarça de aplicativos do governo e da Google Play Store e consegue minerar criptomoedas e roubar dados bancários.