La Unit42 di Palo Alto analizza una campagna di phishing con una catena di attacco multilivello che sfrutta file .JSE, PowerShell, .NET e AutoIt per diffondere malware.
L’efficacia crescente delle soluzioni di difesa costringe i cybercriminali a ideare tecniche, tattiche e procedure (TTP) sempre più sofisticate per raggiungere i propri obiettivi senza essere scoperti. Un esempio lampante di questa costante evoluzione emerge dall’analisi condotta dagli esperti di Unit 42 di Palo Alto Networks, che hanno individuato una campagna di phishing caratterizzata da una catena di attacco multilivello, progettata per complicare le attività di detection e analisi, e finalizzata alla distribuzione di malware come Agent Tesla, il RAT Remcos e XLoader.
In sintesi, la ricerca ha portato alla luce una campagna di phishing che sfrutta email con allegati malevoli da cui prende il via una complessa sequenza di passaggi: download di script PowerShell, esecuzione di payload cifrati tramite file .NET o AutoIt, fino all’installazione finale di malware per il furto di informazioni. L’approccio multi-strato, che predilige la diversificazione dei vettori di esecuzione, rappresenta una strategia efficace per eludere le difese tradizionali e aumentare la resilienza dell’attacco. Vediamo i passaggi più nel dettaglio.
Il punto di partenza della campagna è una classica email di phishing che si presenta come una comunicazione ufficiale relativa a un presunto pagamento effettuato, che invita la potenziale vittima a consultare un allegato per verificare i dettagli dell’ordine. Quest’ultimo, che nel caso specifico è quasi sempre denominato “doc00290320092.7z”, contiene al suo interno un file con estensione .jse, ovvero uno script JavaScript codificato.
La catena di attacco multilivello
È proprio l’esecuzione del file .jse a rappresentare il primo anello della catena: si tratta di uno script downloader che si connette a un server remoto e avvia il download (e la conseguente esecuzione) di uno script PowerShell. Gli esperti della Unit42 fanno notare che il codice JavaScript risulta leggibile e privo di particolari stratagemmi volti a mascherare le sue intenzioni. Questo testimonia che gli attaccanti hanno preferito affidarsi a una sequenza di passaggi concatenati piuttosto che a tecniche di offuscamento avanzato perché, così facendo, attuano una gestione multi-livello della catena di attacco, in cui la complessità deriva dalla stratificazione degli stadi piuttosto che dalla sofisticazione di ciascun singolo elemento.
Lo script PowerShell rappresenta il secondo stadio dell’attacco. Anche in questo caso la struttura è lineare: il codice contiene un payload codificato in Base64 che viene decifrato, scritto in una directory temporanea ed eseguito. La funzione primaria di questo script è fungere da dropper, ovvero scaricare e lanciare il payload successivo, che costituisce il vero cuore della strategia di evasione.
A questo punto la catena di attacco si biforca e introduce una variabilità che complica ulteriormente il lavoro dei sistemi di difesa e degli analisti. A seconda dei casi, il payload scaricato può essere un eseguibile compilato in .NET oppure un eseguibile AutoIt. La diversificazione dei vettori di esecuzione così implementata aumenta la resilienza dell’attacco e in più consente di sfruttare eventuali lacune nei sistemi di detection, che potrebbero essere più efficaci nel gestire un formato rispetto all’altro.
Nel caso in cui venga attivato un eseguibile .NET, il file contiene a sua volta un payload cifrato, protetto tramite algoritmi come AES o Triple DES, che una volta decifrato inietta il malware all’interno di un processo legittimo di sistema, tipicamente RegAsm.exe. Si tratta di una tecnica di process injection ampiamente utilizzata per mascherare l’attività malevola sfruttando processi di Windows apparentemente innocui. L’analisi di diversi campioni .NET ha evidenziato l’uniformità nella struttura del codice e nella modalità di iniezione, a conferma di una strategia ben definita da parte degli attaccanti. I payload finali veicolati attraverso questa modalità includono varianti del noto infostealer Agent Tesla e di XLoader, entrambi specializzati nel furto di credenziali e di dati sensibili.
L’alternativa all’eseguibile .NET è rappresentata dal dropper AutoIt, che introduce un ulteriore livello di complessità. AutoIt è un linguaggio di scripting spesso utilizzato per automatizzare operazioni su Windows, ma negli ultimi anni è stato sempre più sfruttato dai cybercriminali per confezionare malware difficili da analizzare. L’eseguibile AutoIt contiene uno script che a sua volta include un payload cifrato: il codice, una volta eseguito, carica in memoria il payload, lo decifra e lo inietta in un processo RegSvcs. Anche in questo caso il payload iniettato è un file .NET che, tramite tecniche di reflective loading, esegue la variante di Agent Tesla, spesso protetta da packer come .NET Reactor per ostacolare ulteriormente l’analisi.
L’analisi approfondita del dropper AutoIt ha permesso di individuare le funzioni chiave responsabili dell’esecuzione del shellcode. In particolare, quella DLLCALLADDRESS viene utilizzata per risolvere dinamicamente le API necessarie all’esecuzione del payload, seguendo un flusso operativo che prevede il caricamento, la decifrazione e l’iniezione del codice malevolo. Non si tratta di una metodologia particolarmente sofisticata dal punto di vista tecnico, ma è estremamente efficace nel contesto di una catena multi-strato, in cui ogni passaggio contribuisce a frammentare e disperdere le tracce dell’attacco. Il risultato finale di questa complessa sequenza è l’installazione del ben noto malware Agent Tesla.
Le soluzioni di sicurezza più efficaci contro un attacco di questo tipo sono quelle che combinano analisi comportamentale, analisi in memoria e protezione multilivello, a cui sarebbe opportuno aggiungere tecnologie per la protezione aggiuntiva contro i domini e le URL malevoli, in modo da prevenire l’esecuzione di malware di qualsiasi tipo, oltre che rilevare attività anomale post-compromissione.
Per chi desidera approfondire ulteriormente l’analisi, sul blog di Unit42 sono elencati gli Indicatori di Compromissione relativi a questa campagna, tra cui hash di file, indirizzi di server e credenziali utilizzate dai malware.