
Prova de Conceito Educacional para a vulnerabilidade CVE-2022-30190 (Follina).
Desenvolvimento Educacional de Malware, Exploração, Análise e Mitigação
Uma prova de conceito totalmente documentada demonstrando a vulnerabilidade Follina - desde a entrega por engenharia social até a exploração, análise forense e desenvolvimento de correção.
⚠️ Apenas para Uso Educacional. Todas as atividades neste repositório foram conduzidas exclusivamente em um ambiente de laboratório isolado com máquinas virtuais, como parte do módulo IE4012 Offensive Hacking Tactics & Strategies na SLIIT. Nada aqui deve ser usado fora de um laboratório controlado. Não teste contra sistemas ou redes reais.
CVE-2022-30190, apelidada de Follina, é uma vulnerabilidade de execução remota de código na Microsoft Support Diagnostic Tool (MSDT). Foi divulgada publicamente em 30 de maio de 2022 e recebeu uma pontuação CVSS de 7.8 (Alta). A exploração é acionada quando uma vítima abre um documento do Microsoft Office especialmente criado — sem necessidade de macros. O documento busca um payload HTML de um servidor HTTP controlado pelo atacante, que invoca o manipulador de protocolo de URI ms-msdt: e passa comandos arbitrários ao sistema por meio do argumento 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
O chamariz é um e-mail de phishing que se passa por uma plataforma de cobrança chamada FinanceSync, alegando que uma fatura está vencida. O anexo é um arquivo zip protegido por senha (Invoice.zip) contendo o documento Word malicioso. O uso de um arquivo criptografado contorna a maioria dos scanners de gateway de e-mail, pois o conteúdo não pode ser inspecionado.
Invoice_FS-2026-8821_OVERDUE.docx e inicia um servidor HTTP na porta 8000word/_rels/document.xml.rels apontando para http://<attacker_ip>:8000/index.html2026-03-25). Se a condição de data não for atendida, nada é executadoms-msdt: é disparada com um argumento PCWDiagnostic contendo um comando cmd.exeWINWORD.EXE → msdt.exe → cmd.exe é executada e grava sys_cache.dat em C:\Users\Public\ como prova de comprometimentopatch.py remove o manipulador de protocolo de URI ms-msdt do registro do Windows, interrompendo a cadeia de exploração na etapa de resolução da URI, antes que qualquer argumento controlado pelo atacante possa chegar ao MSDT.
Máquina do atacante (Kali Linux)
Máquina da vítima (Windows 10)
ms-msdt presente em HKEY_CLASSES_ROOT2026-03-25 ou posterior# On the attacker machine
python3 PoC.py
O script gera o documento Word e inicia o servidor HTTP. Transfira o documento para a VM da vítima e abra-o. O terminal do atacante registrará a solicitação recebida do Word.
O script de correção deve ser executado como Administrador na VM Windows da vítima.
# 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
| Máquina | Função | Endereço IP |
|---|---|---|
| Kali Linux VM | Atacante - executa o PoC.py | 192.168.56.10 |
| Windows 10 VM | Vítima - abre o documento | 192.168.56.20 |
Ambas as VMs foram conectadas por uma rede Host-Only do VirtualBox sem acesso à internet.
| Campo | Detalhe |
|---|
| CVE ID | CVE-2022-30190 |
| Nome Comum | Follina |
| Pontuação CVSS | 7.8 (Alta) |
| Vetor CVSS | AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H |
| Componente | Microsoft Support Diagnostic Tool (MSDT) |
| Versões Afetadas | Windows 7 - 11 / Server 2008 R2 - 2022 |
| Divulgado | 30 de maio de 2022 |
| Correção Oficial | KB5014697 (Patch Tuesday de junho de 2022) |
| Teste | Pré-Correção | Pós-Correção |
|---|
| Chave de registro ms-msdt presente | Sim (VULNERÁVEL) | Não (MITIGADO) |
| Requisição HTTP feita pelo Word | Sim | Sim (inalterado) |
| msdt.exe executado | Sim | Não |
| cmd.exe executado | Sim | Não |
| sys_cache.dat criado | Sim | Não |
| Exploração bem-sucedida | Sim | Não |