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.
Plus sûr. Plus propre. Navigation sans publicité.
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.zipFiveM Mod.zipVampireCrawlers_Trainer_v1.0.zipMagicalPrincess_Trainer_v1.0.zipTerraTechLegion_Trainer_v1.0.zip
- D'autres logiciels tels que :
TradingView-Activation-Script-0.9.zipAutoTune 2026.zipMetatune by Slate Digital 2026.zipGoGoTv_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 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.


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.

.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.

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 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
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.

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 :
VirtualAllocVirtualProtectLoadLibraryAGetProcAddressRtlAddFunctionTableCreateThreadSearchPathA
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
« L’une des meilleures suites de cybersécurité au monde. »
Selon CNET. Lire leur article →





