Il malware Emotet riprende a colpire l’Italia

08/03/2023

emotet
Distribuzione delle campagne Emotet dal 2020 al 2023

Ancora una volta, dopo una pausa di 4 mesi, Emotet riparte con una campagna massiva rivolta ad utenti italiani. L’ultima attività di Emotet osservata in Italia risale al mese di novembre 2022 ed è durata appena una settimana, precisamente dal 3 al 9 novembre, nel corso della quale il CERT-AGID ha registrato 16 campagne veicolate tramite email con allegati ZIP ed XLS che hanno sfruttato le botnet Epoch4 ed Epoch5.

La campagna odierna, individuata e contrastata dal CERT-AGID, non interessa un tema in particolare ma riprende conversazioni già intercorse, fornendo in allegato un file ZIP (in questo caso “Copia Fattura.zip“) contenente un file di tipo DOC di oltre 500MB.

Campione di email che veicola Emotet

La dimensione esagerata del file DOC è voluta per evitare che l’utente possa sottoporla ad analisi sulle sandbox online. Il contenuto reale del file DOC risulta essere poco più di 300 Kb. ai quali sono stati aggiunti una serie di null byte fino a superare la dimensione di 500MB.

Caratteri NUL aggiunti al file DOC

Come già osservato in molte altre campagne simili, il file DOC è predisposto con una macro malevola, leggermente offuscata, che ha lo scopo di scaricare ulteriori file (PE o ZIP) ed eseguirli. Le URL da cui scaricare i file sono offuscate e vengono testate, una ad una, finchè non viene rilasciato il file richiesto.

Macro Emotet con URL deoffuscate

A tal proposito, il CERT-AGID ha prodotto un semplice script python che consente, adattandolo di volta in volta al vba estratto tramite oletools, di deoffuscare le macro utilizzate per questa campagna e recuperare rapidamente le dropurl:

import re def decode(s, mp, n): return "".join([s[mp[i]-1] for i in range(0, n)]) with open("macro.vba", "r") as f: lines = f.readlines() qawel = re.compile(r"^(\w+)\s*=\s*qawel\(") arr = re.compile(r"^\w+\((\d+)\)\s*=\s*(\d+)$") asg = re.compile(r'^\w+\s*=\s*"(.*?)"$') num = re.compile(r'^\w+\s*=\s*(\d+)$') res = [] for i in range(0, len(lines)): l = lines[i] qm = qawel.search(l) if not qm: res.append(l) continue j = i - 1 mp = [0]*100 while m := arr.search(lines[j]): mp[int(m.group(1))] = int(m.group(2)) j -= 1 m = asg.search(lines[j]) s = m.group(1) j -= 1 m = num.search(lines[j]) n = int(m.group(1)) dec = decode(s, mp, n) v = qm.group(1) k = i - j + 1 res = res[:-k] res.append(f"{v} = \"{dec}\n\"") with open("macro.deob.vba", "w") as f: f.writelines(res)

Il risultato ottenuto dallo script consente di leggere chiaramente il codice della macro e quindi la lista delle dropurl che utilizzerà per scaricare le componenti malevole:

Dropurl visibili dalla Macro deoffuscata

Il file ottenuto dalle dropurl è un file ZIP che contiene un PE, in particolare una DLL di oltre 500MB, anche in questo caso ripiena di null byte, che successivamente eseguirà tramite “regsvr32”, come si evince dalla macro deoffuscata:

Funzione oggetto dell’esecuzione della DLL Emotet

I C2 rilevati in questa campagna sono 49 ed afferiscono alla botnet Emotet denominata Epoch4.

Emotet Botnet Epoch4

Indicatori di Compromissione

Gli IoC relativi a questa campagna sono stati già condivisi con le organizzazioni accreditate al flusso IoC del CERT-AgID.

Link: Download IoC

Taggato  emotet