YAU – Parte 1 – Le e-mail e il documento Excel

12/01/2021

yau

Ursnif è un malware ben conosciuto in letteratura, le informazioni che lo riguardano risalgono all’inizio del precedente1 decennio (circa 2012).

Le campagne di Ursnif si presentano con frequenza quasi quotidiana ed è ormai molto raro che la settimana trascorra senza che gli autori di questo malware provino ad infettare quante più macchine possibile con l’ennesima campagna. Nel report riguardante l’ultimo quadrimestre 2020 Ursnif risulta essere il malware più veicolato con 39 campagne in 16 settimane.

Nonostante la veneranda età, il gran numero di campioni reperibili e la disponibilità (parziale) del codice sorgente delle precedenti varianti, un’analisi completa del malware è ancora mancante. E sebbene l’appellativo di banking trojan sia alquanto eloquente, una documentazione aggiornata e completa di come funzioni Ursnif non è facilmente reperibile.

Ursnif è un malware che colpisce prevalentemente la nostra nazione, anche se si ha evidenza di sporadiche campagne anche negli USA, e i suoi autori (molto probabilmente russi) si sono specializzati su tematiche che fanno breccia tra gli utenti italiani.

Nonostante la sua insistente presenza sul nostro “territorio digitale”, sono molti gli analisti e i ricercatori, indipendenti o meno, che purtroppo non condividono volentieri il loro bagaglio di conoscenze a riguardo.

A tal proposito ci proponiamo, con una serie di articoli, di fornire un’analisi aggiornata e completa di tutte le parti di Ursnif: dal dropper, al C2, passando per i vari payload inoculati nella macchina della vittima.

I malware si evolvono in continuazione ma i criminali, inclusi gli autori di malware, sono spesso superficiali nelle loro opere e tendono a riusare e passarsi il codice già esistente. Ursnif non fa eccezione.

Ursnif deriva da ISFB (come affronteremo meglio nell’apposito articolo) ed è anche noto come Gozi, il cui sorgente è disponibile all’URL https://github.com/mxmssh/malware-1/tree/master/Gozi-ISFB, una parte dello scopo di questa serie di articoli è quella di verificare quanto di questi malware sia rimasto nell’Ursnif moderno.


1 A voler essere pedanti, è l’inizio del decennio in corso al momento della scrittura (2011-2020).

YET ANOTHER URSNIF

Questo è il primo di una seria di articoli, tutti raggruppati sotto il tag: YAU.
Gli articoli saranno pubblicati ogni Martedì e Giovedì pomeriggio.

Indice

Parte 1, Le e-mail e il documento Excel <-
Parte 2, Le macro
Parte 3, Il packer
Parte 4, Primo stadio e la sezione bss
Parte 5, Ancora il primo stadio e i “JJ chunk”
Parte 6, Il secondo stadio e i primi IoC
Parte 7, Il secondo stadio, seed, GUID e privilegi
Parte 8, Il secondo stadio, configurazione e download
Parte 9, Il secondo stadio, salvataggio dei moduli e persistenza
Parte 10, Rimozione di Ursnif
Parte 11, Il client, inizializzazione e configurazione
Parte 12, Il client, da powershell ad explorer.exe ai browser
Parte 13, Il client, comandi e trasmissione al C2
Parte 14, Il C2, panoramica
Parte 15, Il C2, i sorgenti e l’architettura
Parte 16, Il C2, vulnerabilità
Parte 17, OSINT e resoconto finale

Le e-mail

Ursnif si diffonde per e-mail, e sebbene sembri scontata come affermazione, non tutti i malware utilizzano questo approccio.
In particolare i gruppi APT tendono ad usare vulnerabilità per compromettere la rete della vittima e da lì decidere quale mossa compiere. Si veda a tal proposito i casi di Luxottica, Enel e Arena di Verona.

La scelta di puntare sulle campagne di malspam è un importante elemento di profilo poichè, come sappiamo, questa pratica porta rapidamente ad un maggior numero di macchine infette con un sforzo limitato.

Come mostrato nella figura sotto, Ursnif ha tradizionalmente fatto uso di allegati Excel e tematiche commerciali.

Un’e-mail di Ursnif risalente a settembre 2018.
Un’e-mail di Ursnif datata circa marzo 2020.

L’italiano è corretto, probabilmente copiato da reali conversazioni a cui gli attaccanti hanno avuto accesso tramite delle credenziali precedentemente rubate.
I documenti allegati sono veri documenti Excel 97 (ovvero contenitori CFB e non ZIP). Si è avuta evidenza di alcuni malware in documenti rinominati da XLS in XLSX (che non possono contenere macro) sfruttando il fatto che Excel è comunque in grado di aprire il documento correttamente, a prescindere dall’estensione.

A partire da poco prima della metà di quest’anno, il malware ha raffinato le tematiche delle sue compagne, focalizzandosi su temi istituzionali.
Sono ben noti i casi di e-mail di Ursnif che si spacciano per comunicazioni INPS, del MISE o dell’Agenzia delle Entrate.

Recente e-mail di Ursnif a tema Agenzia delle Entrate.
Recente e-mail di Ursnif a tema INPS.

In allegato è sempre presente un vero file XLS, ma questa volta protetto da una semplice password indicata nel corpo dell’e-mail. Lo scopo della password è quella di impedire l’analisi da parte degli antivirus quando viene veicolato.

I temi istituzionali non hanno sostituito tematiche più ordinarie, sono infatti state rilevate campagne effettuate tramite finte e-mail di corrieri, tema Delivery, come la campagna mostrata di seguito.

Un’e-mail di Ursnif che si finge una comunicazione di un corriere.

In queste campagne recenti, i tipi di allegati usati sono più variegati. Sebbene sia sempre usato un documento Excel, questo viene veicolato anche in formato Office 2007+, usando estensioni XLSM e XLSB (ovviamente XLSX non può essere usata). Come vedremo, non sono molti gli strumenti che supportano XLSB.

I mittenti

Gli indirizzi email dei mittenti provengono da domini appositamente registrati sul provider Godaddy, il TLD più utilizzato è .casa.

Gli stessi domini vengono spesso utilizzati come repository per il download della DLL, che vedremo più avanti, scaricata attraverso la macro del documento Office.

Il documento Excel

Ursnif, come altri malware, utilizza i documenti Excel poichè richiede l’uso delle macro (sia VBA che Excel 4.0, come vedremo) per avviare l’infezione.
Fino ad oggi questo è l’unico vettore di infezione che abbiamo rilevato per Ursnif.

Altri malware fanno ancora affidamento sulle vulnerabilità dell’equation editor oppure integrano modelli, con macro, dentro documenti senza macro (XLSX o DOCX).
In quest’ultimi due casi non è necessaria l’interazione con l’utente, ma l’equation editor non è più disponibile nelle versioni non obsolete di Office e i modelli non sono stati molto usati nelle campagne massive.

In ogni caso il malware necessita che l’utente abiliti le macro qualora queste non fossero attive (cosa che, per fortuna, è vera in molte installazioni di default di Office). Per adescare la vittima a cliccare su “Abilita contenuto“, la strategia usata è sempre la solita: far credere che il documento (importante) non funzioni senza l’abilitazione delle macro.
Il trucco riesce meglio perchè la scelta del termine “contenuto“, da parte di Microsoft, è decisamente fuorviante.

Un vecchio documento Ursnif il cui contenuto simula un ordine non correttamente visualizzato.
Documento Ursnif più recente, contiene sempre immagini sfuocate di ordini o fatture.
Altro documento Ursnif, analogo ai precenti ma a tema Enel.
Un template neutro presente in molti documenti Ursnif allegati a e-mail con tema istituzionale.

Se la vittima abilita le macro, ha inizio la catena di infezione.
Il codice nella macro è un dropper che ha il compito di scaricare il loader di Ursnif (contenuto in un packer ed oggetto delle prossime parti).

Le macro ed il dropper

In sintesi, le macro usate da Ursnif hanno due necessità:

  1. Scaricare il loader del malware.
  2. Non far scattare allarmi.

Il primo è un compito banale poichè le macro di Office hanno accesso alle API di Windows e possono lanciare processi o script terzi.
Il secondo è altrettanto semplice poichè il meccanismo principe degli AV rimane sempre il controllo delle firme.
Sono presenti svariati prodotti che effettuano euristiche per determinare se un documento è malevolo ma basta poco a depistarli, infatti è ormai ben consolidato il trend che vede l’impiego di macro Excel 4.0 (che chiameremo anche macro 4.0) dentro fogli macrosheet.

Le macro VBA sono già ampiamente supportate dagli AV ma le macro 4.0 no, rendendo i documenti che ne fanno uso non sospetti per molti AV.

Anche gli strumenti di analisi non supportano bene le macro 4.0, olevba fino a non molto tempo fa non era in grado di estrarle ed ad oggi si limita a mostrare tutto il macrosheet (per file XLSM questo è del tutto inutile in quanto lo stesso output è ottenibile leggendo i file XML direttamente).

L’output di olevba prima del supporto ai macrosheet
L’output di olevba ad oggi. Mostra tutto il macrosheet.

E’ utile ricapitolare le categorie di macro di Ursnif prima di analizzarle nel dettaglio.
Al momento ne abbiamo rilevate tre:

  • Solo macro VBA. Usate nelle campagne di fine 2018, contenevano uno script powershell offuscato il quale aveva il compito di scaricare il loader senza farsi rilevare dagli AV. Gli autori di Ursnif erano arrivati ad usare la steganografia per codificare lo stadio successivo dentro immagini innocue.
  • Solo macro 4.0. Si sono diffuse nel primo trimestre del 2020 e sono passate da essere dei semplici comandi di download-and-execute ad essere macro complesse con l’utilizzo di salti e meta-codice.
    Dato che le macro 4.0 aprono un territorio tecnologico ancora poco supportato, l’efficacia delle tecniche di offuscazione è molto elevata, anche con poco sforzo (c’è un netto svantaggio da parte degli analisti).
  • Macro VBA che generano macro 4.0. Comparse recentemente, queste macro VBA contengono un payload offuscato, ma a differenza di quelle usate a fine 2018, il linguaggio del payload non è powershell ma è una macro 4.0.
    La macro risultate è, necessariamente, sequenziale (senza salti ad altre celle), il che la rende più facile da analizzare.
    Tuttavia la peculiarità del linguaggio e l’assenza di strumenti adatti rende necessario l’utilizzo di Excel od una decodifica manuale (più lenta).

Di seguito un riassunto della prima parte della catena di infezione.

Le tecniche usate dalle macro di Ursnif per scaricare il loader.

Nel prossimo articolo analizzeremo nel dettaglio le macro usate e gli strumenti per la loro analisi.

Taggato  yau