生产环境安全扫描器,用于检测 CVE-2026-25177 的利用行为 —— Active Directory SPN Unicode 冲突漏洞(CVSS 8.8)。
该漏洞允许任何拥有 SPN 写入权限的已认证用户,通过向服务主体名称(SPN)中注入 Unicode 字符来将权限提升至 SYSTEM,从而绕过 AD 的 SPN 重复校验,并导致 Kerberos 票据错误签发。
read_only=True 方式打开;不可能进行任何修改(servicePrincipalName=*),与内置工具(如 setspn -Q)使用的轻量级查询相同pip install -r requirements.txt
# 在已加入域的机器上 —— 自动检测 DC、域和用户名
# 安全地提示输入密码(绝不会显示在终端或命令历史中)
python detect_spn_abuse.py
# 自动检测并生成 CSV 报告及近期变更检测
python detect_spn_abuse.py --csv report.csv --days 7
# 仅指定用户名(其余自动检测)
python detect_spn_abuse.py -u svc_scanner
# 完全手动指定
python detect_spn_abuse.py -dc dc01.corp.local -d corp.local -u scanner_svc
# 使用 LDAPS(端口 636)
python detect_spn_abuse.py --use-ssl
注意: 如果省略 -p,脚本会安全地提示您输入密码 —— 密码不会出现在终端或命令历史中。
+==============================================================+
| CVE-2026-25177 - SPN Unicode 冲突检测器 |
| 只读扫描 - 生产环境安全 |
+==============================================================+
[+] 已通过 NTLM:389 连接(只读)
[*] 正在扫描所有包含 SPN 的账户...
[+] 已扫描 247 个账户,共 1,042 个 SPN
======================================================================
扫描结果:1 项发现
严重:1 | 高危:0 | 信息:0
======================================================================
[严重] 发现 1:SPN 包含 1 个可疑 Unicode 字符
────────────────────────────────────────────────────────────
账户: jsmith
DN: CN=jsmith,CN=Users,DC=corp,DC=local
SPN: HTTP/webserver.corp.local
SPN 十六进制: 48545450e2808b2f7765627365727665722e636f72702e6c6f63616c
修改时间:2026-03-13 14:22:17+00:00
位置 4:U+200B - 零宽空格 [不可见]
======================================================================
建议操作:
1. 立即调查存在严重发现的账户
2. 移除所有包含 Unicode 字符的 SPN
3. 检查事件日志中的 SPN 修改事件(事件 ID 4742)
4. 审查委派权限(谁可以写入 SPN)
5. 应用 Microsoft 针对 CVE-2026-25177 的补丁
如需在 DC 完成修补前每日扫描,可设置计划任务(Windows)或 cron 作业(Linux):
Windows(任务计划程序):
schtasks /create /tn "CVE-2026-25177 Scanner" /tr "python C:\path\to\detect_spn_abuse.py -dc dc01.corp.local -d corp.local -u scanner_svc -p 'password' --csv C:\logs\spn_scan.csv --days 1" /sc daily /st 06:00
Linux(cron):
0 6 * * * python3 /opt/detect_spn_abuse.py -dc dc01.corp.local -d corp.local -u scanner_svc -p 'password' --csv /var/log/spn_scan.csv --days 1
CVE-2026-25177 于 2026 年 3 月 10 日披露(CVSS 8.8)。该漏洞影响从 2012 到 2025 的所有 Windows Server 版本。攻击仅需具备委派 SPN 写入权限的标准域用户凭据 —— 这是企业环境中的常见配置。
Microsoft 已发布补丁。请立即应用。
MIT 许可证 —— 可自由使用、修改和分发。参见 LICENSE。