Comprovante bancário em JavaScript instala extensão que rouba sessões de banco no Chrome e no Edge — 98,75% das vítimas no Brasil

Notícia

Comprovante bancário em JavaScript instala extensão que rouba sessões de banco no Chrome e no Edge — 98,75% das vítimas no Brasil

Rodrigo ColissiRodrigo Colissi
16 de setembro de 202617 min de leitura
CibercrimesPhishingThreat Intelligence

Introdução

Uma operação de malware bancário rastreada desde maio de 2025 pela Elastic Security Labs (laboratório de pesquisa e inteligência de ameaças da Elastic, empresa por trás do Elasticsearch) como REF9334 infectou ao menos 1.515 sistemas — 98,75% deles no Brasil — com uma extensão maliciosa que rouba sessões de banco no Google Chrome (navegador da Google) e no Microsoft Edge (navegador da Microsoft baseado no Chromium). O ponto de entrada é simples e enganoso: um arquivo JavaScript disfarçado de comprovante bancário, boleto ou extrato, que a própria vítima executa manualmente acreditando estar abrindo um documento.

O toolkit usado na operação se chama KREMLIN — nome escolhido pelo autor, identificado nos cabeçalhos dos scripts como Kr3mlin4rt1st —, embora nada nela seja russo: as mensagens de erro e os comentários de código estão em português, as iscas imitam bancos brasileiros e as transações Ethereum dos operadores se concentram no horário de trabalho de São Paulo. Em 15 meses e sete campanhas, a Elastic observou o toolkit evoluir de simples loaders até um instalador C++ capaz de forjar as próprias verificações de integridade do Chromium (projeto de navegador open source que serve de base para Chrome e Edge): o navegador passa a tratar a extensão como aprovada pelo usuário, que nunca a instalou.

A análise completa foi publicada em 13 de setembro e repercutida pelo Cyber Security News na segunda-feira (16). Dois avisos antes de seguir: não há CVE envolvido — isto é uma campanha de fraude, não uma vulnerabilidade de navegador — e a contagem de infectados reflete apenas o que a Elastic conseguiu observar.

O golpe: o comprovante que não é documento

A infecção começa com um arquivo JavaScript que imita documentos legítimos, enviado por e-mail ou mensageiro: nomes no padrão TemaEmPortugues_Banco_DATA.js, como ComprovanteSafra_03-08-2026.js, Extrato, PIX, Pagamento, TED, Transferencia, Recibo, Alvara e Regulamentacao. A Elastic mapeou iscas para 12 instituições brasileiras: Banco do Brasil, Caixa, Bradesco, Sicoob, C6 Bank, Inter, BTG Pactual, Safra, PagBank, PicPay, Santander e Mercado Pago. Ao executar o arquivo, o usuário vê um erro falso — o malware cria um script auxiliar no padrão popup_data_aleatorio.js que exibe uma janela de erro e se apaga em seguida — enquanto a cadeia de infecção roda em segundo plano. Os nomes dos arquivos e os erros em português confirmam o alvo: falantes de português, majoritariamente no Brasil.

A operação não é um caso isolado: o ecossistema de fraude bancária brasileira está ativo em várias frentes — o grupo BREEZE COMET usa malware assistido por IA contra bancos do país, e o Mantax Otax é um ransomware Android que grava a tela para capturar OTPs. A KREMLIN se destaca por atacar o navegador, a camada de confiança que o usuário não costuma suspeitar. Em campanhas anteriores, os mesmos operadores distribuíram RATs (trojan de acesso remoto, ferramenta que dá controle total da máquina ao atacante) como PULSAR e REMCOS — a mesma família de ferramentas do StreamRAT, analisado aqui no site.

Os estágios: do JavaScript ao navegador

A cadeia de ataque tem cinco etapas: a isca em JavaScript, o loader com verificações anti-sandbox, a persistência disfarçada de runtime da Microsoft, o instalador C++ com sideload de um binário legítimo da SentinelOne e, por fim, a extensão AVSync cravada no Chrome e no Edge. O diagrama abaixo resume o fluxo; cada etapa é detalhada em seguida.

Cadeia de ataque

Isca em JScomprovante falsoLoader JSanti-sandbox + Node.jsPersistênciatarefa agendadaInstalador C++sideload SentinelOneExtensão AVSyncChrome e Edge

O loader JavaScript e a fuga de sandbox

O primeiro estágio é um loader ofuscado de forma simples — nomes de função genéricos e strings buscadas por índice numa tabela de referência. Antes de qualquer coisa, ele tenta descobrir se está rodando num ambiente de análise: conta os arquivos no desktop do usuário e usa uma consulta WMI (Windows Management Instrumentation, interface de administração do Windows usada para consultar processos e configurações do sistema) para contar os processos em execução. Se houver menos de 5 arquivos ou menos de 50 processos, o malware assume que está numa sandbox e aborta.

Passando no teste, o loader decodifica o próximo estágio com o certutil (utilitário nativo do Windows para manipular certificados, reaproveitado aqui para decodificar payloads Base64), baixa o Node.js (runtime que executa JavaScript fora do navegador) para rodar o código seguinte e envia um beacon de registro ao servidor C2 (servidor de comando e controle, usado para receber instruções e roubar dados), chamando o endpoint /api/log_loader com o ID da campanha. No exemplo analisado, o host é connection.upgradeonline.site.

Persistência disfarçada de runtime da Microsoft

O segundo estágio extrai um arquivo CAB (formato de arquivo compactado do Windows) embutido no script e instala uma tarefa agendada chamada MicrosoftNodeRuntimeUpdater, com descrição oficial em inglês sobre o "Node.js V8 Runtime" — na aparência, mais um componente legítimo da Microsoft. Um minuto após o logon do usuário, a tarefa executa conhost.exe --headless node.exe a partir do diretório que contém o script malicioso. O nome e a descrição são a assinatura da operação: se aparecerem numa máquina, é sinal de infecção.

O instalador C++ e o sideload da SentinelOne

O estágio final antes da extensão é um instalador de 2,10 MB escrito em C++ para x64. Para executar a carga maliciosa, ele abusa do sideload de DLL: usa um binário legítimo e assinado da SentinelOne (empresa de segurança especializada em proteção de endpoints), o SentinelMemoryScanner.exe, para carregar uma DLL não assinada disfarçada de SentinelAgentCore.dll — técnica documentada pela Symantec. O malware ainda contorna o lock de inicialização do Windows (a seção crítica LdrpLoaderLock) para criar sua thread principal antes de o DllMain terminar. O instalador repete as verificações anti-análise: lista de processos de ferramentas de análise, blacklist de nomes de usuário (Sandbox, testuser, virus), exigência de mais de 2 CPUs e mais de 3 GB de RAM, além da checagem do canário de rede. Quando detecta análise, encerra-se deliberadamente com uma violação de acesso.

A checagem do canário merece destaque, porque virou o ponto fraco da operação. O malware testa a conectividade consultando o domínio www.creamp1eonlyfans.net, que não deveria existir — se algo responder, é sinal de sandbox simulando rede, e o malware se encerra. A Elastic registrou o domínio e o apontou para seus próprios servidores: 1.515 sistemas infectados — 98,75% deles no Brasil — tentaram se reportar ao canário e passaram a abortar a execução. Os equipamentos seguem com o estágio final instalado, mas a infecção parou de avançar. Temporariamente.

C2 em contrato Ethereum: trocar de infraestrutura sem recompilar

Uma das inovações da operação é usar o Ethereum (blockchain que executa contratos inteligentes) como dead drop (mecanismo em que um local público e imutável guarda dados que as amostras consultam para descobrir a infraestrutura ativa). O malware consulta o contrato inteligente 0xCD7360A83E5cdbBbbbcEB0e78748babA6740d07b e lê três parâmetros: main-v2 (URL do módulo principal), sub-module (URL de um JPEG que esconde um kit de injeção RunPE, técnica que executa um executável dentro da memória de outro processo) e sentinel (URL de um JPEG com um CAB contendo o binário legítimo da SentinelOne usado no sideload). Como a configuração vive na blockchain, os operadores trocam servidores e domínios com uma simples transação — sem recompilar uma única amostra. Em 13 de agosto, por exemplo, o main-v2 foi atualizado para zaviro.online; dias antes, em 10 de agosto, o parâmetro da extensão passou a apontar para volmira.site.

Os rastros on-chain também entregam pistas sobre os operadores: os primeiros contratos maliciosos surgiram em maio de 2026 (apontando para cremeb.com e, depois, granderevolucao.store) antes da migração para o contrato atual, implantado em 16 de junho. Uma única carteira, 0x5C32A09873be70a92fd8bB5A9fED7967dE06BdE6, implantou os contratos e atualizou as configurações, movimentando cerca de 20,7 mil USDT recebidos e 19 mil USDT enviados entre junho de 2025 e agosto de 2026. A análise dos horários das transações, convertidos para UTC-3, mostra atividade concentrada no horário comercial — coerente com operadores baseados em São Paulo.

A extensão que você nunca instalou

O instalador baixa a extensão e a instala fora da Web Store, direto nas pastas de perfil do Chrome e do Edge. O truque está em como ela é ativada: o malware manipula o arquivo Secure Preferences, que registra as configurações protegidas do navegador, habilita o modo desenvolvedor e registra a extensão — depois regenera as assinaturas criptográficas que o Chromium exige para aceitar essas mudanças. São dois mecanismos: os HMACs (códigos de autenticação de mensagem usados pelo navegador para verificar integridade das preferências) legados, calculados com uma seed extraída do resources.pak do navegador, e os hashes mais novos (campo encrypted_hash), que o Chromium versão 144 ou superior protege com a criptografia App-Bound (proteção que vincula a criptografia do navegador a um serviço do Windows). Para obter as chaves, o instalador espera o navegador fechar ou ficar dois minutos ocioso, encerra o processo à força se preciso e o reabre sob um debugger (ferramenta de depuração que permite inspecionar e controlar um processo) para extrair a chave App-Bound da memória — além da chave OSCrypt (sistema de criptografia de dados do Chromium) mais antiga, protegida por DPAPI (API nativa do Windows para criptografar dados vinculados ao usuário). O resultado: o navegador carrega a extensão como se o usuário a tivesse instalado e aprovado.

A extensão se apresenta como AVSync (ID ndpbidppejfanjbhfgjlohfanbfbklff, versão 1.0.0) e pede acesso a abas, cookies, armazenamento e à API webRequest. Com isso, executa comandos como GSH01 (captura de tela), GAT01 (listar abas), GCO01 (roubar cookies, sessionStorage e localStorage), GHI01 (histórico dos últimos 15 dias), GSO01 (código-fonte da página), INC01 (injetar HTML controlado pelo atacante) e UPD01 (atualizar as regras de alvo). Além disso, registra um keylogger (captura de teclado) em todos os campos de entrada das páginas visitadas, intercepta requisições — inclusive corpos de formulários POST — e pode redirecionar cliques para páginas falsas. Os dados saem compactados e codificados (lz-string + Base64) por um canal WebSocket (comunicação bidirecional usada para receber comandos em tempo real) e por requisições disfarçadas de arquivos CSS. Os bancos de dados do navegador — Login Data, Web Data, Network/Cookies e as pastas da extensão — são empacotados num ZIP junto com as chaves de criptografia (keys.json) e enviados, criptografados com RC4, para os endpoints volmira.site/api/savecreds e zaviro.online/api/v1/fingerprint.

O ouro da operação é o cookie de sessão. Quando você autentica no internet banking, o servidor entrega ao navegador um token que prova que a conta está autenticada — e ele vale pelo tempo da sessão, sem exigir senha nem código de verificação a cada operação. Com o cookie em mãos, o atacante reutiliza a sessão: entra na conta como se fosse você, consulta saldos, transfere valores e altera dados cadastrais, tudo sem precisar do seu OTP. Por isso, a recomendação de revogar sessões ativas após um incidente é tão importante quanto trocar a senha: ela invalida os tokens já emitidos, inclusive os que o invasor copiou. Somados aos cookies, os bancos de dados roubados — senhas salvas, histórico, capturas de tela e o que foi digitado — dão ao golpista material para repetir o ataque em outras contas e serviços.

Detecção e IoCs

Os indicadores abaixo foram publicados pela Elastic e consolidados pelo Cyber Security News. Os domínios aparecem com o ponto defangado (.) para evitar cliques acidentais.

TipoIndicadorDescrição
SHA-256106eac79396a3ff77b8f375c391260ce422be2ae4d55d3aa75b2635cbdc0fa42Loader JavaScript (ComprovanteSafra_03-08-2026.js)
SHA-2565ece7fd3766b0b7f8aadefa562313cea6c3c94f9398658dd389910e5be44f552Popup de erro falso (primeira etapa)
SHA-256c8c38634dd44d7c6162c66174a6ee23ee404265125166e8d757681bdd66a4268Instalador da extensão (C++, x64)
SHA-256223be3f8648bf6998c4a58b972522e5fda8d9d0a57b4e163811930de66c3f7caExtensão maliciosa AVSync
SHA-256ba80216c960977fa45e317f00dcf31e96acab29904a737cbc0bf86e929c3be5fLoader relacionado (Wave A)
SHA-256cb15cbf3f01a92e609e4c2bc26155e667e96c5d04770e83abba66ee07bcecea0Loader relacionado (Wave B)
SHA-256170dffb37e05f525f735bc9ad84b3908a488f7ce43fcb07739a10e4331e15a2cLoader relacionado (Wave C)
SHA-25642a3e2bb135fb46b11b127f45a266b3a4d9dff4aa1cf75433f93fe69ba51a9b9Instalador da extensão em PowerShell
Domínioconnection.upgradeonline.siteBeacon do loader e entrega da extensão
Domíniowww.creamp1eonlyfans.netDomínio canário checado pelo KREMLIN
Domíniogranderevolucao.storeHospedagem do instalador
Domíniovolmira.siteHospedagem da extensão e exfiltração
Domíniozaviro.onlineExfiltração e fingerprinting
Domíniograph.checkeligibitily.workers.devResolvedor de endpoint da extensão

Além dos IoCs, vale caçar a tarefa agendada MicrosoftNodeRuntimeUpdater, a extensão AVSync instalada fora da loja, alterações recentes no Secure Preferences e beacons para os domínios listados. O endpoint graph.checkeligibitily.workers.dev é um pivô valioso: o erro de digitação "checkeligibitily" também aparece no campo ENDPOINT_DINAMIC da configuração da extensão, permitindo correlacionar outras amostras da mesma família.

Como se proteger

Bancos não enviam JavaScript. Comprovantes, boletos, extratos e notificações de PIX chegam em PDF, imagem ou dentro do app do banco — nunca como arquivo .js. Treine usuários e equipes para desconfiar de qualquer anexo executável, mesmo que o nome pareça um documento oficial.

Bloqueie arquivos de script na entrada. Filtros de e-mail e de mensageria corporativa devem bloquear ou colocar em quarentena anexos .js, .jse, .vbs e .wsf, além de arquivos compactados com conteúdo executável. É a medida de maior custo-benefício contra esta cadeia.

Revise as extensões instaladas. Chrome e Edge exibem a lista completa em chrome://extensions (ou edge://extensions): remova qualquer extensão desconhecida, em especial as que pedem acesso a abas, cookies, storage e webRequest e as que não vieram da loja oficial. A AVSync não é um produto legítimo.

Revogue sessões e troque senhas. Em caso de suspeita, isole o dispositivo da rede, remova a extensão e a tarefa agendada, troque as senhas a partir de um sistema limpo e revogue todas as sessões ativas das contas bancárias — os apps de banco oferecem essa opção. Sessões revogadas inutilizam os cookies roubados.

Monitore o que foge do padrão. Tarefas agendadas recém-criadas (a MicrosoftNodeRuntimeUpdater é a assinatura desta operação), alterações nos perfis de navegador e conexões para domínios recém-registrados podem ser detectadas com um SIEM — plataformas open source como o Wazuh (plataforma de monitoramento e SIEM open source) cobrem bem esse caso. Para investigar a infraestrutura associada aos domínios, o Shodan (mecanismo de busca por dispositivos e serviços expostos na internet) ajuda a mapear o que os operadores deixaram público.

Use apps oficiais e favoritos. Acesse o banco pelo aplicativo ou digitando o endereço salvo nos favoritos, nunca por links recebidos em mensagens — um dos vetores mais comuns de fraude bancária no Brasil.

A verificação manual da persistência pode ser feita com o PowerShell:

# Tarefa agendada usada pelo KREMLIN para persistência
Get-ScheduledTask | Where-Object { $_.TaskName -eq "MicrosoftNodeRuntimeUpdater" }
 
# Extensões instaladas nos perfis do Chrome
Get-ChildItem "$env:LOCALAPPDATA\Google\Chrome\User Data\*\Extensions" -ErrorAction SilentlyContinue
 
# Última alteração no Secure Preferences (instalação forçada de extensão)
Get-ChildItem "$env:LOCALAPPDATA\Google\Chrome\User Data\*\Secure Preferences" -ErrorAction SilentlyContinue |
    Select-Object FullName, LastWriteTime

Conclusão

A operação KREMLIN combina o vetor mais simples da fraude brasileira — um documento falso que o usuário abre — com o alvo mais confiável: o navegador. Ao forjar as verificações de integridade do Chromium e esconder a configuração do C2 num contrato Ethereum, os operadores constroem uma cadeia difícil de bloquear com listas estáticas, porque a infraestrutura muda sem recompilar nada. A resposta da Elastic, registrando o domínio canário, deu um respiro: as máquinas infectadas passaram a abortar a execução ao detectar uma "sandbox" onde não havia. Mas é uma medida temporária — os sistemas continuam comprometidos com o estágio final, e os operadores podem remover ou alterar a checagem na próxima atualização. A análise é da Elastic, e a contagem de 1.515 infectados reflete o que a empresa observou até a publicação. A defesa eficaz não depende de bloquear um domínio, mas de tratar anexos executáveis como ameaça, revisar extensões e revogar sessões — hábitos que funcionam contra esta e contra a próxima campanha.

Perguntas frequentes

O que é o KREMLIN?

É o toolkit de uma operação de malware bancário brasileira rastreada pela Elastic como REF9334 desde maio de 2025. O nome vem do autor dos scripts (Kr3mlin4rt1st), mas a operação não tem relação com a Rússia: as iscas imitam bancos brasileiros, os textos estão em português e a atividade dos operadores se concentra no horário de São Paulo.

Como a vítima é infectada?

Ao executar um arquivo JavaScript disfarçado de comprovante, boleto ou extrato bancário. O script exibe um erro falso para parecer que o documento não abriu, verifica se não está rodando numa sandbox, baixa o Node.js e segue uma cadeia de estágios até instalar a extensão maliciosa no Chrome e no Edge.

O que é o domínio canário e por que ele interrompeu as infecções?

O malware consulta o domínio www.creamp1eonlyfans.net como teste anti-sandbox: como ele não deveria existir, uma resposta indica ambiente de análise e faz o malware abortar. A Elastic registrou o domínio e passou a respondê-lo; a partir daí, as máquinas infectadas passaram a abortar a execução. É uma interrupção temporária, não a eliminação da ameaça.

O que a extensão AVSync consegue fazer?

Roubar cookies, sessionStorage e localStorage, listar abas, capturar telas, coletar histórico e o código-fonte das páginas, registrar tudo o que a vítima digita (keylogger), interceptar requisições, injetar HTML controlado pelo atacante e redirecionar cliques. Ela também empacota os bancos de dados do navegador com as chaves de criptografia e envia tudo ao servidor.

Como o malware instala a extensão sem passar pela Web Store?

O instalador copia a extensão diretamente para as pastas de perfil do Chrome e do Edge e altera o arquivo Secure Preferences, registrando a extensão e habilitando o modo desenvolvedor. Depois, regenera as assinaturas criptográficas que o Chromium exige (HMACs e hashes App-Bound), usando chaves extraídas do próprio navegador — inclusive sob um debugger —, de modo que o navegador trata a extensão como aprovada.

O que um cookie de sessão roubado permite?

Reutilizar a conta autenticada sem senha e sem código de verificação. Com o cookie, o atacante entra no internet banking como se fosse o usuário e faz operações em seu nome. Por isso, revogar todas as sessões ativas após um incidente é essencial: isso invalida os tokens já emitidos, inclusive os copiados pelo invasor.

Como saber se fui infectado e o que fazer?

Procure a tarefa agendada MicrosoftNodeRuntimeUpdater, a extensão AVSync (ID ndpbidppejfanjbhfgjlohfanbfbklff) instalada fora da loja e alterações recentes no Secure Preferences. Em caso de confirmação ou suspeita, isole o dispositivo, remova a extensão e a tarefa, troque as senhas a partir de um sistema limpo e revogue as sessões ativas das contas bancárias.

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.