
Preuve de concept pédagogique pour la vulnérabilité CVE-2022-30190 (Follina).
Développement de malware éducatif, exploitation, analyse et atténuation
Une preuve de concept entièrement documentée démontrant la vulnérabilité Follina - de la livraison par ingénierie sociale à l'exploitation, en passant par l'analyse forensique et le développement de correctifs.
⚠️ Usage éducatif uniquement. Toutes les activités de ce dépôt ont été menées exclusivement dans un environnement de laboratoire de machines virtuelles isolé dans le cadre du module IE4012 Offensive Hacking Tactics & Strategies de SLIIT. Rien ici ne doit être utilisé en dehors d'un laboratoire contrôlé. Ne testez pas sur des systèmes ou réseaux réels.
CVE-2022-30190, surnommée Follina, est une vulnérabilité d'exécution de code à distance dans l'outil de diagnostic du support Microsoft (MSDT). Elle a été divulguée publiquement le 30 mai 2022 et a reçu un score CVSS de 7,8 (Élevé). L'exploit se déclenche lorsqu'une victime ouvre un document Microsoft Office spécialement conçu - aucune macro requise. Le document récupère une charge utile HTML depuis un serveur HTTP contrôlé par l'attaquant, qui invoque le gestionnaire de protocole URI ms-msdt: et transmet des commandes arbitraires au système via l'argument 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
L'appât est un e-mail de phishing se faisant passer pour une plateforme de facturation nommée FinanceSync, prétendant qu'une facture est en retard. La pièce jointe est une archive zip protégée par mot de passe (Invoice.zip) contenant le document Word malveillant. L'utilisation d'une archive chiffrée contourne la plupart des scanners de passerelles e-mail, car le contenu ne peut pas être inspecté.
Invoice_FS-2026-8821_OVERDUE.docx et démarre un serveur HTTP sur le port 8000word/_rels/document.xml.rels pointant vers http://<attacker_ip>:8000/index.html2026-03-25). Si la condition de date n'est pas remplie, rien ne s'exécutems-msdt: est déclenchée avec un argument PCWDiagnostic contenant une commande cmd.exeWINWORD.EXE → msdt.exe → cmd.exe s'exécute et écrit sys_cache.dat dans C:\Users\Public\ comme preuve de compromissionpatch.py supprime le gestionnaire de protocole URI ms-msdt du registre Windows, interrompant la chaîne d'exploitation au niveau de la résolution de l'URI, avant que des arguments contrôlés par l'attaquant ne puissent atteindre MSDT.
Machine de l'attaquant (Kali Linux)
Machine victime (Windows 10)
ms-msdt présente sous HKEY_CLASSES_ROOT2026-03-25 ou ultérieure# On the attacker machine
python3 PoC.py
Le script génère le document Word et démarre le serveur HTTP. Transférez le document vers la machine virtuelle victime et ouvrez-le. Le terminal de l'attaquant journalisera la requête entrante de Word.
Le script de correctif doit être exécuté en tant qu'Administrateur sur la machine virtuelle Windows victime.
# 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
| Machine | Rôle | Adresse IP |
|---|---|---|
| VM Kali Linux | Attaquant - exécute PoC.py | 192.168.56.10 |
| VM Windows 10 | Victime - ouvre le document | 192.168.56.20 |
Les deux machines virtuelles étaient connectées via un réseau VirtualBox Host-Only sans accès Internet.
| Champ | Détail |
|---|
| Identifiant CVE | CVE-2022-30190 |
| Nom courant | Follina |
| Score CVSS | 7,8 (Élevé) |
| Vecteur CVSS | AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H |
| Composant | Outil de diagnostic du support Microsoft (MSDT) |
| Versions concernées | Windows 7 - 11 / Server 2008 R2 - 2022 |
| Divulguée | 30 mai 2022 |
| Correctif officiel | KB5014697 (Patch Tuesday de juin 2022) |
| Test | Avant correctif | Après correctif |
|---|
| Clé de registre ms-msdt présente | Oui (VULNÉRABLE) | Non (ATTÉNUÉ) |
| Requête HTTP effectuée par Word | Oui | Oui (inchangé) |
| msdt.exe lancé | Oui | Non |
| cmd.exe lancé | Oui | Non |
| sys_cache.dat créé | Oui | Non |
| Exploit réussi | Oui | Non |