ZephrFish/CVE-2025-53770-Scanner

GitHub: ZephrFish/CVE-2025-53770-Scanner

针对 SharePoint CVE-2025-53770 漏洞的自动化检测扫描器,帮助企业快速识别存在风险和已被利用的 SharePoint 实例。

Stars: 18 | Forks: 5

# CVE-2025-53770 SharePoint 漏洞扫描器 本项目是针对目前推特上流传的各种攻击载荷和攻击手法进行 100% 拼凑而成的工具,因此不提供任何形式的保证。该扫描器旨在识别易受攻击的实例,并内置了包含已知实际攻击利用场景的配置,其主要设计初衷是为防御目的服务,帮助您识别存在漏洞的实例以便进行修补。 该扫描器通过以下方式对 SharePoint 部署执行自动化检测: - 向 SharePoint ToolPane 端点发送带有恶意载荷的自定义 POST 请求 - 检测机器密钥提取企图及成功的利用行为 - 识别二次载荷部署(spinstall0.aspx) - 基于观察到的攻击模式分析响应中的漏洞特征 - 提供包含置信度级别和紧急行动警报的详细报告 - 支持并发扫描以提高效率 ## 核心检测能力 ### 严重:机器密钥提取检测 - 检测成功的机器密钥提取响应 - 识别 ValidationKey、DecryptionKey 和 CompatibilityMode 泄露 - 识别管道符分隔的机器密钥模式 (ValidationKey|Validation|DecryptionKey|Decryption|CompatibilityMode) - 针对已遭破坏的系统触发紧急行动警报 ### 二次载荷检测 - 识别 spinstall0.aspx 部署企图 - 检测 C# ASP.NET 载荷代码模式 - 识别 System.Web.Configuration.MachineKeySection 的使用 - 基于版本的路径检测 (`SP2013: WEBSER~1\15\ vs SP2016+: WEBSER~1\16\`) ## 安装说明 1. 克隆代码库: ``` git clone https://github.com/ZephrFish/CVE-2025-53770-Scanner cd CVE-2025-53770-Scanner ``` 2. 安装依赖项: ``` pip install -r requirements.txt ``` ## 用法 ### 基本用法 创建一个包含目标主机的文本文件(每行一个): ``` sharepoint1.example.com sharepoint2.example.net internal-sp.company.local ``` 运行扫描器: ``` python3 scanner.py -i hosts.txt python3 scanner.py -i hosts.txt -o results.json -l scan.log -t 20 -v ``` ### 命令行选项 | 选项 | 描述 | 默认值 | |--------|-------------|---------| | `-i, --input` | 主机列表文件路径(必填) | - | | `-o, --output` | 结果输出文件(.json、.csv、.txt) | None | | `-l, --logfile` | 用于记录详细日志的文件路径 | None | | `-t, --threads` | 并发线程数 | 10 | | `-v, --verbose` | 启用详细输出和日志记录 | False | ### 输出格式 #### JSON 输出 (`-o results.json`) ``` [ { "host": "sharepoint.example.com", "url": "https://sharepoint.example.com/_layouts/15/ToolPane.aspx?DisplayMode=Edit&a=/ToolPane.aspx", "scan_time": "2025-07-21T10:30:00.123456", "vulnerable": true, "status_code": 200, "response_size": 15432, "error": null, "response_time": 1.23 } ] ``` #### CSV 输出 (`-o results.csv`) 提供适合电子表格分析的表格数据,包含所有扫描指标的列。 #### 文本输出 (`-o results.txt`) 人类可读的格式,包含漏洞状态和扫描详情。 ## 漏洞详情 **CVE-2025-53770** 针对 SharePoint 的 ExcelDataSet 组件中的一个反序列化漏洞,该漏洞目前已在实际环境中遭到积极利用。扫描器可检测: ### 已识别的攻击模式 1. **初始利用**:向 `/_layouts/15/ToolPane.aspx?DisplayMode=Edit&a=/ToolPane.aspx` 发送带有序列化载荷的 POST 请求 2. **机器密钥提取**:成功的利用会返回管道符分隔的机器配置信息: ValidationKey|Validation|DecryptionKey|Decryption|CompatibilityMode 示例:[128-256 个十六进制字符]|HMACSHA256|[48-96 个十六进制字符]|AES|Framework45 3. **二次载荷**:部署 `spinstall0.aspx` 以实现持久化访问和密钥提取 4. **版本针对性**:针对不同 SharePoint 版本使用不同路径(15/ 与 16/ 布局) ### 实际攻击确认的 IOC - **User-Agent**:`Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:120.0) Gecko/20100101 Firefox/120.0` - **Referer**:`/_layouts/SignOut.aspx` - **Content-Length**:通常为 7699-8000+ 字节 - **载荷大小**:大型的 base64 编码 CompressedDataTable 参数 - **响应指标**:机器密钥字符串、spinstall0.aspx 部署 - **攻击基础设施**:65.38.121.198, 162.243.204.189, 165.22.18.129 ### 检测逻辑 扫描器会分析以下响应特征: 1. 机器密钥提取模式(严重置信度) 2. 二次载荷指标(高置信度) 3. ExcelDataSet/Scorecard 组件处理(中置信度) 4. ToolPane 错误模式及异常响应特征(低置信度) ## 安全注意事项 - 本工具仅专为**授权的安全测试**设计 - 在扫描任何系统之前,请确保已获得正当授权 - 扫描器默认使用 HTTPS,但接受自签名证书 - 日志可能包含敏感信息——需妥善保管 - 使用高线程数时请注意评估网络影响 ## 扫描会话示例 ``` $ python3 scanner.py -i corporate-sharepoint.txt -o vuln-results.json -l scan.log -v Starting scan of 150 hosts with 10 threads... Target CVE: CVE-2025-53770 (SharePoint ExcelDataSet deserialization) Logging to: scan.log Results will be saved to: vuln-results.json [+] VULNERABLE [CRITICAL]: sp-prod-01.acme.local [-] Not vulnerable: sp-dev-02.acme.local [!] ERROR: offline-sp.acme.local - Connection timeout [+] VULNERABLE [HIGH]: sp-legacy.acme.local Progress: 50/150 (33.3%) Progress: 100/150 (66.7%) Progress: 150/150 (100.0%) ============================================================ SCAN COMPLETE ============================================================ Total hosts scanned: 150 Vulnerable hosts: 3 Success rate: 97.3% VULNERABLE HOSTS (CVE-2025-53770): CRITICAL - MACHINE KEY EXTRACTED (1 hosts): • sp-prod-01.acme.local (Response time: 0.85s, Version: 2016+) WARNING: IMMEDIATE ACTION REQUIRED: Machine keys compromised HIGH CONFIDENCE (1 hosts): • sp-legacy.acme.local (Response time: 1.23s, Version: 2013-2016) LOW CONFIDENCE (1 hosts): • sp-archive.acme.local (Response time: 2.10s, Version: Unknown) Detailed results saved to: vuln-results.json ``` ## 故障排除 ### 常见问题 1. **连接超时**:增加超时时间或减少线程数 2. **SSL 错误**:扫描器默认禁用 SSL 警告 3. **权限错误**:确保对输出/日志文件具有写入权限 4. **内存使用**:在处理大量主机列表时请注意监控内存 ### 日志分析 启用详细日志记录 (`-v`) 和日志文件 (`-l`) 以进行详细的故障排除: ``` tail -f scan.log ``` ## 利用分析 ### 观察到的攻击载荷 扫描器包含对实际攻击中观察到的已确认利用模式的检测: #### 主要载荷结构 ``` POST /_layouts/15/ToolPane.aspx?DisplayMode=Edit&a=/ToolPane.aspx HTTP/1.1 Host: target.domain.com User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:120.0) Gecko/20100101 Firefox/120.0 Content-Length: 7699 Content-Type: application/x-www-form-urlencoded Referer: /_layouts/SignOut.aspx Connection: close MSOTlPn_Uri=http%3A%2F%2F{{host}}%2F_controltemplates%2F15%2FAclEditor.ascx &MSOTlPn_DWP=[ExcelDataSet payload with CompressedDataTable containing serialized exploit] ``` #### 二次载荷 (spinstall0.aspx) ``` <%@ Import Namespace="System.Diagnostics" %> <%@ Import Namespace="System.IO" %> ``` #### 预期的机器密钥响应格式 ``` ValidationKey: [128-256 character hex string] Validation: HMACSHA256|HMACSHA1|SHA1 DecryptionKey: [48-96 character hex string] Decryption: AES|DES|3DES CompatibilityMode: Framework20SP1|Framework45|Framework40 ``` ## 检测和监控指南 ### 检测 CVE-2025-53770 利用企图 组织应实施以下检测机制来识别潜在的利用企图: #### 1. Web 应用防火墙 (WAF) 规则 监控发往 SharePoint ToolPane 端点的可疑 POST 请求: ``` # 示例 WAF 检测规则模式 POST /_layouts/15/ToolPane.aspx* POST /_layouts/*/ToolPane.aspx* Query string: "DisplayMode=Edit&a=/ToolPane.aspx" Request body containing: "MSOTlPn_Uri", "MSOTlPn_DWP" Request body containing: "ExcelDataSet", "CompressedDataTable" Request body containing: "Scorecard:ExcelDataSet" Request body containing: "H4sIAAAAAAAEA" (gzip magic bytes in base64) Content-Length > 5000 bytes (typical payload size) User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:120.0) Referer: /_layouts/SignOut.aspx ``` **观察到的利用模式:** - 载荷大小通常为 7000-8000+ 字节 - `CompressedDataTable` 参数中包含 URL 编码的压缩数据 - 特定的 User-Agent 字符串:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:120.0) - Content-Type:application/x-www-form-urlencoded - 经常出现 Connection: close 标头 - 载荷中包含 base64 编码的序列化 .NET 对象 - 响应包含管道符分隔格式的机器密钥 - 发往已部署 spinstall0.aspx 文件的二次请求 #### 2. SharePoint ULS 日志 监控 SharePoint 统一日志记录服务 (ULS) 日志以查看: ``` Category: SharePoint Foundation Web Controls Level: Unexpected, Error, Critical Keywords: "ToolPane", "ExcelDataSet", "Deserialization" Process: w3wp.exe ``` ULS 日志中的关键指标: - ToolPane.aspx 处理过程中出现意外异常 - Microsoft.PerformancePoint 组件中出现反序列化错误 - w3wp.exe 中出现内存损坏或进程崩溃 #### 3. IIS 访问日志 监控 IIS 日志中的利用模式: ``` # 日志分析查询(替换为你的 SIEM 语法) cs-method="POST" AND cs-uri-stem="/_layouts/15/ToolPane.aspx" cs-method="POST" AND cs-uri-query="DisplayMode=Edit&a=/ToolPane.aspx" cs-bytes > 7000 (typical exploit payload size) cs(User-Agent)="Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:120.0) Gecko/20100101 Firefox/120.0" cs(Referer)="/_layouts/SignOut.aspx" sc-status=200 AND time-taken > 5000 (slow processing indicating deserialization) ``` **真实攻击中的特定 IOC:** ``` POST /_layouts/15/ToolPane.aspx?DisplayMode=Edit&a=/ToolPane.aspx Content-Length: 7699 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:120.0) Gecko/20100101 Firefox/120.0 Referer: /_layouts/SignOut.aspx Body contains: MSOTlPn_Uri=http%3A%2F%2F[domain]%2F_controltemplates%2F15%2FAclEditor.ascx Body contains: CompressedDataTable%3D%22H4sIAAAAAAAEANVa23LbSJLt3stEzMzu0%2F6AQs%2B2BJCiu%2BWQ ``` #### 4. 网络流量分析 监控网络流量以查看: - 发往 SharePoint 服务器的异常大小的 POST 请求 - 来自单一来源的对 ToolPane.aspx 的重复请求 - HTTP POST 正文中包含 base64 编码的载荷 - 针对 SharePoint 的非浏览器 User-Agent 字符串 #### 5. Windows 事件日志 监控 SharePoint 服务器上的 Windows 事件日志: ``` Event Log: Application Source: ASP.NET, SharePoint Foundation Event IDs: 1309, 1310 (application errors) Event Log: System Source: Application Error Process: w3wp.exe crashes ``` #### 6. SIEM 检测规则 ##### Splunk 检测查询: ``` index=iis source="*iis*" | search cs_method="POST" cs_uri_stem="/_layouts/15/ToolPane.aspx" cs_uri_query="DisplayMode=Edit&a=/ToolPane.aspx" | eval payload_size=tonumber(cs_bytes) | where payload_size > 7000 | search cs_User_Agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:120.0) Gecko/20100101 Firefox/120.0" | stats count by src_ip, cs_uri_stem, payload_size | sort -payload_size ``` ##### 针对真实攻击的增强检测: ``` index=iis | search cs_method="POST" AND cs_uri_stem="/_layouts/15/ToolPane.aspx" | where cs_bytes > 7000 AND cs_bytes < 10000 | search cs_Referer="/_layouts/SignOut.aspx" | eval attack_pattern=if(like(cs_User_Agent, "%Windows NT 10.0; Win64; x64; rv:120.0%"), "CVE-2025-53770", "Other") | where attack_pattern="CVE-2025-53770" | table _time, src_ip, cs_uri_query, cs_bytes, sc_status ``` ##### Elastic/Kibana 查询: ``` { "query": { "bool": { "must": [ {"term": {"http.request.method": "POST"}}, {"term": {"url.path": "/_layouts/15/ToolPane.aspx"}}, {"term": {"url.query": "DisplayMode=Edit&a=/ToolPane.aspx"}}, {"range": {"http.request.bytes": {"gte": 7000, "lte": 10000}}}, {"term": {"user_agent.original": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:120.0) Gecko/20100101 Firefox/120.0"}}, {"term": {"http.request.referrer": "/_layouts/SignOut.aspx"}} ] } } } ``` ##### CVE-2025-53770 的 Sigma 规则: ``` title: CVE-2025-53770 SharePoint ExcelDataSet Exploitation id: cve-2025-53770-sharepoint-exploit description: Detects exploitation attempts of CVE-2025-53770 SharePoint deserialization vulnerability references: - https://github.com/your-repo/CVE-2025-53770-Scanner author: Security Team date: 2025/07/21 logsource: category: webserver product: iis detection: selection: cs-method: 'POST' cs-uri-stem: '/_layouts/15/ToolPane.aspx' cs-uri-query: 'DisplayMode=Edit&a=/ToolPane.aspx' cs-bytes: - gte: 7000 - lte: 10000 cs-User-Agent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:120.0) Gecko/20100101 Firefox/120.0' cs-Referer: '/_layouts/SignOut.aspx' condition: selection falsepositives: - Legitimate SharePoint administrative activities level: high tags: - attack.initial_access - attack.t1190 - cve.2025.53770 ``` #### 7. 行为指标 留意以下攻击后行为: - 来自 SharePoint 服务器的异常出站网络连接 - 在 SharePoint 或 Active Directory 中创建的新用户账户 - 未经授权的文件上传或修改 - 权限提升企图 - 向其他系统的横向移动 ### 建议的响应措施 1. **紧急响应:** - 在防火墙/WAF 处拦截可疑的源 IP - 若确认遭到利用,请隔离受影响的 SharePoint 服务器 - 保留日志和内存转储以进行取证分析 2. **调查:** - 分析 POST 请求载荷中是否包含恶意内容 - 检查是否存在成功执行代码的指标 - 审查用户账户活动和权限更改 - 与其他安全事件进行关联分析 3. **遏制:** - 立即应用安全补丁 - 实施 WAF 规则以阻断利用企图 - 将 SharePoint 服务器与关键网络资源进行安全隔离 ### SIEM 集成示例 #### 将扫描结果导入 Splunk: ``` # 转换扫描结果以供 Splunk 摄取 python3 scanner.py -i hosts.txt -o results.json # 导入到 Splunk 索引 curl -k -H "Authorization: Splunk " -X POST \ "https://splunk-server:8088/services/collector" \ -d @results.json ```
标签:CISA项目, Python, SharePoint, 加密, 库, 应急响应, 无后门, 漏洞扫描器, 逆向工具