detecting-golden-ticket-attacks-in-kerberos-logs について
偽造 Golden Ticket を調査するセキュリティ分析担当者向けの Kerberos ログハンティングスキルです。Windows イベントを相関し、チケット要求、暗号化、有効期間、SID の異常を特定します。
主な機能
- 01Kerberos イベントログの相関
- 02RC4 暗号化の異常検出
- 03チケット有効期間の異常検知
- 04TGS と TGT 要求順序の確認
- 05KRBTGT パスワード更新の追跡
活用シーン
- 01KRBTGT ハッシュ窃取の可能性を調査
- 02ドメイン内の永続アクセスを探索
- 03暗号化方式のダウングレードを分析
- 04修復後の Golden Ticket の残存を確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ mukul975/ anthropic-cybersecurity-skills --skill detecting-golden-ticket-attacks-in-kerberos-logsインストール後、Claude Code で/detecting-golden-ticket-attacks-in-kerberos-logsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
LICENSEreferences/api-reference.mdscripts/agent.py詳細
Kerberos ログで Golden Ticket 攻撃を検出する
使用するタイミング
- DCSync または NTDS.dit の抽出により、KRBTGT アカウントのハッシュが漏えいした可能性がある場合
- ドメインへの永続的なアクセスに使われる偽造 Kerberos チケットを調査する場合
- インシデント対応により、ドメインレベルでの認証情報窃取が判明した後
- 不可能なログオンパターン(ユーザーが複数の場所から同時にログインするなど)を調査する場合
- Golden Ticket が使用されているかを判断するため、侵害後の評価を行う場合
前提条件
- ドメインコントローラーで Windows セキュリティイベント ID 4768、4769、4771 を記録していること
- Kerberos ポリシー設定(チケットの最大有効期間、暗号化の種類)に関する知識
- Kerberos サービスチケット操作を有効にしたドメインコントローラーの監査ポリシー
- 複数の DC にまたがる Kerberos イベントを相関できる SIEM
ワークフロー
- TGT リクエストを監視する(イベント 4768):Kerberos 認証サービスへのリクエストを追跡します。Golden Ticket は AS-REQ/AS-REP の交換を完全に迂回するため、4769 の前に 4768 がない場合は疑わしい兆候です。
- 暗号化の種類の異常を検出する:Golden Ticket では RC4(0x17)暗号化がよく使われます。ドメインで AES(0x12)を強制している場合、RC4 TGT はすべて危険信号です。イベント 4769 の TicketEncryptionType を監視します。
- チケット有効期間の異常を確認する:Kerberos TGT のデフォルトの有効期間は 10 時間で、更新期間は 7 日間です。Golden Ticket は有効期間を 10 年にして偽造できます。ポリシーの期間を超えるチケットを検出します。
- 存在しない SID を探す:Golden Ticket には、任意の SID(存在しないアカウントやグループを含む)を含めることができます。TGS リクエストを既知の AD SID インベントリと照合します。
- 先行する TGT のない TGS を検出する:同じ IP/アカウントからの先行する TGT リクエスト(4768)がないのにサービスチケット(4769)が現れた場合、既存の Golden Ticket を示している可能性があります。
- KRBTGT パスワードの経過期間を監視する:KRBTGT が最後にリセットされた時期を追跡します。既知の侵害以降に KRBTGT のハッシュが変更されていない場合、その期間に作成された Golden Ticket は引き続き有効です。
- PAC 署名を検証する:KB5008380 以降で PAC 検証が強制されている場合、ドメインコントローラーは偽造 PAC を拒否します。PAC 検証エラーを示す Kerberos の失敗を監視します。
検出クエリ
Splunk — Kerberos TGS の RC4 暗号化
index=wineventlog EventCode=4769
| where TicketEncryptionType="0x17"
| where ServiceName!="krbtgt"
| stats count by TargetUserName ServiceName IpAddress TicketEncryptionType Computer
| where count > 5
| sort -count
Splunk — 先行する TGT のない TGS
index=wineventlog (EventCode=4768 OR EventCode=4769)
| stats earliest(_time) as first_tgt by TargetUserName IpAddress EventCode
| eventstats earliest(eval(if(EventCode=4768, first_tgt, null()))) as tgt_time by TargetUserName IpAddress
| where EventCode=4769 AND (isnull(tgt_time) OR first_tgt < tgt_time)
| table TargetUserName IpAddress first_tgt tgt_time
KQL — Golden Ticket の兆候
SecurityEvent
| where EventID == 4769
| where TicketEncryptionType == "0x17"
| where ServiceName != "krbtgt"
| summarize Count=count() by TargetUserName, IpAddress, ServiceName
| where Count > 5
よくあるシナリオ
- DCSync 後の Golden Ticket:KRBTGT のハッシュを抽出した後、攻撃者は Domain Admin SID を含み、KRBTGT が 2 回ローテーションされるまで数か月間有効な TGT を偽造します。
- RC4 へのダウングレード:AES のみを使用する環境で、RC4 暗号化を使用した Golden Ticket が偽造されます。暗号化の種類の不一致から検出できます。
- ドメイン間の Golden Ticket:偽造されたインターレルム TGT を使い、AD ドメイン/フォレスト間を横展開します。
- 修復後の永続化:KRBTGT のローテーションが 1 回しか行われなかったため(現在と以前の両方のハッシュが有効)、パスワードリセット後も Golden Ticket が有効なままです。
出力形式
Hunt ID: TH-GOLDEN-[DATE]-[SEQ]
Suspected Account: [Account using forged ticket]
Source IP: [Client IP]
Target Service: [SPN accessed]
Encryption Type: [RC4/AES128/AES256]
Anomaly: [No prior TGT/RC4 in AES environment/Extended lifetime]
KRBTGT Last Reset: [Date]
Risk Level: [Critical]
コメント
Markdown 対応