Worm WannaMine: Analisi e intervento

Pubblicato da frtg il

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) .

AMSI Bypass

All’interno del dropper è presente un elenco di URL di server utilizzati per il download del malware durante le attività di Lateral Movement: ‎

Lista indirizzi dropper

La restante parte di codice contiene le istruzioni per l’installazione del  cryptominer nel sistema:

Codice per estrare gli artefatti dalla variabile $fa

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.

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.
WMI event subscription setup

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:

Chiamata di Get-creds passano come argomento Mimikatz e utilizzo di test-net

Lo script contiene una serie di meccanismi di propagazione (in ordine di esecuzione):

  1. Remote execution con WMI
  2. Remote execution con Samba
  3. 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
Estratto configurazione mon (XMRig)

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.

Scrittura su disco ed esecuzione di mue.exe

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

md5B73E5BF7274478FB8FA6CE94AF3F6921
sha198BFD0AC4EE3469A331B4C99436B532E7D18B4D6
sha2563562E13CF2C2B0416B22286217602632A421AC6560FC3E4F9EBF8D13A19CA97E
file-size 13946596 (bytes)
entropy4.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

md503A5E1B8680B44A07DAAE5D5517FB38F
sha1903AE5A3895D58FFAA384E926B581DCAD1C8CAB3
sha256809FE2FCCDDF5C788812F1CB18B76F0F1BA4BB8AD1CF24F55A5B95E6225E891C
file-size450722 (bytes)
entropy5.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

md51A89B3DEBD2B8F45B04A12116893BC9C
sha13147D48F8AEC7615CC803E449F3FF688663395F8
sha256EE8275A57D7A80427131D126A19862D6889AB409F7EC4293721E3BD15AA11C9E
file-size1293314 (bytes)
entropy4.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

md5AE8A82C77FD56390B76F6B756DAD101C
sha1DA0CC3211B27616BFE3F9618658C14B65AAB97E2
sha2566DFCE5506FFBECE1CC1DD6AE05D7D4022AC6A73E0EC247A100FA32B04EDFFCF7
file-size2715138 (bytes)
entropy4.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

md50C0195C48B6B8582FA6F6373032118DA
sha1D25340AE8E92A6D29F599FEF426A2BC1B5217299
sha25611BD2C9F9E2397C9A16E0990E4ED2CF0679498FE0FD418A3DFDAC60B5C160EE5
file-size14544 (bytes)
entropy6.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

md5D1AED5A1726D278D521D320D082C3E1E
sha1EFDB3916C2A21F75F1AD53B6C0CCDF90FDE52E44
sha2560A1CDC92BBB77C897723F21A376213480FD3484E45BDA05AA5958E84A7C2EDFF
file-size2863616 (bytes)
entropy7.952

Eseguibile: sc

Descrizione

Shellcode per l’exploit della vulnerabilità EternalBlue. Utilizzato per le operazioni di Lateral Movement.

Dettagli

md5777D2A050AB7FACE761C1A6449913BAA
sha1061C3DF042325F69BB966ADAEC6D78742DDE2036
sha2569CDB5020DF269828480D77FE03758EF70046A71B11D4C8182BA5465C877715D0
file-size2413 (bytes)
entropy5.260