Des attaquants utilisent l'environnement d'exécution JavaScript Bun pour propager NWHStealer.

| 6 mai 2026
Des attaquants utilisent l'environnement d'exécution JavaScript Bun pour propager NWHStealer.

Dans nos recherches précédentes , nous avons analysé un Windows Nous suivons le voleur d'informations NWHStealer . Les attaquants à l'origine de ce logiciel malveillant découvrent constamment de nouvelles méthodes pour le diffuser. Lors de nos recherches, nous avons constaté qu'ils utilisent un environnement d'exécution JavaScript appelé Bun pour faciliter sa distribution.

Bun est une boîte à outils JavaScript et TypeScript tout-en-un, performante et légitime, conçue comme une alternative moderne à Node.js. Elle a été entièrement repensée pour simplifier le développement web moderne en intégrant plusieurs outils essentiels dans un seul exécutable. 

Sa relative nouveauté le rend également attrayant pour les attaquants. Bun n'a pas encore été largement utilisé dans les campagnes de logiciels malveillants, et il leur permet d'intégrer du code malveillant dans des exécutables plus volumineux, potentiellement plus difficiles à détecter. 

Qu'est-ce que NWHStealer et que peut-il faire ? 

NWHStealer est un voleur de données basé sur Rust, distribué via divers leurres et méthodes de livraison. Parmi ceux-ci figurent des scripts Node.js, des installateurs MSI et, plus récemment, des chargeurs JavaScript construits avec l'environnement d'exécution Bun.  

Il est souvent hébergé sur des plateformes légitimes telles que GitHub, GitLab, MediaFire, Itch.io et SourceForge, ce qui lui permet de se fondre parmi les logiciels courants et augmente les chances que les utilisateurs le téléchargent. Les attaquants continuent de créer de nouveaux profils et appâts pour diffuser ce logiciel malveillant. 

Une fois installé sur votre PC, NWHStealer peut : 

  • Collecter les informations système, notamment le système d'exploitation, le matériel, les logiciels de sécurité, les données utilisateur et les périphériques connectés. 
  • Voler des données depuis les navigateurs, les extensions et les portefeuilles de cryptomonnaies. 
  • Dérobez des données provenant de différentes applications, notamment des applications FTP telles que FileZilla, CoreFTP et des applications de messagerie telles que Steam et Discord. 
  • Injecter du code malveillant dans les processus du navigateur et exécuter des charges utiles supplémentaires (par exemple XMRig).
  • Tentative de contournement du contrôle de compte d'utilisateur (UAC). 
  • Assurez la persistance grâce aux tâches planifiées. 
  • Obtenez de nouvelles adresses de commande et de contrôle (C2) depuis Telegram. 

Comment rester en sécurité 

Les attaquants adaptent constamment leurs techniques, et l'utilisation d'outils plus récents comme Bun montre comment ils tentent de garder une longueur d'avance sur la détection. 

NWHStealer est particulièrement préoccupant en raison de son large déploiement et des types de données qu'il cible. Le vol de données de navigation, de mots de passe enregistrés et d'informations de portefeuilles de cryptomonnaies peut rapidement entraîner la prise de contrôle de comptes, des pertes financières et des compromissions plus graves. 

Voici quelques moyens simples de rester en sécurité : 

  • Téléchargez uniquement les logiciels depuis les sites web officiels. 
  • Soyez prudent avec les téléchargements provenant de plateformes comme GitHub, SourceForge ou les plateformes de partage de fichiers, sauf si vous faites confiance à la source. 
  • Les pirates continuent de créer de nouveaux profils pour diffuser ce logiciel malveillant sur différentes plateformes. Lorsque vous téléchargez un fichier depuis un hébergeur ou un blog, vérifiez le profil, la réputation et la date de création du développeur ou de l'éditeur. 
  • Vérifiez la structure des archives : assurez-vous que leur contenu (images, fichiers texte) correspond à ce que vous avez téléchargé. Vérifiez également le nom des archives ; ils suivent généralement des schémas reconnaissables. 
  • Vérifiez l'éditeur et la signature du fichier avant de l'exécuter. 


Conseil de pro : Installez Malwarebytes Browser Guard pour bloquer les sites malveillants avant même qu’ils ne se chargent. 


Analyse technique

Nouvelle méthode de distribution : Bun JavaScript Runtime 

Selon son site officiel, Bun est une boîte à outils JavaScript, TypeScript et JSX tout-en-un. Entièrement conçue en Zig et basée sur le moteur JavaScriptCore d'Apple, elle privilégie un démarrage rapide et une faible consommation de mémoire.

Le pain est composé de quatre éléments principaux : 

  • Environnement d'exécution JavaScript : un environnement d'exécution JavaScript conçu pour remplacer avantageusement Node.js. 
  • Gestionnaire de paquets : une alternative rapide à npm. 
  • Exécuteur de tests : un exécuteur intégré, compatible avec Jest, qui exécute les tests beaucoup plus rapidement que les exécuteurs standard. 
  • Bundler : remplace des outils comme Webpack, Vite ou esbuild pour la création de paquets de code. 

Lors de campagnes récentes, nous avons détecté que NWHStealer était distribué à l'aide d'un bundle Bun JavaScript Runtime.  

Comme nous l'avons constaté dans nos recherches précédentes, des leurres liés aux jeux et à d'autres logiciels sont utilisés pour amorcer la chaîne d'infection. Voici quelques exemples de noms de fichiers ZIP détectés lors de ces campagnes récentes : 

  • Logiciels et astuces liés aux jeux, tels que : 
    • MOUSE_PI_Trainer_v1.0.zip
    • FiveM Mod.zip
    • VampireCrawlers_Trainer_v1.0.zip
    • MagicalPrincess_Trainer_v1.0.zip 
    • TerraTechLegion_Trainer_v1.0.zip 
  • D'autres logiciels tels que : 
    • TradingView-Activation-Script-0.9.zip 
    • AutoTune 2026.zip
    • Metatune by Slate Digital 2026.zip
    • GoGoTv_Plus.zip, Autodesk.zip

Dans le cas analysé dans cet article, la chaîne d'infection commence par une archive contenant Installer.exe, qui intègre du code JavaScript fourni avec l'environnement d'exécution Bun. 

Le dossier « DW » contient un autre chargeur, appelé dw.exeCe chargeur à auto-injection est similaire à celui analysé précédemment, mais avec une routine de déchiffrement différente. Ce chargeur n'est pas présent dans tous les fichiers ZIP analysés. 

Le fichier ZIP malveillant contient deux chargeurs
Le fichier ZIP malveillant contient deux chargeurs 

Le Readme.txt Le fichier demande à l'utilisateur de lancer manuellement dw.exe si le principal .exe Le fichier ne s'exécute pas correctement. Cela offre à l'attaquant deux moyens de distribuer le logiciel malveillant si le serveur de commande et de contrôle du chargeur Bun principal est hors ligne. Le chargeur dans dw.exe fonctionne indépendamment du chargeur JavaScript Bun. 

Le fichier Lisez-moi à l'intérieur de l'archive ZIP
Le fichier Lisez-moi à l'intérieur de l'archive ZIP
Le faux programme d'installation de Build Tools s'affiche si dw.exe est lancé.
La fausse configuration des outils de construction affichée si dw.exe est commencé

Dans cet article, nous n'analysons pas dw.exe, car il s'agit d'une variante des chargeurs précédents. Nous nous concentrons plutôt sur le chargeur JavaScript exécuté avec l'environnement d'exécution JavaScript Bun. 

Analyse du chargeur JavaScript  

Le code JavaScript exécuté par l'environnement d'exécution JavaScript Bun se trouve à l'intérieur de .bun cette section est obscurcie.  

La section .bun contenant le code JavaScript obscurci
Le .bun section contenant le code JavaScript obscurci 

Le code malveillant est implémenté en deux parties : 

  • sysreq.js: effectue les contrôles anti-virtualisation avec un système de notation. 
  • memload.js: communique avec le serveur C2, effectue le décryptage et charge l'étape suivante. 
Point d'entrée du chargeur JavaScript

Le chargeur exécute plusieurs commandes PowerShell CIM (Common Information Model) et WMI ( Windows Les commandes MII (Management Instrumentation) permettent de détecter les environnements virtuels. Différents contrôles portent sur le nombre de cœurs du processeur, l'espace disque, la résolution d'écran, les périphériques USB, les fabricants et produits matériels, le nombre de logiciels installés, la présence de dossiers spécifiques (comme les dossiers du navigateur), le nombre de processus en cours d'exécution et le nom d'utilisateur. Un système de notation est mis en place ; en fonction de ce score, le programme d'infection décide de poursuivre ou d'interrompre l'opération.

Pour détecter un environnement virtuel, le chargeur exécute plus de 10 commandes PowerShell, telles que : 

  • Get-CimInstance -ClassName Win32_DiskDrive | Select-Object Model  
  • Get-CimInstance -ClassName Win32_PhysicalMemory | Select-Object Manufacturer,Speed  
  • Get-CimInstance -ClassName Win32_BIOS | Select-Object Manufacturer  
  • Get-CimInstance -ClassName Win32_BaseBoard | Select-Object Manufacturer,Product  
  • Get-CimInstance -ClassName Win32_DiskDrive | Select-Object PNPDeviceID 
  • (Get-Process -ErrorAction SilentlyContinue).Count 

Les résultats sont comparés à différentes chaînes de caractères, par exemple :

  • Indicateurs de virtualisation : QEMU, SeaBIOS, Bochs, VBox, VMware, VirtualBox, KVM, Xen, Parallels, VirtIO, VMBus, Red Hat, EDK II
  • Nom d'utilisateur sandbox : sandbox, malware, virus, sample, vmuser, wdagutilityaccount, defaultuser0
  • MAC associés aux environnements virtuels

Les chaînes de caractères sont déchiffrées à l'aide des opérations XOR et du décodage base64 ; il existe des tableaux de tuples, chacun contenant les chaînes chiffrées et une clé utilisée pour le déchiffrement XOR. 

Données chiffrées avec des clés XOR
Données chiffrées avec des clés XOR 

Plusieurs fonctions gèrent le déchiffrement des chaînes de caractères, dont une qui déchiffre la configuration utilisée dans la communication C2. Configuration partielle : 

C2 server: https://silent-harvester.cc
BUILD_ID: 0ddbfec60307
C2 Path: /api/status, /api/update

Le chargeur obtient et envoie une requête initiale au point de terminaison https://C2-server/api/report avec des données cryptées concernant le système compromis : 

  • Adresse IP publique obtenue via une requête à api.ipify.org. 
  • Informations système 
  • Résultat anti-VM 
  • Capture d'écran encodée en Base-64 
  • Horodatage 

Ensuite, il effectue deux requêtes HTTP GET : 

  • https://C2-server/api/status?v={BUILD_ID}, pour obtenir la graine utilisée pour la dérivation de la clé AES. 
  • https://C2-server/api/update?v={BUILD_ID}, pour obtenir la charge utile chiffrée avec le nonce AES et l'étiquette d'authentification. 

L'étape suivante consiste à déchiffrer les données à l'aide d'AES-256-CBC, les données AES étant renvoyées par le C2 et chargées à l'aide d'un chargeur à auto-injection utilisant les API suivantes : 

  • VirtualAlloc 
  • VirtualProtect 
  • LoadLibraryA 
  • GetProcAddress 
  • RtlAddFunctionTable
  • CreateThread 
  • SearchPathA 

Ces API Win32 sont exécutées via le module Bun bun:ffi, ce qui permet à JavaScript d'appeler des bibliothèques natives. 

Au terme de ce processus, NWHStealer a été déployé dans les cas analysés. 

Indicateurs de compromission (IOC) 

Domaines 

whale-ether[.]proServeur C2 de NWH Stealer 

cosmic-nebula[.]ccServeur C2 de NWH Stealer 

silent-harvester[.]ccServeur Bun Loader C2 

silent-orbit[.]ccServeur Bun Loader C2 

support-onion[.]clubServeur Bun Loader C2 

Hacher 

d3a896f450561b2546b418b469a8e10949c7320212eb1c72b48e2b1e37c34ba5 

96fe4ddfe256dc9d2c6faea7c18e2583cd9d9c0099a4ad2cf082f569ee8379f4 

3710fb27d2032ef1eb1252ebf5c4dd516d2b2c0a83fb82c664c89e504b990fa9 

33d07aa24b217f27df6a483295c817da198e12511a6989bcc6b917feaf8e491d 

5427b4cefb329ed0e9585b3ce58a2788baf87e3b0c7221373f9bbd5f32c85b62 

308da9f49ffa1d1744e428b567792ab22712159974e9da8d8e0414ecd81de93e 

021838f30a43026084978bce187c165c6b640d8d474ec009d48078d21ec62025 

c8e96b55f13435c4b43b7209d2403f1a0e0f9deb05edc50e0f777430be693b07 

0614c4cc6375ab6bdcdd2dfa913a67d32c3e8be9b95a4a2aa09bb131b98191c8 

0020999b2e3e4d1b2cfb69e4df9440d3ce05d508573889fdc12b724ce75a0cd8 

0fa42df08cc467ec52b2d388b5575114a8ec067d13f6b1a653ec33fe879f88ca 

15f79980650393d182f81cd6e389210568aa1f5f875e515efe6cb9485d64b7fb 

20454ba58d509300fd694ae6159db4efa1b7ff965f98c29e7d087e20f96578c1 


Prix ​​Choix des Rédacteurs CNET 2026

Selon CNET. Lire leur article →


À propos de l'auteur

Gabriele est ingénieur de recherche en logiciels malveillants et passionné par la lutte contre les logiciels malveillants. Lorsqu'il n'est pas occupé à cela, il aime profiter de la nature, de l'art et des animaux.