O trojan que se esconde dentro de um app da Microsoft para enganar o antivírus

Notícia

O trojan que se esconde dentro de um app da Microsoft para enganar o antivírus

Rodrigo ColissiRodrigo Colissi
14 de setembro de 202613 min de leitura
Threat IntelligencePhishingCibercrimes

Introdução

Uma campanha ativa está entregando o trojan de acesso remoto AsyncRAT escondido dentro de um processo legítimo e assinado pela Microsoft: o charmap.exe, o Mapa de Caracteres do Windows. A análise é da Point Wild (empresa de threat intelligence que publica análises detalhadas de campanhas e amostras de malware), divulgada em setembro de 2026 e repercutida pelo Cyber Security News em 14 de setembro.

A cadeia de infecção tem cinco estágios e começa com um arquivo .bat que se passa por fatura (Right-click to open Invoice Details.bat). O resultado final é um AsyncRAT rodando inteiramente em memória, sem arquivo malicioso em disco, dentro de um executável que qualquer antivírus reconhece como confiável.

Nota de honestidade: esta é uma análise de laboratório feita por um vendor de segurança sobre amostras reais da campanha, com indicadores de compromisso publicados. Não há, até a publicação, vítimas brasileiras confirmadas — mas o vetor é universal: qualquer usuário de Windows que receba uma "fatura" inesperada está na mira.

A isca: a fatura que não é fatura

O primeiro estágio não tem nenhuma sofisticação técnica: é engenharia social pura. A vítima recebe um arquivo chamado Right-click to open Invoice Details.bat (algo como "clique com o botão direito para abrir os detalhes da fatura") por e-mail, link malicioso, download de software trojanizado ou mensagem em aplicativos de mensageria.

O nome é desenhado para parecer inofensivo a quem espera uma fatura ou um documento compartilhado. Basta um clique para disparar a cadeia — o próprio relatório da Point Wild classifica isso como execução manual pela vítima (MITRE ATT&CK T1204.002).

É o mesmo terreno da engenharia social moderna em que operam kits de phishing como o BigBear 2.0, usado para roubar sessões e driblar o MFA: o elo mais fraco continua sendo a decisão de abrir o arquivo.

Os 5 estágios: do .bat ao charmap.exe

A cadeia combina script nativo do Windows, automação legítima e injeção de processo em um executável assinado pela Microsoft. Abaixo, o fluxo completo identificado pelo laboratório da Point Wild — em seguida, cada estágio é detalhado.

Cadeia de ataque

Estágio 1fatura em .batEstágio 2PowerShell ocultoEstágio 3AutoIt renomeadoEstágio 4injeção em charmap.exeEstágio 5AsyncRAT em memória

Estágio 1 e 2: o .bat que acorda o PowerShell escondido

Ao ser executado, o .bat lança o PowerShell com a janela oculta e o perfil desabilitado, e entrega um script temporário com um argumento codificado. O script remonta um payload de Base64 (codificação que representa dados binários como texto) que foi picado em dez fragmentos, espalhado por dezenas de variáveis e poluído com caracteres de lixo — asteriscos e interrogações inseridos de propósito para quebrar assinaturas que procuram blocos Base64 válidos.

Na execução, o lixo é removido e o resultado passa por uma operação XOR (ou exclusivo: operação lógica bit a bit usada para ofuscar dados) com chave repetitiva de 16 bytes. O resultado é um segundo script que grava os arquivos da próxima etapa em uma pasta de nome aleatório (dykrvuc4x, no build analisado) dentro de %LOCALAPPDATA%\Temp.

Detalhe importante: nada disso é criptografia de verdade — a chave está em texto puro ao lado do loop. O objetivo é apenas fazer o blob decodificado parecer entropia alta e derrotar scanners estáticos.

Estágio 3: AutoIt legítimo renomeado e o loader kojuyn.ini

O PowerShell grava três arquivos na pasta temporária:

  • ogftogcyiblzjccmcbnw.exe: um interpretador AutoIt (linguagem de automação de interface gráfica do Windows, legítima, gratuita e assinada) totalmente original, apenas renomeado. O nome é montado de fragmentos — inclusive a extensão .exe, dividida em ".ex" mais "e" para quebrar assinaturas que casam extensões de executável.
  • kojuyn.ini: o script loader compilado em AutoIt, pequeno demais para ser o RAT final.
  • nloemfbihmhm: o payload criptografado, sem extensão, com cerca de 537 KB.

Persistência sem privilégios: h73la8.bat na Startup

O mesmo script grava h73la8.bat na pasta de Inicialização do usuário (Startup). Na prática, a dupla (executável mais script) é relançada a cada login sem precisar de direitos de administrador nem de chave de registro — persistência (mecanismo que faz o malware sobreviver a reinicializações) puramente baseada em pasta, difícil de notar para quem só inspeciona o Registro do Windows.

Estágio 4: a injeção no charmap.exe

O script kojuyn.ini é ofuscado a ponto de construir cada nome de API em tempo de execução a partir de listas de inteiros codificados com XOR — uma varredura estática do script não encontra nada. O loader lê o blob nloemfbihmhm, decifra byte a byte em memória com a chave de um byte 0x36 e injeta o resultado (shellcode, código executável colocado diretamente na memória de outro processo) no charmap.exe de 32 bits, aberto oculto a partir de %WINDIR%\Syswow64.

A injeção usa a sequência clássica de funções do Windows: OpenProcess, VirtualAllocEx, WriteProcessMemory e CreateRemoteThread. Depois da injeção, o processo AutoIt encerra e some — sobra apenas o charmap.exe "legítimo" na lista de processos.

A confirmação veio com o PE-Sieve (ferramenta de análise de memória que detecta injeção de código), que encontrou uma imagem PE completa (Portable Executable, o formato de executável do Windows) sem correspondência em disco dentro do processo — um assembly .NET carregado sem arquivo.

Estágio 5: AsyncRAT em memória, sem arquivo em disco

Os estágios injetados (3200000.exe e 3200000_02C37000.exe, nomes dados pelo dump de memória) se decifram em sequência até revelar a DLL final, Veukuzmw.dll, carregada como módulo .NET somente em memória. É um build reconhecível do AsyncRAT, com captura de tela (grava o display primário, converte a imagem em bytes e a prepara para envio ao servidor), keylogging (registro de teclas digitadas) e roubo de informações, tudo conversando por TCP com o servidor de comando e controle.

A injeção: por que rodar dentro de um processo assinado

A escolha do charmap.exe não é aleatória. O Mapa de Caracteres é um componente assinado pela Microsoft (arquivo com assinatura digital válida de um certificado confiável): para o antivírus e para o usuário, a presença dele na lista de processos é absolutamente rotineira. Toda conexão de rede e toda tentativa de roubo de credenciais saem do processo "confiável", não de um executável suspeito com nome estranho.

É a técnica conhecida como injeção de processo (executar código malicioso dentro de um processo legítimo) aplicada a um alvo privilegiado: controles que bloqueiam por nome de executável ou por reputação simplesmente não veem nada de errado. A lição é direta — assinado não é sinônimo de seguro. A mesma lógica vale para a categoria de RATs à qual o AsyncRAT pertence, a mesma do XWORM, outro trojan de acesso remoto que circula em campanhas de phishing com entregas em múltiplos estágios.

O AMSI patchado

Dentro do processo infectado, a análise encontrou o AMSI (Antimalware Scan Interface: interface da Microsoft que permite a antivírus inspecionarem scripts e assemblies em tempo de execução) já patchado. A função AmsiScanBuffer recebeu o clássico patch de valor de retorno: qualquer chamada passa a responder "limpo", e os assemblies .NET carregados pelo payload e os conteúdos de script deixam de ser escaneados.

Ou seja: o malware não só se esconde dentro de um processo confiável como desliga o mecanismo que permitiria flagrar o que ele faz ali dentro. O runtime .NET (clr.dll) também aparece hookado no processo. O resultado é um payload que roda em memória com a vigilância de scripts desativada — e o loader que poderia ser incriminador já saiu de cena.

Detecção: os sinais certos

Como o charmap.exe é uma utilidade simples para ver caracteres especiais, ele raramente é iniciado oculto por um processo AutoIt e quase nunca faz conexão de saída. Essas relações incomuns valem mais do que o arquivo assinado:

  • Um PowerShell com janela oculta escrevendo arquivos em Temp e na pasta Startup é evento de prioridade alta, principalmente se dispara um executável AutoIt (ou renomeado) com um arquivo tipo script como único argumento.
  • Correlacione isso com execuções inesperadas do charmap.exe, criação de threads remotas (via CreateRemoteThread) e conexões de rede saindo dele — a combinação expõe a cadeia antes do roubo de dados.

O padrão pai/filho importa: na hierarquia de processos da amostra, o charmap.exe aparece como filho do processo AutoIt suspeito — algo que nunca acontece em uso normal.

Indicadores de compromisso (IoCs)

ArquivoSHA-256Papel na cadeia
Right-click to open Invoice Details.batae4144ff75a9b6371fd4d0ce0cce0e1d7be82f3c28eeea62ed5b9b0bea3450a6Isca inicial (fatura falsa)
kojuyn.ini4affb923504ddf5fdd5f4a1185bf5259110bcf96cc3f0c740e7cf217bfb89a0cScript loader em AutoIt
3200000.exe22678bf501fee4baeef297bd2f122ea3cbcb99c8a525b0b30ab985bc8e375c7aEstágio injetado recuperado do dump
3200000_02C37000.exe15700817e517fefcabc0291e350daf3e10d52f6b24de07b4e2396843a671addaEstágio com o código de injeção
Veukuzmw.dll61056e4c274694ca2553e715c93dc2768def716de750598d99df79252bc4923dDLL final do AsyncRAT
ogftogcyiblzjccmcbnw.exeInterpretador AutoIt legítimo renomeado
nloemfbihmhmPayload criptografado sem extensão (537 KB)
h73la8.batPersistência na pasta Startup
C2158.51.122.136:4944Servidor de comando e controle (TCP)

Como se proteger

Controle de aplicação. Mantenha uma allowlist de executáveis permitidos nos endpoints: o AutoIt é legítimo, mas quase nenhuma empresa precisa dele rodando em estações de trabalho comuns. Bloquear execuções de AutoIt fora de máquinas administradas corta o estágio 3 pela raiz.

Monitore relação pai/filho e rede. Regras no SIEM (plataforma que centraliza e correlaciona logs de segurança) para powershell.exe com janela oculta escrevendo em Temp ou Startup, para processos AutoIt (mesmo renomeados) com argumentos .ini ou .bat, e principalmente para charmap.exe com conexão de saída — isso é anomalia, não comportamento normal.

Invista em EDR com detecção de injeção. Soluções de detecção e resposta em endpoints (EDR) que monitoram alocação de memória executável, criação de threads remotas e módulos carregados sem arquivo em disco pegam o estágio 4 no ato, mesmo com o AMSI patchado.

Desconfie de faturas e documentos inesperados. O vetor é a engenharia social: não abra anexos .bat, .zip, .js ou .lnk de remetentes não verificados, evite links suspeitos e softwares "crackeados" — o próprio relatório lista downloads trojanizados de programas piratas como um dos caminhos de entrega.

Analise amostras suspeitas antes de confiar. Ferramentas de análise estática como o PEStudio ajudam a inspecionar artefatos suspeitos — imports de API, entropia e metadados — sem executar nada.

Faça hunting ativo pelos IoCs. Busque os hashes da tabela acima, pastas de nome aleatório recentes em %LOCALAPPDATA%\Temp, o h73la8.bat na Startup e conexões TCP na porta 4944 para o IP do C2.

Conclusão

A campanha ensina uma lição que vale para qualquer defensor: assinatura digital e nome de processo confiável não são prova de segurança. O ataque combina o elo mais fraco (uma pessoa clicando numa fatura falsa), ferramentas legítimas do Windows (PowerShell, AutoIt e charmap.exe) e um RAT clássico rodando inteiro em memória — sem um único arquivo malicioso em disco na fase final. Defender-se exige olhar para o comportamento e para as relações entre processos, não para nomes e reputações. No caso do charmap.exe com conexão de saída, o "processo legítimo" já entregou o jogo.

Perguntas frequentes

O que é o AsyncRAT?

É um trojan de acesso remoto escrito em .NET, com código disponível publicamente, que dá ao invasor controle da máquina: captura de tela, keylogging, roubo de arquivos e execução remota de comandos, com comunicação por TCP com um servidor de comando e controle.

O que é o charmap.exe e por que ele foi escolhido como alvo?

É o Mapa de Caracteres do Windows, um utilitário simples para visualizar e copiar caracteres especiais. Ele é assinado pela Microsoft, então sua presença na lista de processos parece rotineira — e toda atividade maliciosa que sai dele é atribuída a um processo confiável.

O que significa rodar o malware em memória?

Significa que o código malicioso é injetado e executado direto na memória RAM de um processo legítimo, sem nunca ser gravado como arquivo em disco. Nada fica disponível para a varredura tradicional de arquivos, e o loader que poderia ser detectado sai de cena após a injeção.

O que é o AMSI e como o bypass funciona?

O AMSI é a interface da Microsoft que permite antivírus inspecionarem scripts e assemblies em tempo de execução. Na amostra, a função AmsiScanBuffer foi patchada no processo infectado para sempre responder limpo, desativando o escaneamento de scripts e dos assemblies .NET carregados pelo payload.

Como saber se meu sistema foi infectado?

Procure por um charmap.exe na lista de processos com conexão de rede ativa, um powershell.exe oculto escrevendo em Temp ou na pasta Startup, executáveis AutoIt renomeados e o arquivo h73la8.bat na Inicialização. Os hashes da tabela de IoCs podem ser buscados em plataformas como o VirusTotal.

O que fazer se encontrar os IoCs na minha rede?

Isole a máquina afetada da rede imediatamente, colete o dump de memória e os logs de processo antes de qualquer limpeza, busque os hashes e o IP do C2 em outros hosts e acione a resposta a incidentes. Depois, remova a persistência h73la8.bat da pasta Startup e restaure o sistema afetado.

Há vítimas confirmadas no Brasil?

Não há, até a publicação, vítimas brasileiras confirmadas — a análise é de laboratório sobre amostras reais da campanha. Mas o vetor é universal: qualquer usuário de Windows que receba uma fatura ou documento inesperado pode ser alvo, independentemente do país.

Por que a assinatura da Microsoft não impede o ataque?

Porque o arquivo assinado (charmap.exe e o AutoIt renomeado) não é o malware — é o hospedeiro. A assinatura prova a origem do binário, não o que acontece dentro do processo em execução. A injeção roda código estranho dentro de um binário legítimo, e a assinatura não protege contra isso.

Fontes e leituras adicionais

Gostou? Receba novos conteúdos por e-mail.

Entre na comunidade

Discussões técnicas e novidades em primeira mão.