En nuestrainvestigación anterior, analizamos un Windows al que denominamosNWHStealer. Los atacantes responsables de este programa buscan continuamente nuevos métodos para distribuirlo. Durante nuestras actividades de búsqueda, observamos que los atacantes utilizan un entorno de ejecución de JavaScript llamado Bun para facilitar su distribución.
Bun es un kit de herramientas de JavaScript y TypeScript completo, rápido y de confianza, diseñado como una alternativa moderna y de alto rendimiento a Node.js. Se ha desarrollado desde cero para simplificar el desarrollo web moderno mediante la integración de varias herramientas esenciales en un único ejecutable.
Su relativa novedad también lo hace atractivo para los atacantes. Bun aún no se ha visto mucho en campañas de malware, y les permite empaquetar código malicioso en ejecutables de mayor tamaño que pueden ser más difíciles de detectar.
¿Qué es NWHStealer y qué puede hacer?
NWHStealer es unprograma de robo de datos basado en Rustque se distribuye mediante diversos señuelos y métodos de distribución. Entre ellos se incluyen scripts de Node.js, instaladores MSI y, más recientemente, cargadores de JavaScript creados con el entorno de ejecución Bun.
A menudo se aloja en plataformas legítimas como GitHub, GitLab, MediaFire, Itch.io y SourceForge, lo que le permite pasar desapercibido entre el software habitual y aumenta las posibilidades de que los usuarios lo descarguen. Los atacantes siguen creando nuevos perfiles y señuelos para propagar el programa de robo de datos.
Una vez instalado en tu ordenador, NWHStealer puede:
- Recopilar información del sistema, incluyendo el sistema operativo, el hardware, el software de seguridad, los datos de los usuarios y los dispositivos conectados.
- Robar datos de navegadores, extensiones y monederos de criptomonedas.
- Robar datos de diferentes aplicaciones, incluidas aplicaciones FTP como FileZilla y CoreFTP, y aplicaciones de mensajería como Steam y Discord.
- Inyectar código malicioso en los procesos del navegador y ejecutar cargas útiles adicionales (por ejemplo, XMRig).
- Intentar eludir el Control de cuentas de usuario (UAC).
- Consigue la persistencia mediante tareas programadas.
- Consigue nuevas direcciones de comando y control (C2) de Telegram.
Cómo mantenerse seguro
Los atacantes adaptan constantemente sus técnicas, y el uso de herramientas más recientes, como Bun, demuestra cómo intentan adelantarse a los sistemas de detección.
NWHStealer resulta especialmente preocupante debido a su amplia difusión y al tipo de datos que roba. Los datos robados del navegador, las contraseñas guardadas y la información de los monederos de criptomonedas pueden dar lugar rápidamente a la apropiación de cuentas, pérdidas económicas y otras vulnerabilidades.
Aquí tienes algunas formas sencillas de mantenerte a salvo:
- Descarga software únicamente de sitios web oficiales.
- Ten cuidado con las descargas de plataformas como GitHub, SourceForge o sitios para compartir archivos, a menos que confíes en la fuente.
- Los atacantes siguen creando nuevos perfiles para distribuir este programa de robo de datos en distintas plataformas. Cuando descargues algo de sitios de alojamiento de archivos o blogs, comprueba el perfil del desarrollador o editor, su reputación y cuánto tiempo lleva activo.
- Comprueba la estructura de los archivos comprimidos y que el contenido, las imágenes y los archivos de texto coincidan con lo que has descargado. Comprueba también el nombre del archivo comprimido, ya que suelen seguir patrones reconocibles.
- Comprueba el editor y la firma del archivo antes de ejecutarlo.
Más seguro. Más rápido. Navegación sin anuncios.
Consejo de experto: Instala Malwarebytes Browser Guard para bloquear los sitios maliciosos antes de que se carguen.
Análisis técnico
El nuevo método de distribución: Bun JavaScript Runtime
Según su página web oficial, Bun es un kit de herramientas «todo en uno» para JavaScript, TypeScript y JSX. Está desarrollado desde cero en Zig y funciona con el motor JavaScriptCore de Apple, centrándose en un arranque rápido y un bajo consumo de memoria.
El bollo se compone de cuatro ingredientes principales:
- Entorno de ejecución de JavaScript:un entorno de ejecución de JavaScript diseñado para sustituir directamente a Node.js.
- Package Manager: unaalternativa rápida a npm.
- Test Runner: unejecutor integrado compatible con Jest que ejecuta las pruebas mucho más rápido que los ejecutores estándar.
- Bundler: sustituye aherramientas como Webpack, Vite o esbuild para empaquetar código.
En campañas recientes, hemos detectado que NWHStealer se está distribuyendo mediante un paquete de Bun JavaScript Runtime.
Como vimos en nuestra investigación anterior, para iniciar la cadena de infección se utilizan señuelos relacionados con videojuegos y otro tipo de software. Algunos de los nombres de archivos ZIP detectados en estas campañas recientes son:
- Software y trucos relacionados con los videojuegos, tales como:
MOUSE_PI_Trainer_v1.0.zipFiveM Mod.zipVampireCrawlers_Trainer_v1.0.zipMagicalPrincess_Trainer_v1.0.zipTerraTechLegion_Trainer_v1.0.zip
- Otros programas como:
TradingView-Activation-Script-0.9.zipAutoTune 2026.zipMetatune by Slate Digital 2026.zipGoGoTv_Plus.zip,Autodesk.zip
En el caso analizado en este artículo, la cadena de infección comienza con un archivo que contiene Installer.exe, que incorpora código JavaScript incluido en el entorno de ejecución de Bun.
La carpeta «DW» contiene otro cargador, llamado dw.exe. Este cargador de autoinyección es similar al analizado anteriormente, pero cuenta con una rutina de descifrado diferente. Este cargador no está presente en todos los archivos ZIP analizados.

En Readme.txt El archivo solicita al usuario que lo ejecute manualmente dw.exe si el principal .exe el archivo no se ejecuta correctamente. Esto ofrece al atacante dos formas de distribuir el programa de robo de datos si el servidor C2 del cargador principal de Bun está desconectado. El cargador en dw.exe funciona de forma independiente del cargador de JavaScript de Bun.


dw.exe se iniciaEn este artículo no analizamos dw.exe, ya que se trata de una variante de los cargadores anteriores. En su lugar, nos centramos en el cargador de JavaScript que se ejecuta con el entorno de ejecución de JavaScript de Bun.
Análisis del cargador de JavaScript
El código JavaScript ejecutado por el motor de ejecución de JavaScript de Bun se encuentra dentro del .bun sección y está ofuscado.

.bun sección con el código JavaScript ofuscado El código malicioso se encuentra en dos partes del código:
sysreq.js: realiza comprobaciones contra la virtualización mediante un sistema de puntuación.memload.js: se comunica con el servidor C2, realiza el descifrado y carga la siguiente fase.

El cargador ejecuta varios comandos CIM (Common Information Model) de PowerShell y comandos WMI (Windows Instrumentation) para detectar entornos virtuales. Existen diferentes controles relacionados con el número de CPU, el espacio en disco, la resolución de pantalla, los dispositivos USB, los fabricantes y productos de hardware, el número de programas instalados, la presencia de carpetas específicas (como las del navegador), el número de procesos en ejecución y el nombre de usuario. Se implementa un sistema de puntuación y, en función de esta puntuación, el cargador decide si continuar con la infección o interrumpirla.
Para detectar un entorno virtual, el cargador ejecuta más de 10 comandos de PowerShell, tales 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
Los resultados se comparan con diferentes cadenas, por ejemplo:
- Indicadores de virtualización: QEMU, SEABIOS, Bochs, VirtualBox, VMware, VirtualBox, KVM, Xen, Parallels, VirtIO, VMBus, Red Hat, EDK II
- Cuenta de prueba: sandbox, malware, virus, sample, vmuser, wdagutilityaccount, defaultuser0
- MAC a entornos virtuales
Las cadenas se descifran mediante la operación XOR y la decodificación Base64; hay matrices de tuplas y cada una contiene las cadenas cifradas y una clave utilizada para el descifrado XOR.

Hay varias funciones que se encargan del descifrado de cadenas, incluida una que descifra la configuración utilizada en la comunicación C2. Configuración parcial:
C2 server: https://silent-harvester.cc
BUILD_ID: 0ddbfec60307
C2 Path: /api/status, /api/update
El cargador obtiene y envía una solicitud inicial al punto final https://C2-server/api/report con datos cifrados sobre el sistema afectado:
- Dirección IP pública obtenida mediante una solicitud a api.ipify.org.
- Información del sistema
- Resultado anti-VM
- Captura de pantalla codificada en Base-64
- Fecha y hora
A continuación, realiza dos solicitudes HTTP GET:
https://C2-server/api/status?v={BUILD_ID}, para obtener la semilla utilizada en la derivación de la clave AES.https://C2-server/api/update?v={BUILD_ID}, para obtener la carga útil cifrada con el nonce y la etiqueta de autenticación de AES.
La siguiente etapa se descifra mediante AES-256-CBC, con los datos AES devueltos por el C2 y cargados mediante un cargador de autoinyección utilizando las siguientes API:
VirtualAllocVirtualProtectLoadLibraryAGetProcAddressRtlAddFunctionTableCreateThreadSearchPathA
Estas API de Win32 se ejecutan a través del módulo Bun bun:ffi, lo que permite a JavaScript llamar a bibliotecas nativas.
Al final de este proceso, se instaló NWHStealer en los casos analizados.
Indicadores de compromiso (IOC)
Dominios
whale-ether[.]pro: Servidor C2 de NWH Stealer
cosmic-nebula[.]cc: Servidor C2 de 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
«Una de las mejores suites de ciberseguridad del mundo».
Según CNET.Lee su reseña →





