
Proof-of-Concept educativo per la vulnerabilità CVE-2022-30190 (Follina).
Sviluppo, Sfruttamento, Analisi e Mitigazione di Malware a Scopo Didattico
Un proof-of-concept completamente documentato che dimostra la vulnerabilità Follina - dalla consegna tramite ingegneria sociale fino allo sfruttamento, all'analisi forense e allo sviluppo di patch.
⚠️ Solo per uso didattico. Tutte le attività in questo repository sono state condotte esclusivamente in un ambiente di laboratorio con macchine virtuali isolate come parte del modulo IE4012 Tattiche e Strategie di Hacking Offensivo presso SLIIT. Niente di ciò che qui è contenuto dovrebbe essere utilizzato al di fuori di un laboratorio controllato. Non testare su sistemi o reti reali.
CVE-2022-30190, soprannominata Follina, è una vulnerabilità di esecuzione remota di codice nel Microsoft Support Diagnostic Tool (MSDT). È stata divulgata pubblicamente il 30 maggio 2022 e ha ricevuto un punteggio CVSS di 7.8 (Alto). L'exploit si attiva quando una vittima apre un documento Microsoft Office appositamente creato - nessuna macro richiesta. Il documento recupera un payload HTML da un server HTTP controllato dall'attaccante, che invoca il gestore del protocollo URI ms-msdt: e passa comandi arbitrari al sistema tramite l'argomento PCWDiagnostic.
SourceCode.zip/
├── PoC.py # Main exploit script
├── patch.py # Mitigation patch script
├── Invoice_FS-2026-8821_OVERDUE.docx # Generated malicious Word document
└── doc/ # Internal XML files extracted from the docx
├── word/
│ ├── document.xml # Main document body
│ └── _rels/
│ └── document.xml.rels # External OLE reference pointing to attacker server
└── [Content_Types].xml
Il richiamo è un'email di phishing che si finge una piattaforma di fatturazione chiamata FinanceSync, sostenendo che una fattura è scaduta. L'allegato è un archivio zip protetto da password (Invoice.zip) contenente il documento Word dannoso. Usare un archivio crittografato aggira la maggior parte degli scanner dei gateway email poiché il contenuto non può essere ispezionato.
Invoice_FS-2026-8821_OVERDUE.docx e avvia un server HTTP sulla porta 8000word/_rels/document.xml.rels che punta a http://<attacker_ip>:8000/index.html2026-03-25). Se la condizione della data non è soddisfatta, nulla viene eseguitoms-msdt: viene attivato con un argomento PCWDiagnostic contenente un comando cmd.exeWINWORD.EXE → msdt.exe → cmd.exe viene eseguita e scrive sys_cache.dat in C:\Users\Public\ come prova di compromissionepatch.py rimuove il gestore del protocollo URI ms-msdt dal registro di Windows, interrompendo la catena di sfruttamento nella fase di risoluzione dell'URI prima che eventuali argomenti controllati dall'attaccante possano raggiungere MSDT.
Macchina attaccante (Kali Linux)
Macchina vittima (Windows 10)
ms-msdt presente sotto HKEY_CLASSES_ROOT2026-03-25 o successiva# On the attacker machine
python3 PoC.py
Lo script genera il documento Word e avvia il server HTTP. Trasferisci il documento sulla VM vittima e aprilo. Il terminale dell'attaccante registrerà la richiesta in arrivo da Word.
Lo script di patch deve essere eseguito come Amministratore sulla VM Windows vittima.
# Check current status
python patch.py --status
# Apply the patch (removes ms-msdt registry key)
python patch.py --apply
# Roll back to vulnerable state (for re-testing)
python patch.py --rollback
| Macchina | Ruolo | Indirizzo IP |
|---|---|---|
| Macchina virtuale Kali Linux | Attaccante - esegue PoC.py | 192.168.56.10 |
| Macchina virtuale Windows 10 | Vittima - apre il documento | 192.168.56.20 |
Entrambe le VM erano connesse tramite una rete Host-Only di VirtualBox senza accesso a Internet.
| Campo | Dettaglio |
|---|
| ID CVE | CVE-2022-30190 |
| Nome comune | Follina |
| Punteggio CVSS | 7.8 (Alto) |
| Vettore CVSS | AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H |
| Componente | Microsoft Support Diagnostic Tool (MSDT) |
| Versioni affette | Windows 7 - 11 / Server 2008 R2 - 2022 |
| Divulgato | 30 maggio 2022 |
| Patch ufficiale | KB5014697 (Patch Tuesday di giugno 2022) |
| Test | Prima della patch | Dopo la patch |
|---|
| Chiave di registro ms-msdt presente | Sì (VULNERABILE) | No (MITIGATA) |
| Richiesta HTTP effettuata da Word | Sì | Sì (invariato) |
| msdt.exe avviato | Sì | No |
| cmd.exe avviato | Sì | No |
| sys_cache.dat creato | Sì | No |
| Exploit riuscito | Sì | No |