SOC Prime Bias: Medio

13 Feb 2026 13:56

WSL nel Sistema Malware

Author Photo
Ruslan Mikhalov Capo della Ricerca sulle Minacce presso SOC Prime linkedin icon Segui
WSL nel Sistema Malware
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Sintesi

L’articolo spiega come il JavaScript dannoso possa rilevare il Windows Subsystem for Linux (WSL) su un host e successivamente enumerare informazioni e directory degli utenti di Windows. Il campione—ottercookie-socketScript-module-3.js—è attribuito alla famiglia di infostealer Cryxos. Utilizzando variabili d’ambiente oltre a sonde del file-system, il codice cerca marcatori di WSL e poi mappa i dati di Windows esposti attraverso i punti di mount di WSL (ad esempio, percorsi utente sotto /mnt/c/Users). L’articolo inquadra questo come un uso improprio di WSL come una capacità di vivere della terra.

Indagine

L’analisi punta a due funzioni, is_wsl() e get_wu(), che cercano artefatti specifici di WSL e recuperano il nome utente di Windows connesso. Se WSL è presente, il malware espande il suo campo di raccolta aggiungendo /mnt ai suoi obiettivi di scansione, così da poter percorrere i drive dell’host attraverso i percorsi montati e enumerare le directory degli utenti. L’hash SHA256 del campione non è stato pubblicato, ma il nome del file è stato fornito per ricerca e correlazione.

Mitigazione

Controllare l’uso anomalo di WSL nei punti di produzione, inclusa attività sospetta tramite condivisioni wsl$ e accessi inaspettati ai volumi host montati. Disabilitare o limitare WSL dove non è necessario, e rilevare script che interrogano variabili di ambiente WSL o leggendo /proc/version. Inoltre, monitorare i runtime di JavaScript che avviano cmd.exe per eco %USERNAME% durante il profiling dell’host.

Risposta

Se rilevato, isolare l’endpoint, conservare prove forensi dei monti WSL e dei file accessibili, ed eseguire una scansione completa del malware. Rimuovere ottercookie-socketScript-module-3.js e qualsiasi payload connesso, poi verificare che le configurazioni di WSL siano rinforzate o disabilitate.

"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>Azione</b> – Controllo per l’ambiente WSL<br/><b>Tecnica</b> – T1497.002: Evasione da Virtualizzazione/Sandbox: Controlli Basati sull’Attività Utente<br/><b>Descrizione</b>: L’avversario ispeziona l’ambiente per artefatti di virtualizzazione o sandbox basati su attività utente per evitare l’analisi."] class action_check_wsl action %% Technique node for T1497.002 (optional, shown within action text) %% Action: Retrieve Windows username action_retrieve_username["<b>Azione</b> – Recupera il nome utente di Windows tramite cmd.exe e /mnt/c/Users<br/><b>Tecnica</b> – T1056.004: Cattura Input: Credential API Hooking<br/><b>Descrizione</b>: L’avversario cattura l’input delle credenziali agganciando le API di Windows pertinenti."] class action_retrieve_username action %% Action: Locate browser data paths action_locate_browser["<b>Azione</b> – Localizza i percorsi dati del browser<br/><b>Tecnica</b> – T1555.003: Credenziali da Store di Password: Credenziali da Browser Web<br/><b>Descrizione</b>: L’avversario cerca nelle directory tipiche del browser per accedere alle credenziali web memorizzate."] class action_locate_browser action %% Action: Add /mnt mount point to priority directories action_add_mount["<b>Azione</b> – Aggiungi punto montaggio /mnt alle directory prioritarie<br/><b>Tecnica</b> – T1564.004: Nascondi Artefatti: Attributi File NTFS<br/><b>Descrizione</b>: L’avversario utilizza attributi NTFS per nascondere i punti di montaggio e dare priorità a posizioni malevole."] class action_add_mount action %% Action: Collect files from mounted Windows drives action_collect_files["<b>Azione</b> – Raccogli file da drive Windows montati<br/><b>Tecniche</b> – T1025: Dati da Media Rimovibili; T1091: Replica Tramite Media Rimovibili<br/><b>Descrizione</b>: L’avversario raccoglie dati e replica file malevoli tramite media rimovibili montati."] class action_collect_files action %% Action: Harvest credentials from browser stores action_harvest_credentials["<b>Azione</b> – Raccogli credenziali dagli store del browser<br/><b>Tecnica</b> – T1555.003: Credenziali da Store di Password: Credenziali da Browser Web<br/><b>Descrizione</b>: Estrazione di password salvate, cookie e token di sessione dai browser."] class action_harvest_credentials action %% Action: Potential lateral movement via collected data action_lateral_movement["<b>Azione</b> – Potenziale movimento laterale tramite dati raccolti<br/><b>Descrizione</b>: Usa credenziali e file raccolti per muoversi lateralmente all’interno della rete."] 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 "

Flusso di Attacco

Esecuzione della Simulazione

Prerequisito: Il Controllo di Telemetria & Baseline Pre‑flight deve essere superato.

Ragionamento: Questa sezione dettaglia l’esatta esecuzione della tecnica avversaria (TTP) progettata per attivare la regola di rilevamento. I comandi e il racconto DEVONO riflettere direttamente i TTP identificati e mirare a generare l’esatta telemetria prevista dalla logica di rilevamento.

  • Narrativa & Comandi d’attacco:

    L’attaccante ha ottenuto il primo accesso alla macchina della vittima e cerca di enumerare il nome utente connesso per personalizzare i payload. Per rimanere sotto i radar, l’avversario utilizza una shell di comando nativa di Windows (Living‑off‑the‑Land) ed esegue l’esatto echo %USERNAME% comando, che espande la variabile di ambiente al nome dell’utente corrente. Questa attività genera un evento di creazione del processo cmd.exe con la linea di comando echo %USERNAME%, corrispondente alla firma della regola di rilevamento.

  • Script di Test di Regressione:

    # Simulazione del trojan Cryxos che recupera il nome utente tramite cmd.exe
    $cmd = "cmd.exe"
    $args = "/c echo %USERNAME%"
    Write-Host "Esecuzione: $cmd $args"
    Start-Process -FilePath $cmd -ArgumentList $args -NoNewWindow -Wait
  • Comandi di Pulizia:

    # Non rimangono artefatti persistenti; assicurarsi che eventuali istanze residue di cmd.exe siano terminate
    Get-Process -Name cmd -ErrorAction SilentlyContinue | Stop-Process -Force