Angreifer nutzen die JavaScript-Laufzeitumgebung Bun, um den NWHStealer zu verbreiten

| 6. Mai 2026
Angreifer nutzen die JavaScript-Laufzeitumgebung Bun, um den NWHStealer zu verbreiten

In unsererfrüheren Untersuchung haben wir einen Windows analysiert, den wir alsNWHStealer bezeichnen. Die Angreifer hinter diesem Stealer finden ständig neue Methoden, um ihn zu verbreiten. Bei unseren Ermittlungen ist uns aufgefallen, dass die Angreifer eine JavaScript-Laufzeitumgebung namens „Bun“ nutzen, um die Verbreitung zu unterstützen.

Bun ist ein seriöses, schnelles All-in-One-Toolkit für JavaScript und TypeScript, das als moderner, leistungsstarker Ersatz für Node.js konzipiert wurde. Es wurde von Grund auf neu entwickelt, um die moderne Webentwicklung zu vereinfachen, indem mehrere unverzichtbare Tools in einer einzigen ausführbaren Datei integriert wurden. 

Da es noch relativ neu ist, ist es auch für Angreifer attraktiv. Bun ist bislang noch nicht häufig in Malware-Kampagnen aufgetaucht und ermöglicht es ihnen, Schadcode in größere ausführbare Dateien einzubetten, die möglicherweise weniger leicht zu erkennen sind. 

Was ist NWHStealer und was kann es? 

NWHStealer ist einauf Rust basierender Stealer, der über verschiedene Köder und Verbreitungsmethoden verbreitet wird. Dazu gehören Node.js-Skripte, MSI-Installationsprogramme und seit kurzem auch JavaScript-Loader, die mit der Bun-Laufzeitumgebung erstellt wurden.  

Er wird häufig auf seriösen Plattformen wie GitHub, GitLab, MediaFire, Itch.io und SourceForge gehostet, wodurch er sich besser unter normale Software mischen kann und die Wahrscheinlichkeit steigt, dass Nutzer ihn herunterladen. Angreifer erstellen weiterhin neue Profile und Köder, um den Stealer zu verbreiten. 

Sobald NWHStealer auf Ihrem PC installiert ist, kann es: 

  • Systeminformationen erfassen, darunter Betriebssystem, Hardware, Sicherheitssoftware, Benutzerdaten und angeschlossene Geräte. 
  • Daten aus Browsern, Erweiterungen und Krypto-Wallets stehlen. 
  • Daten aus verschiedenen Anwendungen stehlen, darunter FTP-Anwendungen wie FileZilla und CoreFTP sowie Messaging-Apps wie Steam und Discord. 
  • Schädlichen Code in Browserprozesse einschleusen und zusätzliche Payloads ausführen (z. B. XMRig).
  • Versuch, die Benutzerkontensteuerung (UAC) zu umgehen. 
  • Sorgen Sie durch geplante Aufgaben für Datenbeständigkeit. 
  • Rufe neue Command-and-Control-Adressen (C2) von Telegram ab. 

Wie man sicher bleibt 

Angreifer passen ihre Techniken ständig an, und der Einsatz neuerer Tools wie Bun zeigt, wie sie versuchen, der Entdeckung einen Schritt voraus zu sein. 

NWHStealer gibt besonders Anlass zur Sorge, da er weit verbreitet ist und auf bestimmte Daten abzielt. Gestohlene Browserdaten, gespeicherte Passwörter und Informationen zu Kryptowährungs-Wallets können schnell zu der Übernahme von Konten, finanziellen Verlusten und weiteren Sicherheitsverletzungen führen. 

Hier sind ein paar einfache Tipps, wie Sie auf Nummer sicher gehen können: 

  • Laden Sie Software nur von offiziellen Websites herunter. 
  • Seien Sie vorsichtig bei Downloads von Plattformen wie GitHub, SourceForge oder Filesharing-Plattformen, es sei denn, Sie vertrauen der Quelle. 
  • Angreifer erstellen weiterhin neue Profile, um diesen Stealer plattformübergreifend zu verbreiten. Überprüfen Sie beim Herunterladen von Dateien von Datei-Hosting-Anbietern oder Blogs das Profil des Entwicklers bzw. Herausgebers, dessen Reputation und wie neu es ist. 
  • Überprüfe die Struktur der Archive, um sicherzustellen, dass der Inhalt, die Bilder und die Textdateien mit dem übereinstimmen, was du heruntergeladen hast. Überprüfe auch den Namen des Archivs; diese weisen in der Regel erkennbare Muster auf. 
  • Überprüfen Sie den Herausgeber und die Signatur der Datei, bevor Sie sie ausführen. 


Profi-Tipp: Installieren Sie Malwarebytes Browser Guard , um schädliche Websites zu blockieren, bevor sie geladen werden. 


Technische Analyse

Die neue Verteilungsmethode: Bun JavaScript Runtime 

Laut der offiziellen Website ist Bun ein All-in-One-Toolkit für JavaScript, TypeScript und JSX. Es wurde von Grund auf in Zig entwickelt und basiert auf Apples JavaScriptCore-Engine, wobei der Schwerpunkt auf einem schnellen Start und geringem Speicherbedarf liegt.

Bun besteht aus vier Hauptkomponenten: 

  • JavaScript-Laufzeitumgebung:Eine JavaScript-Laufzeitumgebung, die als direkter Ersatz für Node.js konzipiert ist. 
  • Paketmanager: eineschnelle Alternative zu npm. 
  • Test Runner: Einintegrierter, mit Jest kompatibler Runner, der Tests wesentlich schneller ausführt als herkömmliche Runner. 
  • Bundler: ErsetztTools wie Webpack, Vite oder esbuild zum Bündeln von Code. 

Bei unseren jüngsten Untersuchungen haben wir festgestellt, dass NWHStealer über ein „Bun JavaScript Runtime“-Bundle verbreitet wird.  

Wie wir in unseren früheren Untersuchungen festgestellt haben, werden Köder in Form von Spielesoftware und anderer Software eingesetzt, um die Infektionskette in Gang zu setzen. Zu den in diesen jüngsten Kampagnen entdeckten ZIP-Dateinamen gehören unter anderem: 

  • Software und Cheats für Spiele, wie zum Beispiel: 
    • MOUSE_PI_Trainer_v1.0.zip
    • FiveM Mod.zip
    • VampireCrawlers_Trainer_v1.0.zip
    • MagicalPrincess_Trainer_v1.0.zip 
    • TerraTechLegion_Trainer_v1.0.zip 
  • Andere Software wie zum Beispiel: 
    • TradingView-Activation-Script-0.9.zip 
    • AutoTune 2026.zip
    • Metatune by Slate Digital 2026.zip
    • GoGoTv_Plus.zipAutodesk.zip

In dem in diesem Artikel untersuchten Fall beginnt die Infektionskette mit einem Archiv, das Installer.exe, das JavaScript-Code einbettet, der mit der Bun-Laufzeitumgebung gebündelt ist. 

Der Ordner „DW“ enthält einen weiteren Loader namens dw.exe. Dieser Selbstinjektions-Loader ähnelt dem zuvor untersuchten, verfügt jedoch über eine andere Entschlüsselungsroutine. Dieser Loader ist nicht in allen untersuchten ZIP-Dateien enthalten. 

Die schädliche ZIP-Datei enthält zwei Loader
Die schädliche ZIP-Datei enthält zwei Loader 

Die Readme.txt Die Datei fordert den Benutzer auf, das Programm manuell zu starten dw.exe wenn der Haupt- .exe Die Datei lässt sich nicht ordnungsgemäß ausführen. Dadurch stehen dem Angreifer zwei Möglichkeiten zur Verbreitung des Stealers zur Verfügung, falls der C2-Server des Haupt-Bun-Loaders offline ist. Der Loader in dw.exe funktioniert unabhängig vom Bun-JavaScript-Loader. 

Die Readme-Datei im ZIP-Archiv
Die Readme-Datei im ZIP-Archiv
Die gefälschte Konfiguration der Build-Tools, die angezeigt wird, wenn dw.exe gestartet wird
Die angezeigte gefälschte Konfiguration der Build-Tools, wenn dw.exe wird gestartet

In diesem Artikel gehen wir nicht darauf ein dw.exe, da es sich um eine Variante der bisherigen Loader handelt. Stattdessen konzentrieren wir uns auf den JavaScript-Loader, der mit der Bun-JavaScript-Laufzeitumgebung ausgeführt wird. 

Analyse des JavaScript-Loaders  

Der von der Bun-JavaScript-Laufzeitumgebung ausgeführte JavaScript-Code befindet sich innerhalb der .bun Abschnitt und ist verschleiert.  

Der Abschnitt „.bun“ mit dem verschleierten JavaScript-Code
Die .bun Abschnitt mit dem verschleierten JavaScript-Code 

Der Schadcode ist in zwei Teilen des Codes implementiert: 

  • sysreq.js: führt die Anti-Virtualisierungsprüfungen anhand eines Punktesystems durch. 
  • memload.js: kommuniziert mit dem C2-Server, führt die Entschlüsselung durch und lädt die nächste Stufe. 
Einstiegspunkt des JavaScript-Loaders

Der Loader führt mehrere PowerShell-CIM-Befehle (Common Information Model) und WMI-Befehle (Windows Instrumentation) aus, um virtuelle Umgebungen zu erkennen. Es gibt verschiedene Kontrollmechanismen in Bezug auf die Anzahl der CPUs, den Festplattenspeicher, die Bildschirmauflösung, USB-Geräte, Hardwarehersteller und -produkte, die Anzahl der installierten Programme, das Vorhandensein bestimmter Ordner wie Browser-Ordner, die Anzahl der laufenden Prozesse und den Benutzernamen. Es wird ein Bewertungssystem verwendet, und basierend auf dieser Bewertung entscheidet der Loader, ob die Infektion fortgesetzt oder abgebrochen wird.

Um eine virtuelle Umgebung zu erkennen, führt der Loader mehr als 10 PowerShell-Befehle aus, darunter: 

  • 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 

Die Ergebnisse werden mit verschiedenen Zeichenfolgen verglichen, zum Beispiel:

  • Virtualisierungs-Indikatoren: QEMU, SEABIOS, Bochs, VBox, VMware, VirtualBox, KVM, Xen, Parallels, VirtIO, VMBus, Red Hat, EDK II
  • Benutzername Sandbox: sandbox, Malware, Virus, sample, vmuser, wdagutilityaccount, defaultuser0
  • MAC mit virtuellen Umgebungen

Die Zeichenfolgen werden mittels XOR- und Base64-Dekodierung entschlüsselt; es gibt Arrays aus Tupeln, von denen jedes die verschlüsselten Zeichenfolgen sowie einen Schlüssel enthält, der für die XOR-Entschlüsselung verwendet wird. 

Mit XOR-Schlüsseln verschlüsselte Daten
Mit XOR-Schlüsseln verschlüsselte Daten 

Mehrere Funktionen dienen der Entschlüsselung von Zeichenfolgen, darunter eine, die die in der C2-Kommunikation verwendete Konfiguration entschlüsselt. Auszug aus der Konfiguration: 

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

Der Loader ruft eine erste Anfrage ab und sendet sie an den Endpunkt https://C2-server/api/report mit verschlüsselten Daten über das kompromittierte System: 

  • Öffentliche IP-Adresse, die über eine Anfrage an api.ipify.org abgerufen wurde. 
  • Systeminformationen 
  • Anti-VM-Ergebnis 
  • Base-64-kodierter Screenshot 
  • Zeitstempel 

Anschließend sendet es zwei GET-HTTP-Anfragen: 

  • https://C2-server/api/status?v={BUILD_ID}, um den Seed zu erhalten, der für die Ableitung des AES-Schlüssels verwendet wird. 
  • https://C2-server/api/update?v={BUILD_ID}, um die verschlüsselte Nutzlast mit AES-Nonce und Authentifizierungstag zu erhalten. 

Die nächste Stufe wird mit AES-256-CBC entschlüsselt, wobei die vom C2 zurückgegebenen AES-Daten mit einem Self-Injection-Loader unter Verwendung der folgenden APIs geladen werden: 

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

Diese Win32-APIs werden über das Bun-Modul ausgeführt bun:ffi, wodurch JavaScript native Bibliotheken aufrufen kann. 

Am Ende dieses Prozesses wurde NWHStealer in den untersuchten Fällen eingesetzt. 

Indikatoren für Kompromisse (IOCs) 

Domänen 

whale-ether[.]pro: NWH Stealer C2-Server 

cosmic-nebula[.]cc: NWH Stealer C2-Server 

silent-harvester[.]cc: Bun Loader C2-Server 

silent-orbit[.]cc: Bun Loader C2-Server 

support-onion[.]club: Bun Loader C2-Server 

Hash 

d3a896f450561b2546b418b469a8e10949c7320212eb1c72b48e2b1e37c34ba5 

96fe4ddfe256dc9d2c6faea7c18e2583cd9d9c0099a4ad2cf082f569ee8379f4 

3710fb27d2032ef1eb1252ebf5c4dd516d2b2c0a83fb82c664c89e504b990fa9 

33d07aa24b217f27df6a483295c817da198e12511a6989bcc6b917feaf8e491d 

5427b4cefb329ed0e9585b3ce58a2788baf87e3b0c7221373f9bbd5f32c85b62 

308da9f49ffa1d1744e428b567792ab22712159974e9da8d8e0414ecd81de93e 

021838f30a43026084978bce187c165c6b640d8d474ec009d48078d21ec62025 

c8e96b55f13435c4b43b7209d2403f1a0e0f9deb05edc50e0f777430be693b07 

0614c4cc6375ab6bdcdd2dfa913a67d32c3e8be9b95a4a2aa09bb131b98191c8 

0020999b2e3e4d1b2cfb69e4df9440d3ce05d508573889fdc12b724ce75a0cd8 

0fa42df08cc467ec52b2d388b5575114a8ec067d13f6b1a653ec33fe879f88ca 

15f79980650393d182f81cd6e389210568aa1f5f875e515efe6cb9485d64b7fb 

20454ba58d509300fd694ae6159db4efa1b7ff965f98c29e7d087e20f96578c1 


CNET-Auszeichnung „Editors' Choice“ 2026

Laut CNET.Lesen Sie den Testbericht


Über den Autor

Gabriele ist Malware-Forschungsingenieur und liebt es, Malware zu bekämpfen. Wenn er gerade nicht damit beschäftigt ist, genießt er die Natur, Kunst und Tiere.