Threat Intelligence Team

O cenário de trojans bancários na América Latina tem evoluído significativamente nos últimos anos, com grupos criminosos aprimorando técnicas para alcançar seus objetivos sem soar alarmes nas redes dos alvos. 

Em setembro de 2022, especialistas da Tempest detectaram um novo Remote Access Trojan (RAT) bancário com uma peculiar cadeia de execução focada em manter o malware o mais indetectável possível. Por possuir características que a diferenciavam de outras famílias de malware conhecidas, a ameaça foi catalogada internamente como TTID-IS09 (Tempest Threat Id – Intrusion Set 09). Contudo, o primeiro relatório que documentou publicamente este trojan e atribuiu-lhe o nome de “Coyote” só veio ser publicado em fevereiro de 2024, pela Kaspersky.

Tendo os usuários no Brasil como principais alvos, o trojan se destaca pelo uso de técnicas avançadas de evasão de defesas, pela sua capacidade de contornar mecanismos de segurança e pela sua modularidade. Ele foi projetado para monitorar a atividade das vítimas e capturar informações confidenciais, as quais são enviadas para os servidores de comando e controle (C2) dos adversários via canais criptografados.

Este artigo aborda as principais características do trojan Coyote (TTID-IS09) e sua evolução ao longo dos anos, com foco nas Táticas, Técnicas e Procedimentos (TTPs) das variantes recentes identificadas pelo nosso time de Threat Intelligence.

Histórico e Principais Características

Primeiras variantes

Desde sua primeira aparição, em setembro de 2022, o Coyote tem sido distribuído principalmente por meio de campanhas de phishing, inicialmente através de anexos disfarçados de envio de currículo (T1566.001 – Spearphishing Attachment). 

Corpo do e-mail da primeira campanha identificada pela Tempest

A cadeia de infecção é composta por quatro estágios: ZIP (contendo LNK), MSI, arquivo executável e DLL (payload final). Existia o uso de um captcha para garantir uma interação humana nos primeiros estágios, visando impedir análises automatizadas. 

Uma variação dessa cadeia contendo três estágios também foi observada: ZIP (contendo executável), DLL e DLL (payload final).

As temáticas das campanhas foram sendo diversificadas ao longo dos anos, com assuntos relacionados a notas fiscais, comprovantes e planilhas de férias. Os e-mails passaram a incluir um link (T1566.002 – Spearphishing Link) para o download do arquivo malicioso.

Os estágios finais da infecção possuíam mecanismos antidetecção, técnicas de ofuscação, criptografia baseada em operações lógicas reversíveis (XOR), além do uso das técnicas T1027.001 – Binary Padding e T1574.002 – DLL Side-Loading

A persistência, desde as primeiras variantes identificadas, é baseada em chaves no registro do Windows e as conexões com servidores C2, inicialmente, eram estabelecidas via HTTP/HTTPS.

Durante as análises dessas variantes, nossos especialistas identificaram que o malware era formado por duas partes bem distintas. A primeira delas, referente aos estágios iniciais, apresentava uma boa qualidade de desenvolvimento e utilizava técnicas bastante complexas, enquanto, a segunda parte, possuía um artefato mais simplificado. 

Essa distinção levantava suspeitas sobre o uso de ferramentas de terceiros ou da participação de diferentes indivíduos ou grupos no desenvolvimento do malware. Além disso, havia evidências de que os operadores mantinham algum tipo de controle de versões do trojan, demonstrando uma contínua geração de amostras. 

Era perceptível um esforço dos adversários em deixar o trojan indetectável com variadas técnicas de ofuscação, criptografia e métodos para dificultar análises manuais e automatizadas. Contudo, os endereços dos servidores C2 eram fixos no malware, o que tornava a vida útil das amostras relativamente pequena.

Uso de Squirrel e NuGet

Após uma breve pausa na operação, os operadores do Coyote voltaram a disseminar campanhas em meados de 2023, trazendo mudanças significativas no processo de infecção, principalmente com a adoção do ecossistema Squirrel no primeiro estágio e o uso de pacotes NuGet para instalação e atualização de recursos.

Foram detectadas alterações na quantidade e na maneira como as etapas da infecção eram executadas, além da implementação de diversas técnicas de ofuscação para dificultar a análise.

Principais características das variantes analisadas pela Tempest de 2022 a 2025.

Campanhas recentes

O volume de campanhas reduziu consideravelmente em 2024, voltando a uma atividade mais forte no final do ano. As novas variantes detectadas no início de 2025 passaram a usar a ferramenta Donut para ofuscação de código, atestando que, ao longo dos anos, os operadores do Coyote modificaram, de forma frequente, os primeiros estágios da infecção e investindo em estratégias antidetecção.

Novo método de disseminação 

Além do tradicional método de disseminação por e-mail, no início de 2025, identificamos novas variantes do Coyote expandindo sua disseminação por meio do WhatsApp Web, numa abordagem que explora a confiança dos contatos da vítima para realizar novas infecções.

A infecção inicial ocorre através de e-mails com temáticas variadas, como notas fiscais ou comprovantes, contendo um link que leva ao download de um arquivo ZIP (T1566.002 – Spearphishing Link). 

Dentro deste ZIP, há um arquivo de atalho (LNK) que inicia um script Powershell projetado para executar um conteúdo hospedado remotamente em um domínio controlado pelo atacante que pode, propositalmente, alterar esse conteúdo a qualquer momento.

Na campanha analisada, um script Powershell baixa e executa remotamente uma DLL .NET e um shellcode gerado pela ferramenta Donut.

Exemplo de conteúdo executado pelo arquivo LNK

A DLL apresenta uma ofuscação de código e injeta o shellcode a partir da criação de uma nova thread em um processo legítimo do sistema. O shellcode trata de um arquivo .NET que estabelece persistência, coleta e envia informações do sistema para o servidor C2, baixa outros scripts e busca por outros processos do Powershell que estão em execução no sistema para interrompê-los.

Dentre as informações enviadas do shellcode para o servidor C2 está uma string “6.0.0”, que pode indicar um possível versionamento da ameaça.

O shellcode contém um módulo específico para roubo de dados de um aplicativo de um grande banco brasileiro, caso este esteja instalado no computador infectado. Caso não, o malware prossegue com a infecção para baixar e executar a carga maliciosa principal do Coyote, que é focada no roubo de informações de várias instituições financeiras através de telas falsas e monitoramento de sites de interesse, incluindo milhares de websites relacionados a hotéis e pousadas.

Principais TTPs da variante recente (MITRE ATT&CK)

Propagação através do WhatsApp

A variante da ameaça foi identificada empregando uma cadeia de infecção focada na instalação e execução de uma extensão maliciosa para os navegadores Google Chrome e Brave. O objetivo dessa extensão é a autopropagação através de sessões ativas do WhatsApp Web

O vetor de infecção inicial consiste em um arquivo ZIP, contendo um atalho .LNK, distribuído diretamente aos contatos de uma vítima previamente comprometida. A execução deste arquivo .LNK pela vítima desencadeia a fase subsequente da infecção.

Após a execução inicial, o malware configura uma persistência adicional, diferenciando do fluxo de execução da variante que foi disseminada pelas campanhas de e-mail. Essa persistência é estabelecida por meio de um script Powershell, responsável por carregar uma DLL .NET, que por sua vez é responsável por executar um shellcode

A partir disso, ocorre a verificação da presença dos diretórios de instalação do Chrome ou do Brave no sistema alvo. Caso detecte um navegador compatível, o malware procede ao download de um payload adicional, wpp.zip, a partir de um servidor de Comando e Controle (C2). Este arquivo é então extraído, e seu conteúdo, que constitui a extensão maliciosa, é implantado no diretório %AppData%\wpp.

O propósito final é injetar e carregar a extensão maliciosa nos navegadores a partir da criação de perfis personalizados, assegurando que a extensão seja carregada automaticamente a cada inicialização do navegador alvo.

Após a instalação, a extensão maliciosa não age imediatamente, permanecendo à espera até que se detecte um período de 5 minutos de inatividade do usuário no sistema. 

Uma vez ativada, o comportamento é condicional à existência de uma sessão autenticada no WhatsApp Web. Caso detecte uma sessão ativa, a extensão interage com a interface da plataforma, visando enumerar a lista de contatos do usuário. 

Sequencialmente, ela automatiza o envio do arquivo ZIP malicioso original para cada contato identificado, acompanhado de uma mensagem de engenharia social pré-definida, que nas campanhas observadas simulava um comprovante de transação financeira. 

Na ausência de uma sessão ativa do WhatsApp Web, a extensão redireciona o navegador da vítima para o URL http://example.com.

Código da extensão responsável por enviar o arquivo ZIP para os contatos da vítima.

Persistência e Comando e Controle

Ambas as campanhas configuram persistência por meio da criação de chaves no registro do Windows, garantindo que o malware seja executado sempre que o computador da vítima for iniciado.

As chaves criadas apontam para o segundo estágio da infecção, ou seja, para o script Powershell que carrega o payload do Coyote. Na variante disseminada pelo WhatsApp, as chaves criadas apontam para o script Powershell relacionado à instalação da extensão maliciosa.

Exemplo de chave criada

A comunicação entre o computador infectado e o servidor dos atacantes é configurada através da biblioteca .NET WatsonTCP. As strings enviadas para o servidor C2 são codificadas em base64 e usam separadores especiais, como o caractere ‘¾’.

Uma lista com os domínios do servidor C2 está embutida no código do malware. Em diversas etapas da infecção, a variante tenta se conectar a até três domínios diferentes. Caso a conexão com um deles falhe, o malware tenta se conectar ao próximo domínio da lista.

Quando a comunicação é estabelecida, os adversários enviam comandos através de códigos que serão interpretados pelo trojan, sendo eles:

10: Desconecta do servidor C2. 

11: Encerra o programa.

12: Inicia/para a captura de tela.

13: Obtém o título da janela ativa.

14: Ativa a janela e a exibe como uma janela maximizada.

15: Minimiza uma janela.

16: Ativa e exibe a janela. Se a janela for minimizada, maximizada ou organizada, o sistema a restaurará para seu tamanho e posição originais.

17: Fecha uma janela e desconecta.

18: Coloca a janela em primeiro plano, maximiza e a coloca em posição inicial.

19: Restaura e maximiza a janela.

20: Desativa a captura de tela de uma janela específica.

21: Desliga o sistema.

22: Desativa a composição da área de trabalho (DWM) através da modificação da chave do registro.

23: Simulação de um clique do mouse em uma posição específica da tela.

24: Simula a digitação de um texto, copiando o texto para a área de transferência e o digitando de uma vez, ou digitando cada caractere individualmente.

25: Simula o pressionamento de uma tecla específica, como Backspace, Delete, Enter, etc.

26: Desativa a composição da área de trabalho (DWM). 

27: Controla a exibição de janelas ou formulários, dependendo do comando recebido do servidor C2.

28: Cancela tarefas em segundo plano, fecha janelas, limpa recursos e desativa o hook de teclado.

29: Controle da exibição de janelas.

30: Controla a opacidade de uma janela.

31: Inicia/para o keylogger.

32: Sem ação, apenas utilizado para entrar numa cadeia de comandos posteriores.

33: Simula o pressionamento das setas direcionais.

34: Modifica as configurações de exibição.

35: Envia as teclas pressionadas.

Evolução e avanços observados

A análise das variantes recentes indica um refinamento contínuo nas técnicas de evasão e persistência. Com base nos relatórios da BlackBerry, da Kaspersky e da FortiGuard Labs, em algumas variantes, a infecção inicial ocorre a partir de um aplicativo ofuscado e desenvolvido em NodeJS. Também é indicado o uso da linguagem de programação Nim para injetar um executável .NET diretamente na memória, evitando que arquivos maliciosos sejam escritos no disco.

Apesar das variantes analisadas pelo time de Threat Intelligence da Tempest não apresentarem o uso de NodeJS ou da linguagem Nim, evidenciando a variedade de amostras geradas e disseminadas pelos operadores do Coyote, dentre os avanços observados podemos destacar:

  • Adoção de arquiteturas Cross-Platform: Embora o foco da ameaça continue sendo o sistema Windows, o uso de NodeJS na fase inicial do ataque, a escolha da linguagem Nim para o carregador e o uso de bibliotecas opensource, podem sugerir uma experimentação de tecnologias que possam facilitar a adaptação do trojan para outros sistemas. 
  • Uso de técnicas baseadas em memória: A estratégia de evitar gravações diretas em disco, com o carregamento de payloads dinamicamente e em tempo de execução, reduz significativamente a detecção por soluções tradicionais de antivírus.
  • Aprimoramento do mecanismo de comunicação C2: As versões mais recentes mostram melhorias na ofuscação de strings e de pacotes de comunicação, além de apresentarem canais alternativos para persistência, como a extensão maliciosa para navegadores.
  • Características de worm: A disseminação da ameaça via WhatsApp Web para os contatos das vítimas é uma característica bastante incomum entre os trojans bancários que atuam na América Latina.

Conclusão

Com um histórico de adaptabilidade quando se trata de burlar defesas e evitar a detecção, as variantes recentes apresentam modificações relevantes no fluxo de infecção, como a utilização da ferramenta Donut para ofuscação do código e o aumento no número de estágios. Essas modificações indicam a preocupação dos desenvolvedores do trojan em evitar sua análise e detecção.

O destaque das novas variantes é a utilização do WhatsApp Web para disseminação, explorando a confiança dos contatos para infectar novas vítimas. Essa característica de worm, incomum entre as ameaças atuantes na América Latina, pode resultar em um aumento significativo de infecções bem-sucedidas, visto que a carga maliciosa é enviada diretamente para os contatos da vítima, uma vez que esta esteja logada no WhatsApp Web no navegador comprometido, reduzindo as suspeitas.

A evolução deste trojan reforça a necessidade de estratégias de defesa proativas, incluindo o monitoramento contínuo de atividades suspeitas, a adoção de técnicas de Threat Intelligence e a implementação de controles avançados de segurança para mitigar os riscos associados, pois a ameaça é capaz de contornar mecanismos de segurança tradicionais e suas modificações constantes a tornam um risco significativo para as instituições financeiras e seus clientes. 

Todos os Indicadores de Comprometimento (IoCs) associados a ameaça analisada neste relatório podem ser obtidos através do Tempest Intel Feeds.

 

Referências

https://www.fortinet.com/blog/threat-research/coyote-banking-trojan-a-stealthy-attack-via-lnk-files

https://blogs.blackberry.com/en/2024/07/coyote-banking-trojan-targets-latam-with-a-focus-on-brazilian-financial-institutions

https://securelist.com/coyote-multi-stage-banking-trojan/111846/

https://www.kaspersky.com/about/press-releases/coyote-ugly-kaspersky-unveils-banking-trojan-targeting-over-60-institutions

MITRE ATT&CK Techniques (markdown)

**Resource Development [TA0042]**

| Technique | Description |

| ——– | ——– | 

|T1583.001|Acquire Infrastructure: Domains|Domínios em posse dos atacantes foram utilizados durante o envio de malspam e comunicação com o C2.|

|T1587.001|Develop Capabilities: Malware|O malware foi desenvolvido pelos atacantes.|

 

**Initial Access [TA0001]**

| Technique | Description |

| ——– | ——– | 

|T1566.002|Phishing: Spearphishing Link|As campanhas via e-mail disseminavam uma URL maliciosa no corpo do e-mail, responsável por realizar o download do malware.|

|T1566.003|Phishing: Spearphishing via Service|A extensão maliciosa utilizava a plataforma WhatsApp para disseminar o artefato malicioso.|

 

**Execution [TA0002]**

| Technique | Description |

| ——– | ——– | 

|T1059.001|Command and Scripting Interpreter: PowerShell|O utilitário Powershell é utilizado em quase todo fluxo de infecção da ameaça.|

|T1059.007|Command and Scripting Interpreter: JavaScript|A extensão maliciosa utiliza códigos escritos em Javascript.|

|T1106|Native API|O artefato utiliza APIs do sistema operacional em sua execução.|

|T1204.002|User Execution: Malicious File|O usuário executa o arquivo LNK malicioso.|

 

**Persistence [TA0003]**

| Technique | Description |

| ——– | ——– | 

|T1547.001|Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder|A persistência é criada inserindo uma chave de inicialização no registro do Windows.|

|T1176|Browser Extensions|A extensão maliciosa responsável por disseminar o arquivo no WhatsApp é configurada em perfis dos navegadores.|

 

**Defense Evasion [TA0005]**

| Technique | Description |

| ——– | ——– | 

|T1140|Deobfuscate/Decode Files or Information|Strings e informações são decifradas e desofuscadas durante a execução do malware.|

|T1497.001|Virtualization/Sandbox Evasion: System Checks|A ameaça realiza diversas checagens para identificar se está sendo executada em um ambiente de virtualização.|

|T1055.002|Process Injection: Portable Executable Injection|O malware realiza, em tempo de execução, a injeção do processo malicioso em arquivos oficiais do Windows.|

|T1027.010|Obfuscated Files or Information: Command Obfuscation|Há ofuscação de comandos em diversos momentos do fluxo de execução da ameaça.|

|T1027.009|Obfuscated Files or Information: Embedded Payloads|A ameaça contém um módulo malicioso nos 'resources' de um de seus arquivos.|

|T1036.007|Masquerading: Double File Extension|O arquivo LNK inicial possui uma extensão '.pdf' falsa, com o intuito de enganar a vítima.|

 

**Credential Access [TA0006]**

| Technique | Description |

| ——– | ——– | 

|T1056.001|Input Capture: Keylogging|A ameaça possui capacidades de Keylogger.|

|T1056.002|Input Capture: GUI Input Capture|O malware Coyote utiliza telas falsas para realizar a captura de dados financeiros sensíveis.|

**Discovery [TA0007]**

| Technique | Description |

| ——– | ——– | 

|T1033|System Owner/User Discovery|O malware identifica o usuário da máquina infectada.|

|T1518.001|Software Discovery: Security Software Discovery|É realizada uma consulta para identificar o antivírus que está instalado na máquina.|

|T1012|Query Registry|São realizadas diversas consultas no registro do Windows.|

|T1057|Process Discovery|O malware busca por processos de seu interesse, como aplicações relacionadas a instituições financeiras.|

|T1083|File and Directory Discovery|A ameaça busca por executáveis do Windows no diretório 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\'.|

 

**Collection [TA0009]**

| Technique | Description |

| ——– | ——– | 

|T1113|Screen Capture|O malware tem a capacidade de realizar capturas de tela.|

 

**Command and Control [TA0011]**

| Technique | Description |

| ——– | ——– | 

|T1132.001|Data Encoding: Standard Encoding|É utilizada a codificação base64 em algumas mensagens transmitidas durante a conexão com o C2.|

|T1001.001|Data Obfuscation: Junk Data|A ameaça insere o caractere '¾' repetidas vezes nos conteúdos enviados para o C2.|

 

**Exfiltration [TA0010]**

| Technique | Description |

| ——– | ——– | 

|T1041|Exfiltration Over C2 Channel|O malware realiza a captura de dados através da comunicação estabelecida com o C2.|

 

**Impact [TA0040]**

| Technique | Description |

| ——– | ——– | 

|T1529|System Shutdown/Reboot|Há a capacidade de enviar comandos para realizar o desligamento do sistema.|

|T1657|Financial Theft|O objetivo do malware Coyote (TTID-IS09) é a captura de dados financeiros e efetuação de transações fraudulentas.|