Discussione Articolo Follina (CVE-2022-30190): il bug che sfrutta MSDT per eseguire codice malevolo tramite file Office

Stato
Discussione chiusa ad ulteriori risposte.

nfvblog

Moderatore
9 Dicembre 2021
668
66
322
450
Ultima modifica da un moderatore:
Follina (CVE-2022-30190) è una vulnerabilità 0day dei prodotti Microsoft Office che consente l'esecuzione di codice arbitrario sfruttando MSDT, il Microsoft Windows Support Diagnostic Tool.​

follina-cover.png

Follina (CVE-2022-30190): il bug che sfrutta MSDT per eseguire codice malevolo tramite file Office​

Articolo in collaborazione con @0xbro




1    introduzione


1.1    Storico

Questa storia è frutto del pressapochismo perché questo problema in un primo momento fu sminuito da Microsoft che in un primo momento lo vide come un semplice bug ininfluente.
Questa vicenda si è svolta tra metà aprile e tutto maggio del 2022, infatti, le prime segnalazioni a Microsoft sono arrivate proprio il 12 aprile da parte del Shadow Chaser Group. La risposta da parte di Microsoft arriva il 21 che chiude il report su MSRC e nei giorni successivi prova con poco successo a porre una patch risolutiva al problema.​
Il 27 di maggio il servizio di sicurezza Nao pubblica su twitter un documento caricato dalla Bielorussia che sfrutta proprio questa vulnerabilità e lo stesso giorno stranamente riappare il report sul servizio MSRC. Alla fine del mese la vulnerabilità viene registrata come CVE-2022-30190 ed è stata classificata con la severità 7, cioè un security high, proprio per la sua semplicità dell'attacco e anche per il suo grado di infettività.
Alla fine Microsoft ha rilasciato una patch di sicurezza il pomeriggio del 14 giugno 2022 per la suite office 2019 e 365, al momento il problema sembra risolto, le macchine infettate per fortuna non sono state moltissime e si può dire che questo incubo finalmente è passato.

All'interno di questo intervallo temporale di all'incirca 2 mesi i media di settore hanno creato un putiferio, perché comunque questa vulnerabilità è molto semplice da eseguire e non richiede grosse conoscenze tecniche per poterlo effettuare. Il fatto che nessuno è perfetto e quindi tutti sbagliano, si spera che questo problema non si ripresenti per molto tempo.

2    Analisi del PoC

Follina, come già accennato sopra, utilizza il Microsoft Support Diagnostic Tool per eseguire codice remoto. Sebbene l'attacco risulti simile alla tecnica di utilizzo delle Macro di Word o delle DDE (Dynamic Data Exchange) di Excel per eseguire codice arbitrario (vedi DDE Attacks), sulla carta questa nuova nuova vulnerabilità è più pericolosa perché consente di eseguire codice senza che l'utente debba necessariamente aprire il file (solamente se l'anteprima del file è visibile all'interno di esplora risorse, Ndr.). Ciò rende quindi l'attacco più pericoloso, perchè se l'utente poco attento è tutelato dalla protected view quando cerca di aprire dei file scaricati da internet, in questo nuovo scenario non è più così, in quanto basta visualizzare l'anteprima del file da dentro esplora risorse per avviare il diagnostic tool.

Come per tutte le tecniche di attacco che utilizzano i file della suite office, anche in questo caso si tratta però sempre e comunque di una tecnica di phishing, per cui l'interazione dell'utente è necessaria al fine di riuscire a sfruttare efficacemente l'attacco (ecco il motivo per cui la falla non è considerata con una severity critical ma solamente high).

Esistono diverse repository che al momento permettono di generare un documento malevolo che sfrutti la falla per eseguire codice arbitrario. In questo caso utilizzeremo la repo messa a disposizione da John Hammond (msdt-follina) in modo da generare il nostro exploit ed analizzarlo.

2.1    Dettaglio tecnico

World, per consentire di richiamare risorse esterne, utilizza il file doc/word/_rels/document.xml.rels. Al suo interno infatti sono mappate tutte le relazioni tra le varie componenti del file, compresi gli eventuali richiami verso l'esterno (per scaricare immagini o allegati dal web, per esempio). Questa funzionalità è molto comoda perchè permette di alleggerire di molto il documento, ma nel corso del tempo è stata diverse volte sfruttata per bypassare controlli di sicurezza ed effettuare diversi attacchi (The NoRelationship Attack Bypasses Office 365 Email Attachment Security, per esempio).​

Anche nel caso di Follina, il vettore per scaricare il payload malevolo da eseguire successivamente è il file doc/word/_rels/document.xml.rels
1.png


Così facendo è possibile andare a scaricare dall'IP specificato il payload contenente le istruzioni per eseguire codice arbitrario utilizzando il protocollo ms-msdt:
2.png


Come si può notare, il payload non è nient'altro che uno script JavaScript contenente un redirect sul protocollo ms-msdt, cioè il protocollo usato dal Microsoft Support Diagnostic Tool. Ad esso però vengono passati diversi flag, tra cui /param, che consente di inviare diversi parametri all'ms-msdt ma che consente anche - in questo caso - di eseguire il codice powershell malevolo. Il payload è abbastanza offuscato e ne esistono di diverse varianti, ma la particolarità è che la dimensione del codice deve essere superiore a 4096 bytes per funzionare (ecco perchè il payload originale contenenesse una grande quantità di "A" commentate a inizio script e ilperchè il PoC usato in questo esempio utilizzi una sequenza di caratteri commentati come filler).​

how_it_works2-768x412.png

follina_msdt-768x367.png


Il sample originale è ancora presente su VirusTotal e può essere analizzato al link sottostante. Non è chiaro che genere di comandi siano stati eseguito col primo sample (follina si occupava solamente di scaricare un altro programma, chiamato rgb.exe, di cui non si conosce il contenuto), ma molto probabilmente si tratta di qualche sorta di malware. Il link lo trovate di seguito:​

Potete trovare ulteriori approfondimenti tecnici ai link di seguito:



Vedi: https://www.youtube.com/watch?v=dGCOhORNKRk&t=728s&ab_channel=JohnHammond

2.2    Remediation

Sebbene esistano alsuni workaround per aggirare la falla, come ad esempio monitorare i processi che eseguono ms-msdt o disabilitare completamente il protocollo ms-msdt con il comando reg delete HKEY_CLASSES_ROOT\ms-msdt /f (ricordate di fare un backup del registro), attualmente è disponibile anche l'aggiornamento ufficiale, sia tramite Windows Update, sia tramite la suite Office, pertanto è consigliabile aggiornare i programmi all'ultima versione.


Molti antivirus tra cui Symantec, Bitdefender e Kaspersky hanno inoltre aggiornato le loro signature, individuando i sample più comuni che sfruttano la falla, e gli EDR più famosi (CrowdStrike in primis) individuano abbastanza facilmente il comportamento sospetto della CVE, andando a generare alert se non addirittura a bloccare il processo.

Si può dire che tutto sommato benchè si tratti di una falla pericolosa è possibile difendersi con efficiacia, e che sysadmin e non potranno tornare a fare sogni tranquilli.


Made with ❤ for Inforge

 
Stato
Discussione chiusa ad ulteriori risposte.