WSL im Malware-Ökosystem
Detection stack
- AIDR
- Alert
- ETL
- Query
Zusammenfassung
Der Artikel erklärt, wie bösartiges JavaScript das Windows Subsystem für Linux (WSL) auf einem Host erkennen und dann Windows-Benutzerinformationen und Verzeichnisse auflisten kann. Das Beispiel—ottercookie-socketScript-module-3.js—wird der Cryxos-Infostealer-Familie zugeschrieben. Mithilfe von Umgebungsvariablen und Dateisystem-Sonden sucht der Code nach WSL-Markern und ordnet dann die über WSL-Mountpunkte exponierten Windows-Daten zu (zum Beispiel Benutzerpfade unter /mnt/c/Users). Der Bericht stellt dies als Missbrauch von WSL als Living-off-the-Land-Fähigkeit dar.
Untersuchung
Die Analyse weist auf zwei Funktionen hin, is_wsl() und get_wu(), die nach WSL-spezifischen Artefakten suchen und den angemeldeten Windows-Benutzernamen abrufen. Wenn WSL vorhanden ist, erweitert die Malware ihren Sammlungshorizont, indem sie /mnt zu ihren Scan-Zielen hinzufügt, sodass sie Hostlaufwerke über gemountete Pfade durchqueren und Benutzerverzeichnisse auflisten kann. Der SHA256-Hash des Beispiels wurde nicht veröffentlicht, aber der Dateiname wurde zur Jagd und Korrelation bereitgestellt.
Abschwächung
Achten Sie auf ungewöhnliche WSL-Nutzung auf Produktionsendpunkten, einschließlich verdächtiger Aktivitäten über wsl$-Freigaben und unerwartet den Zugriff auf gemountete Host-Volumes. Deaktivieren oder beschränken Sie WSL, wo es nicht notwendig ist, und erkennen Sie Skripte, die WSL-Umgebungsvariablen abfragen oder /proc/version lesen. Überwachen Sie auch JavaScript-Runtimes, die cmd.exe zum Echo von %USERNAME% während der Hostprofilierung starten.
Reaktion
Wenn erkannt, isolieren Sie den Endpunkt, bewahren Sie forensische Beweise für WSL-Mounts und zugegriffene Dateien auf und führen Sie einen vollständigen Malware-Scan durch. Entfernen Sie ottercookie-socketScript-module-3.js und alle zugehörigen Payloads, und überprüfen Sie dann, ob die WSL-Konfigurationen gehärtet oder deaktiviert sind.
"graph TB %% Class definitions classDef action fill:#99ccff classDef technique fill:#ffcc99 classDef data fill:#ccffcc %% Action: Check for WSL environment action_check_wsl["<b>Aktion</b> – Überprüfen der WSL-Umgebung<br/><b>Technik</b> – T1497.002: Virtualization/Sandbox-Evasion: Benutzeraktivitätsbasierte Prüfungen<br/><b>Beschreibung</b>: Der Angreifer untersucht die Umgebung auf Virtualisierungs- oder Sandbox-Artefakte basierend auf Benutzeraktivität, um einer Analyse zu entgehen."] class action_check_wsl action %% Technique node for T1497.002 (optional, shown within action text) %% Action: Retrieve Windows username action_retrieve_username["<b>Aktion</b> – Abrufen des Windows-Benutzernamens über cmd.exe und /mnt/c/Users<br/><b>Technik</b> – T1056.004: Eingabeerfassung: Abgreifen der Anmeldeinformationen-API<br/><b>Beschreibung</b>: Der Angreifer fängt Eingaben durch das Abgreifen relevanter Windows-APIs ab."] class action_retrieve_username action %% Action: Locate browser data paths action_locate_browser["<b>Aktion</b> – Lokalisieren der Browser-Datenpfade<br/><b>Technik</b> – T1555.003: Anmeldeinformationen aus Passwortspeichern: Anmeldeinformationen aus Webbrowsern<br/><b>Beschreibung</b>: Der Angreifer durchsucht typische Browser-Verzeichnisse, um gespeicherte Webnutzerdaten zu erhalten."] class action_locate_browser action %% Action: Add /mnt mount point to priority directories action_add_mount["<b>Aktion</b> – Hinzufügen eines /mnt-Mountpoints zu den Prioritätsverzeichnissen<br/><b>Technik</b> – T1564.004: Artefakte verbergen: NTFS-Dateiattribute<br/><b>Beschreibung</b>: Der Angreifer verwendet NTFS-Attribute, um Mountpunkte zu verbergen und bösartige Standorte zu priorisieren."] class action_add_mount action %% Action: Collect files from mounted Windows drives action_collect_files["<b>Aktion</b> – Sammeln von Dateien von gemounteten Windows-Laufwerken<br/><b>Techniken</b> – T1025: Daten von Wechseldatenträgern; T1091: Replikation über Wechseldatenträger<br/><b>Beschreibung</b>: Der Angreifer sammelt Daten und repliziert bösartige Dateien über gemountete Wechseldatenträger."] class action_collect_files action %% Action: Harvest credentials from browser stores action_harvest_credentials["<b>Aktion</b> – Ernten von Anmeldeinformationen aus Browser-Speichern<br/><b>Technik</b> – T1555.003: Anmeldeinformationen aus Passwortspeichern: Anmeldeinformationen aus Webbrowsern<br/><b>Beschreibung</b>: Extrahierte gespeicherte Passwörter, Cookies und Sitzungstokens aus Browsern."] class action_harvest_credentials action %% Action: Potential lateral movement via collected data action_lateral_movement["<b>Aktion</b> – Potenzielle laterale Bewegung durch gesammelte Daten<br/><b>Beschreibung</b>: Verwendung der geernteten Anmeldeinformationen und Dateien, um sich lateral innerhalb des Netzwerks zu bewegen."] class action_lateral_movement action %% Connections action_check_wsl –>|leads_to| action_retrieve_username action_retrieve_username –>|leads_to| action_locate_browser action_check_wsl –>|enables| action_add_mount action_add_mount –>|enables| action_collect_files action_locate_browser –>|enables| action_harvest_credentials action_collect_files –>|enables| action_lateral_movement action_harvest_credentials –>|supports| action_lateral_movement "
Angriffsfluss
Simulationsausführung
Voraussetzung: Die Telemetrie- & Baseline Pre‑flight Check muss bestanden sein.
Begründung: Dieser Abschnitt beschreibt die genaue Ausführung der gegnerischen Technik (TTP), die so gestaltet ist, dass sie die Erkennungsregel auslöst. Die Befehle und Erzählungen müssen die identifizierten TTPs direkt widerspiegeln und sollen die genaue Telemetrie erzeugen, die von der Erkennungslogik erwartet wird.
-
Angriffs-Erzählung und Befehle:
Der Angreifer hat sich initial Zugriff auf die Opfermaschine verschafft und versucht, den angemeldeten Benutzernamen aufzulisten, um Payloads zu personalisieren. Um unbemerkt zu bleiben, nutzt der Gegner eine native Windows-Befehlszeile (Living‑off‑the‑Land) und führt den genauen
echo %USERNAME%Befehl aus, der die Umgebungsvariable auf den aktuellen Benutzernamen erweitert. Diese Aktivität erzeugt eincmd.exeProzesserstellungsereignis mit der Befehlszeileecho %USERNAME%, das mit der Signatur der Erkennungsregel übereinstimmt. -
Regressionstestskript:
# Simulieren Sie den Cryxos-Trojaner, der den Benutzernamen über cmd.exe abruft $cmd = "cmd.exe" $args = "/c echo %USERNAME%" Write-Host "Ausführung: $cmd $args" Start-Process -FilePath $cmd -ArgumentList $args -NoNewWindow -Wait -
Aufräumbefehle:
# Es bleiben keine dauerhaften Artefakte; stellen Sie sicher, dass verbleibende cmd.exe-Instanzen beendet werden Get-Process -Name cmd -ErrorAction SilentlyContinue | Stop-Process -Force