
CVE-2026-25177 — Active Directory SPN Unicode 衝突の脆弱性(CVSS 8.8)の悪用を検出する、本番環境で安全に使用できるスキャナーです。
この脆弱性により、SPN 書き込み権限を持つ認証済みユーザーは、Service Principal Name に Unicode 文字を注入することで SYSTEM への権限昇格が可能となり、AD の SPN 重複検証を回避して Kerberos チケットの誤発行を引き起こします。
read_only=True で開かれます。変更は一切不可能ですsetspn -Q などの組み込みツールで使用される軽量なクエリと同じ (servicePrincipalName=*) を検索します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 Collision Detector |
| Read-only scan - safe for production |
+==============================================================+
[+] Connected via NTLM:389 (read-only)
[*] Scanning all accounts with SPNs...
[+] Scanned 247 accounts, 1,042 SPNs
======================================================================
SCAN RESULTS: 1 finding(s)
CRITICAL: 1 | HIGH: 0 | INFO: 0
======================================================================
[CRITICAL] Finding 1: SPN contains 1 suspicious Unicode character(s)
────────────────────────────────────────────────────────────
Account: jsmith
DN: CN=jsmith,CN=Users,DC=corp,DC=local
SPN: HTTP/webserver.corp.local
SPN Hex: 48545450e2808b2f7765627365727665722e636f72702e6c6f63616c
Modified: 2026-03-13 14:22:17+00:00
Position 4: U+200B - Zero-Width Space [invisible]
======================================================================
RECOMMENDED ACTIONS:
1. Investigate accounts with CRITICAL findings immediately
2. Remove any SPNs containing Unicode characters
3. Check Event Log for SPN modification events (Event ID 4742)
4. Review delegation permissions (who can write SPNs)
5. Apply Microsoft patch for 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)。Windows Server 2012 から 2025 までのすべてのバージョンに影響します。この攻撃には、委任された SPN 書き込み権限を持つ標準的なドメインユーザー資格情報のみが必要です — これはエンタープライズ環境では一般的な構成です。
Microsoft はパッチをリリースしています。直ちに適用してください。
MIT ライセンス — 自由に使用、変更、配布できます。LICENSE を参照してください。