Il nostro team ha recentemente individuato, analizzato e gestito un tentativo di compromissione da malware WannaMine.
WannaMine è un malware di tipo Worm (noto dal 2017) il cui scopo è quello di propagarsi all’interno delle reti aziendali e di effettuare il mining di criptovalute (Monero) su tutti i sistemi compromessi.
La sue funzionalità di propagazione tramite credenziali valide (Mimikatz e moduli Empire) e lo sfruttamento di vulnerabilità del protocollo SMB (EternalBlue CVE-2017-0144) rendono le attività di Incident Response più complesse. Inoltre, la struttura quasi interamente fileless del malware permette a quest’ultimo di superare le classiche protezioni per Endpoint.
L’analisi del sample ha permesso ai nostri analisti di ottenere informazioni sulle modalità di compromissione e propagazione del Worm oltre che l’indirizzo del Wallet Monero associato a questo gruppo criminale: 46gVfDm99aq9JqESFxXFp5AyFCZPHsbTn48dWAtVASddf4TmhQMkxvQadhKPvAjszJV8cQKVHHLQ7WpNrh33ogkGUPHhpVP
Alcune delle Tattiche e le Tecniche associate a compromissione da Worm WannaMine:
Tattica | ID Tecnica | Nome Tecnica |
Initial Access | T1189 | Drive-by Compromise |
T1566.001 | Spearphishing Attachments | |
Persistence | T1546.003 | Windows Management Instrumentation Event Subscription |
Credential Access | T1003.001 | OS Credential Dumping |
Lateral Movement | T1210 | Exploitation of Remote Services |
T1021.002 | Remote Services |
Il malware, noto dal 2017, ha subito diverse modifiche ed è presente in rete con diverse varianti e funzionalità.
Indice dell’articolo:
Analisi catena di Compromissione
Avvio della compromissione
Il vettore d’attacco utilizzato dal Worm è, con molta probabilità, rappresentato da attività di Drive-By Compromise. L’avvio del dropper (uno script in Powershell, in6.ps1) sul sistema scatena una lunga catena di eventi responsabili dell’installazione del malware.
La prima parte del codice viene utilizzata per bypassare l’Anti-Malware Scan Interface di Windows (AMSI) .
All’interno del dropper è presente un elenco di URL di server utilizzati per il download del malware durante le attività di Lateral Movement:
La restante parte di codice contiene le istruzioni per l’installazione del cryptominer nel sistema:
Persistenza
Il malware stabilisce la propria persistenza tramite la registrazione di eventi di Windows Management Instrumentation (WMI). WMI può essere usato per eseguire del codice al verificarsi di un evento specifico.
Per fare alcuni esempi, è possibile scatenare un comando ad una certa ora del giorno, o all’accesso dell’utente o dopo un certo tempo di inattività del computer. In questo modo è possibile registrare un evento ed eseguire codice arbitrario al verificarsi di tale evento, fornendo un perfetto meccanismo di persistenza.
- SCM Event8 Log Consumer viene eseguito circa ogni 4 ore in modo tale da riprendere il processo di infezione nel caso in cui precedentemente tale processo fosse fallito;
- SCM Event8 Log Consumer2 viene eseguito 4/5 minuti dopo l’avvio del sistema.
Lateral Movement
Il lateral movement viene eseguito tramite gli artefatti funs, mimi e sc estratti dalla variabile $fa.
Funs è un file PowerShell contenente tutte le funzioni necessarie per infettare gli altri sistemi della rete.
Gran pare del codice di funs proviene dal framework Empire.
Attraverso Get-creds utilizza l’artefatto mimi, contenete il codice di Mimikatz, per estrarre username e password dal sistema. Successivamente utilizza test-net a cui viene passato un array con gli IP di classe B e C identificati nella rete.
Questa funzione avvia l’attività di propagazione su reti interne all’azienda:
Lo script contiene una serie di meccanismi di propagazione (in ordine di esecuzione):
- Remote execution con WMI
- Remote execution con Samba
- Exploit della vulnerabilità Eternal Blue, in cui utilizza l’artefatto sc come shellcode.
Cryptocurrency mining
Per poter eseguire l’attività di mining Monero, il malware utilizza due artefatti: mon e mue.
Primo metodo – MON
Come primo tentativo, il worm esegue l’artefatto mon in modalità fileless, il codice è infatti inserito nella classe systemcore_Updater8 che viene richiamata tramite PowerShell.
Il codice risulta essere una copia del miner open-source XMRig.
Configurazione del software XMRig:
- Cryptomoneta: Monero
- Wallet: 46gVfDm99aq9JqESFxXFp5AyFCZPHsbTn48dWAtVASddf4TmhQMkxvQadhKPvAjszJV8cQKVHHLQ7WpNrh33ogkGUPHhpVP
- Indirizzi di pool:
- xmr-eu1.nanopool.org:14444
- xmr-asia1.nanopool.org:14444
- xmr-eu2.nanopool.org:14444
- xmr-us-east1.nanopool.org:14444
- xmr-us-west1.nanopool.org:14444
- pool.minexmr.com:80
- sg.minexmr.com:80
- ca.minexmr.com:80
Viene poi installato sul sistema l’artefatto ring con il nome WinRing0x64.sys.
Questo risulta essere un driver Microsoft utilizzato da mon per ottimizzare l’algoritmo RandomX Monero di mining.
Il driver, seppur lecito, possiede diverse vulnerabilità che se sfruttate permetterebbero ad un malintenzionato di ottenere i privilegi di SYSTEM.
Secondo metodo – MUE
Se la prima esecuzione non risulta andare a buon fine, WannaMine esegue un artefatto diverso, posizionando il file su disco tramite WMI, chiamandolo mue.exe (percorso di sistema C:\Windows\system32).
L’eseguibile risulta essere una versione obsoleta di XMRig che non sfrutta il driver WinRing0x64.sys.
Analisi Statica
Script: in6.ps1
Descrizione
File PowerShell che svolge il ruolo di dropper .
Al suo interno è presente una variabile $fa, contenente codice codificato in Base64 utilizzati per estrarre tutti gli artefatti utili alla compromissione.
E’ presente una seconda parte di codice con vari livelli di offuscamento inseriti per evitare il rilevamento da parte di soluzioni di protezione endpoint AntiVirus.
Dettagli
md5 | B73E5BF7274478FB8FA6CE94AF3F6921 |
sha1 | 98BFD0AC4EE3469A331B4C99436B532E7D18B4D6 |
sha256 | 3562E13CF2C2B0416B22286217602632A421AC6560FC3E4F9EBF8D13A19CA97E |
file-size | 13946596 (bytes) |
entropy | 4.000 |
Script: Funs
Descrizione
File contenente script PowerShell con funzioni ausiliarie tra cui quelle per il Lateral Movement. Molte di queste funzioni sono derivate da frameworks come Empire.
Dettagli
md5 | 03A5E1B8680B44A07DAAE5D5517FB38F |
sha1 | 903AE5A3895D58FFAA384E926B581DCAD1C8CAB3 |
sha256 | 809FE2FCCDDF5C788812F1CB18B76F0F1BA4BB8AD1CF24F55A5B95E6225E891C |
file-size | 450722 (bytes) |
entropy | 5.181 |
Eseguibile: mimi
Descrizione
Contiene Mimikatz, è un file binario e viene eseguito attraverso reflected injection in modo tale da non essere scritto sul disco. Viene utilizzato per estrarre le credenziali presenti sul sistema.
Dettagli
md5 | 1A89B3DEBD2B8F45B04A12116893BC9C |
sha1 | 3147D48F8AEC7615CC803E449F3FF688663395F8 |
sha256 | EE8275A57D7A80427131D126A19862D6889AB409F7EC4293721E3BD15AA11C9E |
file-size | 1293314 (bytes) |
entropy | 4.536 |
Eseguibile: mon
Descrizione
Contiene una versione del software open-source XMRig, il quale è un miner di criptovaluta. Viene eseguito in memoria attraverso PowerShell senza essere scritto sul disco.
Dettagli
md5 | AE8A82C77FD56390B76F6B756DAD101C |
sha1 | DA0CC3211B27616BFE3F9618658C14B65AAB97E2 |
sha256 | 6DFCE5506FFBECE1CC1DD6AE05D7D4022AC6A73E0EC247A100FA32B04EDFFCF7 |
file-size | 2715138 (bytes) |
entropy | 4.800 |
Eseguibile: WinRing0x64.sys
Descrizione
Driver legittimo utilizzato da mon per ottimizzare le performance di mining. Pur essendo un driver legittimo contiene vulnerabilità di tipo Privilege Escalation, la sua installazione rende il sistema meno sicuro.
Dettagli
md5 | 0C0195C48B6B8582FA6F6373032118DA |
sha1 | D25340AE8E92A6D29F599FEF426A2BC1B5217299 |
sha256 | 11BD2C9F9E2397C9A16E0990E4ED2CF0679498FE0FD418A3DFDAC60B5C160EE5 |
file-size | 14544 (bytes) |
entropy | 6.266 |
Eseguibile: mue.exe
Descrizione
Ha lo scopo di iniettare il payload in un processo legittimo attraverso il process hollowing. Il payload iniettato è una versione di XMRig.
Dettagli
md5 | D1AED5A1726D278D521D320D082C3E1E |
sha1 | EFDB3916C2A21F75F1AD53B6C0CCDF90FDE52E44 |
sha256 | 0A1CDC92BBB77C897723F21A376213480FD3484E45BDA05AA5958E84A7C2EDFF |
file-size | 2863616 (bytes) |
entropy | 7.952 |
Eseguibile: sc
Descrizione
Shellcode per l’exploit della vulnerabilità EternalBlue. Utilizzato per le operazioni di Lateral Movement.
Dettagli
md5 | 777D2A050AB7FACE761C1A6449913BAA |
sha1 | 061C3DF042325F69BB966ADAEC6D78742DDE2036 |
sha256 | 9CDB5020DF269828480D77FE03758EF70046A71B11D4C8182BA5465C877715D0 |
file-size | 2413 (bytes) |
entropy | 5.260 |