Em nossapesquisa anterior, analisamos um Windows que monitoramos comoNWHStealer. Os invasores por trás desse programa estão constantemente descobrindo novos métodos para distribuí-lo. Durante nossas atividades de investigação, percebemos que os invasores estão utilizando um ambiente de execução de JavaScript chamado Bun para auxiliar na sua distribuição.
O Bun é um kit de ferramentas completo, rápido e confiável para JavaScript e TypeScript, projetado para ser uma alternativa moderna e de alto desempenho ao Node.js. Ele foi desenvolvido desde o início para simplificar o desenvolvimento web moderno, integrando várias ferramentas essenciais em um único executável.
Sua relativa novidade também o torna atraente para os invasores. O Bun ainda não foi amplamente observado em campanhas de malware, e permite que eles incorporem código malicioso em executáveis maiores, que podem ser mais difíceis de detectar.
O que é o NWHStealer e o que ele pode fazer?
O NWHStealer é umprograma de roubo de dados baseado em Rust, distribuído por meio de diversos iscas e métodos de entrega. Entre eles estão scripts Node.js, instaladores MSI e, mais recentemente, carregadores de JavaScript criados com o runtime Bun.
Muitas vezes, ele é hospedado em plataformas legítimas, como GitHub, GitLab, MediaFire, Itch.io e SourceForge, o que ajuda a disfarçá-lo como um software comum e aumenta as chances de os usuários baixá-lo. Os invasores continuam criando novos perfis e iscas para espalhar o roubador de dados.
Depois de instalado no seu computador, o NWHStealer pode:
- Recolher informações do sistema, incluindo sistema operacional, hardware, software de segurança, dados do usuário e dispositivos conectados.
- Roubar dados de navegadores, extensões e carteiras de criptomoedas.
- Rouba dados de diversos aplicativos, incluindo aplicativos FTP, como FileZilla e CoreFTP, e aplicativos de mensagens, como Steam e Discord.
- Injetar código malicioso nos processos do navegador e executar cargas úteis adicionais (por exemplo, XMRig).
- Tentativa de contornar o Controle de Conta de Usuário (UAC).
- Garanta a persistência por meio de tarefas agendadas.
- Obtenha novos endereços de comando e controle (C2) do Telegram.
Como se manter seguro
Os invasores estão constantemente adaptando suas técnicas, e o uso de ferramentas mais recentes, como o Bun, mostra como eles tentam se antecipar à detecção.
O NWHStealer é particularmente preocupante devido à ampla disseminação e aos tipos de dados que tem como alvo. Dados roubados do navegador, senhas salvas e informações de carteiras de criptomoedas podem levar rapidamente à invasão de contas, a prejuízos financeiros e a outros riscos de segurança.
Aqui estão algumas maneiras simples de se manter seguro:
- Baixe software apenas de sites oficiais.
- Tenha cuidado ao fazer downloads de plataformas como GitHub, SourceForge ou plataformas de compartilhamento de arquivos, a menos que você confie na fonte.
- Os invasores continuam criando novos perfis para distribuir esse programa malicioso em várias plataformas. Verifique o perfil do desenvolvedor ou editor, sua reputação e há quanto tempo ele existe ao baixar algo de sites de hospedagem de arquivos ou blogs.
- Verifique a estrutura dos arquivos compactados para garantir que o conteúdo, as imagens e os arquivos de texto correspondam ao que você baixou. Verifique também o nome do arquivo compactado, pois eles geralmente seguem padrões reconhecíveis.
- Verifique o editor e a assinatura do arquivo antes de executá-lo.
Mais seguro. Mais rápido. Navegação sem anúncios.
Dica profissional: Instale Malwarebytes Browser Guard para bloquear sites maliciosos antes que eles sejam carregados.
Análise técnica
O novo método de distribuição: Bun JavaScript Runtime
De acordo com seu site oficial, o Bun é um kit de ferramentas completo para JavaScript, TypeScript e JSX. Ele foi desenvolvido do zero em Zig e é alimentado pelo mecanismo JavaScriptCore da Apple, com foco em inicialização rápida e baixo consumo de memória.
O pão é composto por quatro ingredientes principais:
- JavaScript Runtime:um ambiente de execução de JavaScript projetado para substituir diretamente o Node.js.
- Gerenciador de pacotes: umaalternativa rápida ao npm.
- Test Runner: umexecutor integrado e compatível com o Jest que executa testes muito mais rapidamente do que os executores padrão.
- Bundler: substituiferramentas como Webpack, Vite ou esbuild para empacotar código.
Em campanhas recentes, detectamos que o NWHStealer está sendo distribuído por meio de um pacote do Bun JavaScript Runtime.
Como vimos em nossa pesquisa anterior, iscas relacionadas a jogos e outros tipos de software são usadas para iniciar a cadeia de infecção. Alguns dos nomes de arquivos ZIP detectados nessas campanhas recentes incluem:
- Softwares e truques relacionados a jogos, tais como:
MOUSE_PI_Trainer_v1.0.zipFiveM Mod.zipVampireCrawlers_Trainer_v1.0.zipMagicalPrincess_Trainer_v1.0.zipTerraTechLegion_Trainer_v1.0.zip
- Outros softwares, tais como:
TradingView-Activation-Script-0.9.zipAutoTune 2026.zipMetatune by Slate Digital 2026.zipGoGoTv_Plus.zip,Autodesk.zip
No caso analisado neste artigo, a cadeia de infecção começa com um arquivo que contém Installer.exe, que incorpora código JavaScript incluído no ambiente de execução do Bun.
A pasta “DW” contém outro carregador, chamado dw.exe. Este carregador de autoinjeção é semelhante ao analisado anteriormente, mas possui uma rotina de descriptografia diferente. Este carregador não está presente em todos os arquivos ZIP analisados.

O Readme.txt O arquivo solicita que o usuário execute manualmente dw.exe se o principal .exe o arquivo não é executado corretamente. Isso dá ao invasor duas maneiras de distribuir o programa de roubo de dados caso o servidor C2 do carregador principal do Bun esteja offline. O carregador em dw.exe funciona independentemente do carregador de JavaScript do Bun.


dw.exe é iniciadoNeste artigo, não analisamos dw.exe, já que se trata de uma variante dos carregadores anteriores. Em vez disso, vamos nos concentrar no carregador de JavaScript executado com o ambiente de execução Bun JavaScript.
Análise do carregador de JavaScript
O código JavaScript executado pelo ambiente de execução Bun JavaScript está dentro do .bun seção e está ofuscado.

.bun seção com o código JavaScript ofuscado O código malicioso está implementado em duas partes do código:
sysreq.js: realiza as verificações anti-virtualização por meio de um sistema de pontuação.memload.js: comunica-se com o servidor C2, realiza a descriptografia e carrega a próxima fase.

O carregador executa vários comandos CIM (Common Information Model) do PowerShell e comandos WMI (Windows Instrumentation) para detectar ambientes virtuais. Existem diversos controles relacionados a números de CPU, espaço em disco, resolução de tela, dispositivos USB, fabricantes e produtos de hardware, número de softwares instalados, presença de pastas específicas, como pastas do navegador, número de processos em execução e nome de usuário. Um sistema de pontuação é implementado e, com base nessa pontuação, o carregador decide se deve continuar com a infecção ou encerrá-la.
Para detectar um ambiente virtual, o carregador executa mais de 10 comandos do PowerShell, tais como:
Get-CimInstance -ClassName Win32_DiskDrive | Select-Object ModelGet-CimInstance -ClassName Win32_PhysicalMemory | Select-Object Manufacturer,SpeedGet-CimInstance -ClassName Win32_BIOS | Select-Object ManufacturerGet-CimInstance -ClassName Win32_BaseBoard | Select-Object Manufacturer,ProductGet-CimInstance -ClassName Win32_DiskDrive | Select-Object PNPDeviceID- (
Get-Process -ErrorAction SilentlyContinue).Count
Os resultados são comparados com diferentes sequências de caracteres, por exemplo:
- Indicadores de virtualização: qemu, seabios, bochs, vbox, vmware, virtualbox, kvm, xen, parallels, virtio, vmbus, red hat, edk ii
- Nome de usuário da área de teste: sandbox, malware, vírus, amostra, vmuser, wdagutilityaccount, defaultuser0
- MAC a ambientes virtuais
As cadeias de caracteres são descriptografadas por meio da operação XOR e da decodificação Base64; há matrizes de tuplas, e cada uma delas contém as cadeias de caracteres criptografadas e uma chave usada para a descriptografia XOR.

Várias funções lidam com a descriptografia de strings, incluindo uma que descriptografa a configuração usada na comunicação C2. Configuração parcial:
C2 server: https://silent-harvester.cc
BUILD_ID: 0ddbfec60307
C2 Path: /api/status, /api/update
O carregador obtém e envia uma solicitação inicial para o ponto de extremidade https://C2-server/api/report com dados criptografados sobre o sistema comprometido:
- IP público obtido por meio de uma solicitação à API do site api.ipify.org.
- Informações do sistema
- Resultado anti-VM
- Captura de tela codificada em Base-64
- Data e hora
Em seguida, ele faz duas solicitações HTTP GET:
https://C2-server/api/status?v={BUILD_ID}, para obter a semente utilizada na derivação da chave AES.https://C2-server/api/update?v={BUILD_ID}, para obter a carga útil criptografada com o nonce AES e a tag de autenticação.
A próxima etapa é descriptografada usando AES-256-CBC, com os dados AES retornados pelo C2 e carregados por um carregador de autoinjeção utilizando as seguintes APIs:
VirtualAllocVirtualProtectLoadLibraryAGetProcAddressRtlAddFunctionTableCreateThreadSearchPathA
Essas APIs Win32 são executadas por meio do módulo Bun bun:ffi, o que permite que o JavaScript chame bibliotecas nativas.
No final desse processo, o NWHStealer foi implantado nos casos analisados.
Indicadores de Compromisso (IOCs)
Domínios
whale-ether[.]pro: Servidor C2 do NWH Stealer
cosmic-nebula[.]cc: Servidor C2 do NWH Stealer
silent-harvester[.]cc: Servidor Bun Loader C2
silent-orbit[.]cc: Servidor Bun Loader C2
support-onion[.]club: Servidor Bun Loader C2
Hash
d3a896f450561b2546b418b469a8e10949c7320212eb1c72b48e2b1e37c34ba5
96fe4ddfe256dc9d2c6faea7c18e2583cd9d9c0099a4ad2cf082f569ee8379f4
3710fb27d2032ef1eb1252ebf5c4dd516d2b2c0a83fb82c664c89e504b990fa9
33d07aa24b217f27df6a483295c817da198e12511a6989bcc6b917feaf8e491d
5427b4cefb329ed0e9585b3ce58a2788baf87e3b0c7221373f9bbd5f32c85b62
308da9f49ffa1d1744e428b567792ab22712159974e9da8d8e0414ecd81de93e
021838f30a43026084978bce187c165c6b640d8d474ec009d48078d21ec62025
c8e96b55f13435c4b43b7209d2403f1a0e0f9deb05edc50e0f777430be693b07
0614c4cc6375ab6bdcdd2dfa913a67d32c3e8be9b95a4a2aa09bb131b98191c8
0020999b2e3e4d1b2cfb69e4df9440d3ce05d508573889fdc12b724ce75a0cd8
0fa42df08cc467ec52b2d388b5575114a8ec067d13f6b1a653ec33fe879f88ca
15f79980650393d182f81cd6e389210568aa1f5f875e515efe6cb9485d64b7fb
20454ba58d509300fd694ae6159db4efa1b7ff965f98c29e7d087e20f96578c1
“Um dos melhores pacotes de segurança cibernética do mundo.”
De acordo com a CNET.Leia a resenha deles →





