Vor ein paar Tagen haben wir darüber berichtet, dass GlassWorm Hunderte von GitHub-Repositorys sowie ein beliebtes React-Paket für Telefonnummern auf npm kompromittiert hat. Wir haben die gesamte Payload weiter untersucht und ein mehrstufiges Framework entdeckt, das eine persistente RAT installiert und tief in Stufe 3 eine Chrome-Erweiterung zwangsweise installiert, die sich als Google Docs Offline ausgibt. Sie protokolliert Tastenanschläge, speichert Cookies und Sitzungstoken, macht Screenshots und empfängt Befehle von einem C2-Server, der in einem Solana-Blockchain-Memo versteckt ist.

Phase 1: Die Erstinfektion
Entführte Projekte
GlassWorm verschafft sich zunächst Zugang über schädliche Pakete, die über npm, PyPI, GitHub und den OpenVSX-Marktplatz veröffentlicht werden. Der Angreifer verfolgt dabei zwei Strategien gleichzeitig: (1) Er erstellt von Grund auf neue schädliche Pakete und (2) erbricht sich Zugang zu den Konten von Projektbetreuern, um schädliche Versionen legitimer Projekte zu veröffentlichen.
Zwei Ladevarianten
GlassWorm ist wohl am bekanntesten für seine Unsichtbarer Unicode-Loader Wir haben dies bereits in früheren Beiträgen behandelt, doch es ist nicht der einzige verwendete Übertragungsmechanismus. Eine zweite, direktere Variante nutzt eine herkömmliche verschleierte preinstall Skript, wie es in der jüngsten Sicherheitslücke in react-native-country-select auf npm. Beide erzielen letztlich dasselbe Ergebnis und nutzen denselben blockchainbasierten C2-Beacon, verfolgen dabei jedoch sehr unterschiedliche Ansätze.
Unabhängig davon, welcher Loader den Zielrechner erreicht, ist die Ausführungslogik der ersten Stufe identisch. Nach einer Startverzögerung von 10 Sekunden führt der Loader zwei Prüfungen durch, bevor er fortfährt.
Geofencing. Der Loader überprüft fünf Locale-Signale (os.userInfo().username, process.env.LANG, process.env.LANGUAGE, process.env.LC_ALLund die internationale Standard-Locale) im Vergleich zu /ru_RU|ru-RU|Russisch|russisch/iund vergleicht die Systemzeitzone und den UTC-Versatz mit einer fest codierten Liste russischer Zeitzonen, die von „Europe/Moscow“ bis „Asia/Anadyr“ reicht. Wird eine russische Ländereinstellung erkannt, wird die Ausführung abgebrochen.
Ratenbegrenzung. Der Loader liest ~/init.json (oder %USERPROFILE%\init.json (unter Windows) und überprüft einen gespeicherten Zeitstempel. Wurde die Datei vor weniger als zwei Stunden geschrieben, wird die Ausführung abgebrochen. Andernfalls wird der Zeitstempel aktualisiert.
Solana-Blockchain C2
Schließlich fragt der Loader die Solana-Blockchain nach seiner C2-Adresse ab. Anstatt eine URL fest zu programmieren, die gesperrt werden könnte, speichert der Angreifer sie in der Memo Feld einer Solana-Transaktion. Der Loader ruft getSignaturesForAddress gegen eine fest programmierte Wallet, wobei nacheinander neun öffentliche RPC-Endpunkte abgefragt werden, bis einer antwortet:
https://api.mainnet-beta.solana.comhttps://solana-mainnet.gateway.tatum.iohttps://go.getblock.us/86aac42ad4484f3c813079afc201451chttps://solana-rpc.publicnode.comhttps://api.blockeden.xyz/solana/KeCh6p22EX5AeRHxMSmchttps://solana.drpc.orghttps://solana.leorpc.com/?api_key=FREEhttps://solana.api.onfinality.io/publichttps://solana.api.pocket.network/
Bei den beiden Loader-Varianten wurden zwei Wallet-Adressen festgestellt:
BjVeAjPrSKFiingBn4vZvghsGj9KCE8AJVtbc9S8o8SC(Unicode-Lader)6YGcuyFRJKZtcaYCCFba9fScNUvPkGXodXE1mJiSzqDJ(Verschleierter Vorinstallations-Loader)
Der Loader führt in einer 10-Sekunden-Schleife Abfragen durch, bis er eine Transaktion mit einem nicht-leeren Memo-Feld findet. Die Memo-Funktion von Solana wurde entwickelt, um Transaktionen mit Anmerkungen zu versehen, dient hier jedoch als verdeckter Dead-Drop. Die Memos sind dauerhaft, öffentlich in der Blockchain sichtbar und werden auf einer Infrastruktur gespeichert, die von keiner einzelnen Partei abgeschaltet werden kann. Der Betreiber kann die URL für Stufe 2 jederzeit aktualisieren, indem er eine neue Solana-Transaktion mit einem neuen Memo sendet. Es muss kein Paket geändert, keine Infrastruktur neu bereitgestellt werden, und es gibt nichts, was Verteidiger auf der Netzwerkebene blockieren könnten.
Die Notiz auf der Geldbörse 6YGcuyFRJKZtcaYCCFba9fScNUvPkGXodXE1mJiSzqDJ lautet:
{"link":"aHR0cDovLzQ1LjMyLjE1MC4yNTEvM2U0VGc4ViUyRjhhQ21PSktpcEFTQURnJTNEJTNE"}Der Link Der Wert ist eine Base64-kodierte URL. Dekodiert:
http://45.32.150.251/3e4Tg8V%2F8aCmOJKipASADg%3D%3DDer Loader ruft diese URL mit einem os Header auf die aktuelle Plattform eingestellt (Darwin, Linux, oder Win32), wodurch das C2 bei 45.32.150[.]251 um plattformspezifische Payloads bereitzustellen. Der Antworttext enthält die verschlüsselte Stage-2-Payload, die anschließend entschlüsselt und ausgeführt wird. Zum Zeitpunkt der Erstellung dieses Artikels war der C2-Server noch aktiv und lieferte eine Payload für Win32.
Phase 2: Heimliche Datenentwendung
Die Nutzlast der Stufe 2 ist ein umfassendes Framework zum Datendiebstahl, das Funktionen zum Sammeln von Anmeldedaten, zum Abziehen von Kryptowährungs-Wallets, zur Host-Profilierung sowie eine eigene Dropper-Logik für die abschließende und dauerhafte Stufe 3 umfasst. Alle gesammelten Daten werden unter %TEMP%\hJxPxpHP\, komprimiert und per POST-Anfrage an http://217.69.3[.]152/wall.
Diebstahl von Kryptowährungs-Wallets
Die Nutzlast führt eine rekursive Suche durch %APPDATA% und %LOCALAPPDATA% für Profile von Browser-Erweiterungen und Daten von eigenständigen Wallet-Anwendungen. Es zielt auf 71 Wallet-IDs von Browser-Erweiterungen ab und deckt damit praktisch alle gängigen Wallets ab: MetaMask, Phantom, Coinbase, Exodus, Binance, Ronin, Keplr usw. Außerdem sammelt es .txt Dateien aus den Ordnern „Dokumente“ und „Desktop“ des Opfers sowie Bilder, deren Dateinamen mit Schlüsselwörtern übereinstimmen, die mit Seed-Phrasen oder Kryptowährungsbeständen in Verbindung stehen.
Entwickelnde
Phase 2 zielt auf die Anmeldedaten-Speicher ab, die ein Softwareentwickler wahrscheinlich auf seinem Rechner hat. Die Nutzlast lautet ~/.npmrc und process.env.NPM_TOKEN. Jedes gefundene Token wird in Echtzeit gegen https://registry.npmjs.org/-/whoami vor der Exfiltration. Außerdem extrahiert es Token über die Git-Anmeldedaten Befehl und aus dem internen Speicher von VS Code.
Secrets von Cloud Secrets
In Phase 2 werden außerdem Anmeldedateien für AWS, GCP, Azure, Docker, Kubernetes, SSH-Schlüssel und Heroku kopiert .netrc, von DigitalOcean doctlund Terraform.
Host-Profilierung
Schließlich erzeugt es eine system_info.txt mit einem detaillierten Hardwareprofil, Umgebungsvariablen, installierten Anwendungen, laufenden Prozessen, Festplattenaufbau und Betriebssystemdetails.
Vorbereitung auf Stufe 3
Nach der Exfiltration wird Phase 3 durch das Herunterladen von zwei Komponenten vorbereitet:
- 3a) Phishing-Binärdatei für physische Krypto-Wallets (Ledger & Trezor).
- 3b) Ein unsterblicher, auf WebSockets basierender RAT, gespeichert als
%APPDATA%\QtCvyfVWKH\index.js, das mit mehreren Binärdateien ausgeliefert wird:c_x64.node/f_ex86.node— Programme zum Diebstahl von Browser-AnmeldedatenDaten— Umgehung der Chrome-App-gebundenen Verschlüsselungindex_ia32.node/index_x64.node— HVNC-Modulew.node(Windows) /m(macOS) — Installiert eine schädliche Browser-Erweiterung
Die RAT-Nutzlast ist nicht einfach fest mit einer URL programmiert. Stattdessen ruft sie die öffentliche Google-Kalender-Seite unter https://calendar.app.google/2NkrcKKj4T6Dn4uK6 und extrahiert den Titel der Einladung. Dieser Wert wird Base64-dekodiert und als URL-Slug an http://45.32.150[.]251. Nutzung von Google Kalender als Umleitungsschicht für die Übermittlung von Nutzdaten ist ein Trend, den wir seit März 2025 beobachten, und es taucht weiterhin regelmäßig in den Tools dieses Angreifers auf.

Phase 3a: Phishing bei Hardware-Wallets
Auf Rechnern, auf denen %APPDATA%\Ledger Live vorhanden ist, ruft Stufe 3 eine .NET-WPF-Binärdatei von http://45.32.150[.]251/led-win32, legt es bei %TEMP%\SKuyzYcDD.exeund fügt hinzu HKCU\Software\Microsoft\Windows\CurrentVersion\Run\UpdateLedger zur Persistenz. Der interne Name der Datei lautet „Assaac.exe“ und wird einer Firma zugeschrieben, die sich „LLC LogicSub“ nennt (SHA-256: 06fab21dc276e3ab9b5d0a1532398979fd377b080c86d74f2c53a04603a43b1d). Die Binärdatei ist kein RAT. Ihre einzige Funktion besteht darin, Krypto-Wallets zu stehlen, indem sie sich als Ledger Live und Trezor ausgibt.

Beim Start fragt es ab https://ipapi.co/xml und gleicht das zurückgegebene Land mit neun Ausschlusskriterien für die GUS-Region ab: Russland, Kasachstan, Kirgisistan, Aserbaidschan, Tadschikistan, Usbekistan, Weißrussland, Moldawien und Armenien. Befindet sich das Opfer in einem dieser Länder, wird die Ausführung gestoppt. Dies entspricht der Geofencing-Logik aus Stufe 1.
Die Binärdatei registriert ein WMI-Ereignisabonnement, um den Anschluss von USB-Geräten zu erkennen:
SELECT * FROM __InstanceCreationEvent WITHIN 2 WHERE TargetInstance ISA 'Win32_PnPEntity'Wenn ein Ledger- oder Trezor-Gerät angeschlossen wird, öffnet sich das entsprechende Phishing-Fenster. Die Benutzeroberfläche des Ledger zeigt einen vorgetäuschten Konfigurationsfehler an und präsentiert 24 nummerierte Eingabefelder für die Wiederherstellungsphrase. Die Benutzeroberfläche des Trezor zeigt die vorgetäuschte Meldung „Firmware-Validierung fehlgeschlagen, Notneustart wird initiiert“ mit demselben Layout für die Eingabe der 24 Wörter an. Beide Fenster enthalten eine Schaltfläche „RESTORE WALLET“.
Eine im Hintergrund laufende Schleife, die in Intervallen von einer Sekunde ausgeführt wird, ruft Process.GetProcessesByName um alle laufenden Ledger Live-Prozesse zu beenden und das Phishing-Fenster erneut anzuzeigen, falls das Opfer es schließt. Das Fenster_Schließen Der Handler fängt Schließversuche ab und zeigt einen Dialog an, in dem darauf hingewiesen wird, dass das Schließen zum Verlust von Krypto-Vermögenswerten führen kann.
Wenn eine gültige Phrase eingegeben wird, werden die 24 Wörter über System.Net.Http.HttpClient zu 45.150.34[.]158.
Phase 3b: WebSocket-basierte RAT
Die RAT wird gespeichert als %APPDATA%\QtCvyfVWKH\index.js und verfügt über zwei Persistenzmechanismen, um Neustarts zu überstehen. Eine geplante Aufgabe namens App aktualisieren wird beim Systemstart mit den höchsten Berechtigungen ausgeführt, und ein HKCU\Software\Microsoft\Windows\CurrentVersion\Run key führt einen PowerShell-Launcher unter %LOCALAPPDATA%\QtCvyfVWKH\AghzgY.ps1.
Unsterblichkeit ist fest integriert. Das Skript greift ein SIGINT, SIGTERM, SIGQUIT, SIGHUP, SIGUSR2, nicht abgefangene Ausnahme, und unbehandelte Ablehnung. Bei jedem dieser Signale plant das Programm den erneuten Download und Neustart der Nutzdaten. Wird der Prozess beendet, startet er später einfach von selbst neu.
DHT-basiertes C2
Der RAT speichert seine primäre C2-Adresse nicht fest. Er führt eine DHT-Abfrage für den festgelegten öffentlichen Schlüssel durch 3c90fa0e84dd76c94b1468f38ed640945d72bc12, Bootstrapping über dht.libtorrent.org, router.bittorrent.com, und router.utorrent.com.
Der Betreiber speichert die Live-Konfiguration im DHT-Wert unter diesem Schlüssel. Wenn dht.get sofort fehlschlägt, versucht das Skript es nach fünf Minuten erneut. Wenn kein Wert zurückgegeben wird, greift das Skript auf den Solana-Memo-Dead-Drop zurück: Es fragt ab getSignaturesForAddress für die Brieftasche BjVeAjPrSKFiingBn4vZvghsGj9KCE8AJVtbc9S8o8SC, entschlüsselt die IP-Adresse aus dem Link-Feld des Memos und führt die Abfrage erneut durch. Das Solana-Memo kann jederzeit mit einer neuen IP-Adresse aktualisiert werden, um die DHT-Erreichbarkeit neu zu initialisieren, ohne den Loader zu verändern.
Die wiederhergestellte Konfiguration der Infrastruktur des Angreifers:
217.69.0[.]159:10000- DHT-Bootstrap-Knoten45.32.150[.]251- WebSocket-basierte C2217.69.3[.]152:80- Exfiltrationsserver
Die C2-Befehle
Sobald die DHT-Konfiguration geklärt ist, öffnet das Skript eine Socket.IO-Verbindung zu 45.32.150[.]251:4787 und verarbeitet fünf Kategorien von C2-Befehlen:
- start_hvnc / stop_hvnc: Stellt das native HVNC-Modul für den verdeckten Fernzugriff bereit.
- start_socks / Sockenhalter: Ruft ein WebRTC-Modul von
http://45.32.150[.]251/module/wrtc, installiert es unter%APPDATA%\_node_x64\webrtc\wrtc-win32-x64\index.jsund lässt es als SOCKS-Proxy laufen, wodurch der Computer des Opfers zu einem Proxy-Knoten wird, der dem Angreifer als Infrastruktur dient, um weitere Angriffe von der IP-Adresse des Opfers aus durchzuführen. - reget_log: Führt die gesamte Pipeline zum Diebstahl und zur Exfiltration von Browser-Anmeldedaten aus.
- get_system_info: Gibt Betriebssystem, CPU, Arbeitsspeicher, Hostname, Betriebszeit, Benutzername und Home-Verzeichnis zurück.
- Befehl: Führt beliebiges, vom Angreifer bereitgestelltes JavaScript über eval() aus, wodurch der Angreifer vollständige Fernausführung von Code erhält.
Diebstahl von Browser-Anmeldedaten
Das Skript ist für Chrome, Edge, Brave, Opera, Opera GX, Vivaldi und Firefox ausgelegt. Es listet Profilverzeichnisse auf, überprüft Cookies, um aktive Profile zu identifizieren, und ruft dann c_x64.node um Anmeldedaten direkt aus den SQLite-Datenbanken des Browsers zu extrahieren (Anmeldedaten, Cookies, Webdaten). Chrome ab Version 127 verschlüsselt seinen Hauptschlüssel mithilfe der App-Bound-Verschlüsselung, wodurch normalerweise verhindert wird, dass ein Prozess außerhalb von Chrome diesen lesen kann. Die Binärdatei versucht, diese Sicherheitsfunktion zu umgehen. Die Ergebnisse werden als JSON-Dateien unter %TEMP%\EUXFUxzOVe\, darunter Cookies, gespeicherte Anmeldedaten, automatisch ausgefüllte Felder, Browserverlauf, Lesezeichen und Zahlungskarten. Das Verzeichnis wird komprimiert, verschlüsselt und per POST an 217.69.3[.]152:80/log.
Schädliche Chrome-Erweiterung RAT
Das Skript installiert außerdem zwangsweise eine Erweiterung, die sich als Google Docs offline (Version 1.95.1). Es ermittelt seine C2-Adresse aus einem separaten Solana-Memo, indem es getSignaturesForAddress für die Brieftasche DSRUBTziADDHSik7WQvSMjvwCHFsbsThrbbjWMoJPUiW. Das Memo aus dieser Wallet enthält die Felder „c2server“ und „checkIp“, die auf den API-Server der Erweiterung und den Geo-IP-Helper verweisen. Nach dem Parsen des Memos registriert sich die Erweiterung als Agent über POST /api/register, speichert die zurückgegebene agent_id in chrome.storage.local und beginnt mit der Abfrage GET /api/commands?agent_id=<id> in zufälligen Intervallen von 5 bis 30 Sekunden.

Der Bediener kann folgende Befehle eingeben:
- domsnapshot: gibt den vollständigen Inhalt weiter
document.documentElement.outerHTMLder aktiven Registerkarte - getcookies: Sammelt Cookies, optional nach Domain gefiltert
- Lokaler Speicherauszug: alles ausgeben
localStorageSchlüssel-Wert-Paare - take_screenshot: Erstellt einen Base64-kodierten Screenshot der Registerkarte
- Zwischenablage_abrufen: liest die Zwischenablage über
navigator.clipboard.readText() - Verlauf: Extrahiert bis zu 5.000 Einträge aus dem Browserverlauf (Standardzeitraum: 7 Tage)
- Lesezeichen: Exportiert den gesamten Lesezeichenbaum
- Aufzählung: Ermittelt Informationen zum Browser, zur Hardware und zu WebGL/GPU sowie überprüft installierte Erweiterungen über
chrome-extension://<id>/manifest.json - Keylogger starten / Keylogger beenden / Keylogger-Daten abrufen: Erfasst die Ereignisse „keydown“, „keyup“, „keypress“, „input“, „change“, „focus“ und „blur“ auf allen Seiten; erfasst eingegebene Werte, Formular-Metadaten und den Kontext des Zielelements; leert den Puffer
POST /api/exfilalle fünf Sekunden
Alle erfassten Daten werden an POST /api/exfil als { agent_id, Aktion, Nutzdaten }.
Die Erweiterung führt zudem eine gezielte Sitzungsüberwachung durch. Sie ruft die Regeln für überwachte Websites aus /api/get-url-for-watch und wird mit Bybit (.bybit.com) als voreingestelltem Ziel ausgeliefert, wobei es auf die Cookies „secure-token“ und „deviceid“ achtet. Bei Erkennung löst es einen „auth-detected“-Webhook aus, um /api/webhook/auth-detected die das Cookie-Material und die Seitenmetadaten enthalten. Der C2-Server kann zudem Weiterleitungsregeln bereitstellen, die offene Tabs auf vom Angreifer kontrollierte URLs umleiten.
Erkennung und Schutz
Unsichtbare Bedrohungen erfordern aktive Abwehrmaßnahmen. Man kann sich nicht darauf verlassen, dass visuelle Codeüberprüfungen oder Standard-Linting-Verfahren das aufspüren, was man nicht sehen kann. Bei Aikido haben wir die Erkennung von Glassworm und anderen Bedrohungsakteuren direkt in unsere Malware-Scan-Pipeline integriert.
Wenn Sie bereits Aikido nutzen, würden diese Pakete in Ihrem Feed als kritischer Befund mit 100/100 markiert.

Noch nicht auf Aikido? Erstellen Sie ein kostenloses Konto und verknüpfen Sie Ihre Repositories. Der kostenlose Plan beinhaltet unsere Malware-Erkennungsabdeckung (keine Kreditkarte erforderlich).
Schließlich kann ein Tool, das Malware in der Lieferkette in Echtzeit stoppt, sobald sie auftritt, eine schwerwiegende Infektion verhindern. Das ist die Idee hinter Aikido Chain, einem kostenlosen Open-Source-Tool, das npm, npx, yarn, pnpm und pnpx umschließt und sowohl KI als auch menschliche Malware-Forscher einsetzt, um die neuesten Risiken in der Lieferkette zu erkennen und zu blockieren, bevor sie in Ihre Umgebung gelangen.
Indikatoren für Kompromittierung
Netzwerk – IP-Adressen
45.32.150[.]251— Übermittlung der Nutzlast in Stufe 2, WebSocket-RAT in Stufe 3 (:4787)217.69.3[.]152— Exfiltrationsserver: Stufe 2 (/wall), Stufe 3 (/log)217.69.0[.]159— DHT-Bootstrap-Knoten (:10000)45.150.34[.]158— Entwendung der Seed-Phrase von Ledger/Trezor
Netzwerk – C2-URLs
http://45.32.150[.]251/3e4Tg8V%2F8aCmOJKipASADg%3D%3D— Verschlüsselte Nutzlast der Stufe 2http://45.32.150[.]251/led-win32— Download der Phishing-Datei für Ledger/Trezorhttp://45.32.150[.]251/get_arhive_npm/nt70c2J3PG%2BfPBSFHJKoWQ%3D%3D— Archiv für native Modulehttp://45.32.150[.]251/get_encrypt_file_exe/E/E%2BT9tEjmURMwNnCCY2CA%3D%3D— Nutzlast des HVNChttp://45.32.150[.]251/module/wrtc— SOCKS-Proxy-WebRTC-Modulhttp://45.32.150[.]251:4787— WebSocket-RAT-Kanal (Socket.IO)http://217.69.3[.]152/wall— Endpunkt der Datenexfiltration in Phase 2http://217.69.3[.]152:80/log— Endpunkt für die Exfiltration von Browser-Anmeldedaten in Stufe 3https://calendar.app[.]google/2NkrcKKj4T6Dn4uK6— Stufe 3: URL-Umleitung über eine Google-Kalender-Einladung
Solana-Wallets
BjVeAjPrSKFiingBn4vZvghsGj9KCE8AJVtbc9S8o8SC— Unicode-Loader der Stufe 1, C2-Dead-Drop; DHT-Fallback der Stufe 36YGcuyFRJKZtcaYCCFba9fScNUvPkGXodXE1mJiSzqDJ— Verschleierter Preinstall-Loader der Stufe 1 mit C2-Dead-DropDSRUBTziADDHSik7WQvSMjvwCHFsbsThrbbjWMoJPUiW— Browser-Erweiterung C2 Dead-Drop
Datei-Hashes (SHA-256)
06fab21dc276e3ab9b5d0a1532398979fd377b080c86d74f2c53a04603a43b1d— Assaac.exe / SKuyzYcDD.exe (Phishing-Programm für Ledger/Trezor)f171c383e21243ac85b5ee69821d16f10e8d718089a5c090c41efeaa42e81fca— c_x64.node (Browser-Anmeldedaten-Stealer, Windows x64)9df62cefd87784c7ee1ca8b4e6fc49737a90492fa6c23901e3b7981b18c6c988— f_ex86.node (Browser-Anmeldedaten-Stealer, Windows x86)43253a888417dfab034f781527e08fb58e929096cb4ef69456c3e13550cb4e9e— Daten (Umgehung der Chrome-App-gebundenen Verschlüsselung)4a60afa085fe5a847aef164578537bc33b9b58954143381e0c65c6354e4501e3— index_ia32.node (HVNC-Modul, Windows x86)de81eacd045a88598f16680ce01bf99837b1d8170c7fc38a18747ef10e930776— index_x64.node (HVNC-Modul, Windows x64)fdba5be3da2467e642bd8710f971e6b266b30ac15f5f413982fd719d7e0bffd9— w.node (Chrome-Erweiterung mit Zwangsinstallation, Windows x64)ee3e4dd5c1e073b8805f4107ccc7bc7e6e3c209fe13ea04ff3f2173c8dbe74a6— m (Chrome-Erweiterung „Force-Installer“, universelle Binärdatei für macOS)
Dateinamen
~/init.json/%USERPROFILE%\init.json— Zeitstempel zur Ratenbegrenzung; enthält UUID, Version, Datum%TEMP%\hJxPxpHP\— Verzeichnis für die Berechtigungsvorbereitung der Stufe 2%TEMP%\EUXFUxzOVe\— Verzeichnis für die Zwischenspeicherung von Browser-Anmeldedaten (Stufe 3)%TEMP%\SKuyzYcDD.exe— Abgelegte Phishing-Datei für Ledger/Trezor%APPDATA%\QtCvyfVWKH\index.js— Hauptskript für RAT, Stufe 3%LOCALAPPDATA%\QtCvyfVWKH\AghzgY.ps1— PowerShell-Persistenz-Launcher der Stufe 3%APPDATA%\_node_x86\node\node.exe— Node.js v22.9.0 x86-Laufzeitumgebung wurde im Hintergrund heruntergeladen%APPDATA%\_node_x64\node\node.exe— Node.js v22.9.0 x64-Laufzeitumgebung wurde im Hintergrund heruntergeladen%APPDATA%\_node_x64\webrtc\wrtc-win32-x64\index.js— SOCKS-Proxy-Modul%LOCALAPPDATA%\Google\Chrome\jucku\— Verzeichnis für schädliche Chrome-Erweiterungen (Windows)/Library/Application Support/Google/Chrome/myextension/— Verzeichnis für schädliche Chrome-Erweiterungen (macOS)
Registrierung
HKCU\Software\Microsoft\Windows\CurrentVersion\Run\UpdateApp— Persistenz von RAT in Phase 3HKCU\Software\Microsoft\Windows\CurrentVersion\Run\UpdateLedger→%TEMP%\SKuyzYcDD.exe— Persistenz von Ledger-Phishing-Binärdateien
Geplante Aufgaben
App aktualisieren— LäufeAghzgY.ps1(Phase 3) beim Systemstart mit höchsten Berechtigungen
WMI
SELECT * FROM __InstanceCreationEvent WITHIN 2 WHERE TargetInstance ISA 'Win32_PnPEntity'— Auslöser für die Erkennung von USB-Hardware-Wallets (Ledger-Phishing-Binärdatei)
Browser-Erweiterung
- Anzeigename: Google Docs Offline (Version 1.95.1)
- Name des Erweiterungsverzeichnisses (Windows): jucku
- Name des Erweiterungsverzeichnisses (macOS): myextension
Prozessnamen
Assaac— Interner Prozessname der Phishing-Binärdatei für Ledger/Trezor

