En nuestra investigación anterior , analizamos un Windows El ciberdelincuente al que rastreamos como NWHStealer . Los atacantes detrás de este programa malicioso buscan constantemente nuevos métodos para distribuirlo. Durante nuestras actividades de búsqueda, observamos que utilizan un entorno de ejecución de JavaScript llamado Bun para facilitar su distribución.
Bun es un conjunto de herramientas JavaScript y TypeScript completo, rápido y legítimo, diseñado como una alternativa moderna y de alto rendimiento a Node.js. Ha sido 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 ampliamente en campañas de malware, y les permite empaquetar código malicioso en ejecutables más grandes que pueden ser más difíciles de detectar.
¿Qué es NWHStealer y qué puede hacer?
NWHStealer es un programa de robo de aplicaciones basado en Rust que se distribuye mediante diversos métodos de señuelo y entrega. Estos incluyen scripts de Node.js, instaladores MSI y, más recientemente, cargadores de JavaScript creados con el entorno de ejecución Bun.
Suele alojarse en plataformas legítimas como GitHub, GitLab, MediaFire, Itch.io y SourceForge, lo que le permite mimetizarse con el software normal y aumenta las probabilidades de que los usuarios lo descarguen. Los atacantes siguen creando nuevos perfiles y señuelos para propagar el malware.
Una vez instalado en su PC, NWHStealer puede:
- Recopilar información del sistema, incluyendo el sistema operativo, el hardware, el software de seguridad, los datos del usuario y los dispositivos conectados.
- Roba datos de navegadores, extensiones y monederos de criptomonedas.
- Roba datos de diferentes aplicaciones, incluidas aplicaciones FTP como FileZilla, 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).
- Logre la persistencia mediante tareas programadas.
- Obtén nuevas direcciones de comando y control (C2) de Telegram.
Cómo mantenerse a salvo
Los atacantes adaptan constantemente sus técnicas, y el uso de herramientas más recientes como Bun demuestra cómo intentan adelantarse a la detección.
NWHStear es particularmente preocupante debido a su amplia distribución y al tipo de datos que roba. Los datos de navegador robados, las contraseñas guardadas y la información de las billeteras de criptomonedas pueden conducir rápidamente al acceso no autorizado a cuentas, pérdidas financieras y mayores riesgos.
Aquí tienes algunas maneras sencillas de mantenerte a salvo:
- Descarga software únicamente desde sitios web oficiales.
- Tenga cuidado al descargar archivos de plataformas como GitHub, SourceForge o plataformas para compartir archivos, a menos que confíe en la fuente.
- Los atacantes siguen creando nuevos perfiles para distribuir este programa malicioso en diversas plataformas. Al descargar archivos de proveedores de alojamiento o blogs, compruebe el perfil, la reputación y la antigüedad del desarrollador o editor.
- Comprueba la estructura de los archivos comprimidos: asegúrate de que el contenido, las imágenes y los archivos de texto coincidan con lo que descargaste. Revisa también el nombre del archivo, ya que suelen tener patrones reconocibles.
- Comprueba el editor y la firma del archivo antes de ejecutarlo.
Más seguro. Más limpio. Navegación sin anuncios.
Consejo profesional: Instala Malwarebytes Browser Guard para bloquear los sitios web maliciosos antes de que se carguen.
Análisis técnico
El nuevo método de distribución: Bun JavaScript Runtime
Según su sitio web oficial, Bun es un conjunto 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 inicio rápido y un bajo consumo de memoria.
El bollo se compone de cuatro componentes principales:
- Entorno de ejecución de JavaScript: un entorno de ejecución de JavaScript diseñado como un reemplazo directo para Node.js.
- Gestor de paquetes: una alternativa rápida a npm.
- Ejecutor de pruebas: un ejecutor integrado compatible con Jest que ejecuta las pruebas mucho más rápido que los ejecutores estándar.
- Bundler: reemplaza herramientas como Webpack, Vite o esbuild para empaquetar código.
En campañas recientes, hemos detectado que NWHStearler se está distribuyendo mediante un paquete de ejecución de JavaScript de Bun.
Como vimos en nuestra investigación anterior, se utilizan señuelos relacionados con juegos y otros programas para iniciar la cadena de infección. Algunos de los nombres de archivos ZIP detectados en estas campañas recientes incluyen:
- Software y trucos relacionados con juegos, tales como:
MOUSE_PI_Trainer_v1.0.zipFiveM Mod.zipVampireCrawlers_Trainer_v1.0.zipMagicalPrincess_Trainer_v1.0.zipTerraTechLegion_Trainer_v1.0.zip
- Otro software 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 con el entorno de ejecución Bun.
La carpeta “DW” contiene otro cargador, llamado dw.exeEste cargador de autoinyección es similar al analizado previamente, pero con una rutina de descifrado diferente. Este cargador no está presente en todos los archivos ZIP analizados.

El Readme.txt El archivo solicita al usuario que lo inicie manualmente. dw.exe si el principal .exe El archivo no se ejecuta correctamente. Esto le da al atacante dos formas de distribuir el ladrón si el C2 del cargador principal de Bun está fuera de línea. El cargador en dw.exe Funciona independientemente del cargador JavaScript de Bun.


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

.bun sección con el código JavaScript ofuscado El código malicioso está implementado en dos partes del código:
sysreq.js: realiza comprobaciones anti-virtualización con un sistema de puntuación.memload.js: se comunica con el servidor C2, realiza el descifrado y carga la siguiente etapa.

El cargador ejecuta varios comandos PowerShell CIM (Common Information Model) y WMI ( Windows El sistema utiliza comandos de Instrumental de Gestión (IMG) 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 software instalado, 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 que, en función de esta, permite al cargador decidir si continúa con la infección o la finaliza.
Para detectar un entorno virtual, el cargador ejecuta más de 10 comandos de PowerShell, como por ejemplo:
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 de texto, por ejemplo:
- Indicadores de virtualización: qemu, seabios, bochs, vbox, vmware, virtualbox, kvm, xen, parallels, virtio, vmbus, red hat, edk ii
- Sandbox de nombres de usuario: sandbox, malware, virus, sample, vmuser, wdagutilityaccount, defaultuser0
- MAC asociados con entornos virtuales
Las cadenas se descifran mediante la operación XOR y la decodificación base64; existen matrices de tuplas, y cada una contiene las cadenas cifradas y una clave utilizada para el descifrado XOR.

Varias funciones 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 comprometido:
- 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
- Marca de tiempo
Luego realiza dos solicitudes HTTP GET:
https://C2-server/api/status?v={BUILD_ID}, para obtener la semilla utilizada para la derivación de la clave AES.https://C2-server/api/update?v={BUILD_ID}, para obtener la carga útil cifrada con nonce AES y etiqueta de autenticación.
La siguiente etapa se descifra utilizando AES-256-CBC, con los datos AES devueltos por el C2 y cargados con 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 que JavaScript llame a bibliotecas nativas.
Al finalizar este proceso, NWHStealer se implementó en los casos analizados.
Indicadores de Compromiso (IOC)
Dominios
whale-ether[.]proServidor C2 de NWH Stealer
cosmic-nebula[.]ccServidor C2 de NWH Stealer
silent-harvester[.]ccServidor C2 de Bun Loader
silent-orbit[.]ccServidor C2 de Bun Loader
support-onion[.]clubServidor C2 de Bun Loader
Picadillo
d3a896f450561b2546b418b469a8e10949c7320212eb1c72b48e2b1e37c34ba5
96fe4ddfe256dc9d2c6faea7c18e2583cd9d9c0099a4ad2cf082f569ee8379f4
3710fb27d2032ef1eb1252ebf5c4dd516d2b2c0a83fb82c664c89e504b990fa9
33d07aa24b217f27df6a483295c817da198e12511a6989bcc6b917feaf8e491d
5427b4cefb329ed0e9585b3ce58a2788baf87e3b0c7221373f9bbd5f32c85b62
308da9f49ffa1d1744e428b567792ab22712159974e9da8d8e0414ecd81de93e
021838f30a43026084978bce187c165c6b640d8d474ec009d48078d21ec62025
c8e96b55f13435c4b43b7209d2403f1a0e0f9deb05edc50e0f777430be693b07
0614c4cc6375ab6bdcdd2dfa913a67d32c3e8be9b95a4a2aa09bb131b98191c8
0020999b2e3e4d1b2cfb69e4df9440d3ce05d508573889fdc12b724ce75a0cd8
0fa42df08cc467ec52b2d388b5575114a8ec067d13f6b1a653ec33fe879f88ca
15f79980650393d182f81cd6e389210568aa1f5f875e515efe6cb9485d64b7fb
20454ba58d509300fd694ae6159db4efa1b7ff965f98c29e7d087e20f96578c1
“Uno de los mejores paquetes de ciberseguridad del planeta.”
Según CNET. Lee su reseña →





