performing-kerberoasting-attack について
Active Directory の Kerberoasting 対策評価に使うセキュリティスキルです。SPN の調査からチケット抽出、オフライン解析、認証情報の検証まで、許可された評価の手順を示します。
主な機能
- 01SPN アカウントの列挙
- 02TGS チケットの要求と抽出
- 03チケットのオフライン解析
- 04認証情報の検証と権限評価
活用シーン
- 01許可された AD テストでの Kerberoasting 評価
- 02サービスアカウントの弱いパスワードの監査
- 03関連するインシデント対応の調査
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ mukul975/ anthropic-cybersecurity-skills --skill performing-kerberoasting-attackインストール後、Claude Code で/performing-kerberoasting-attackを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
LICENSEassets/template.mdreferences/api-reference.mdstandards.mdworkflows.mdscripts/agent.pyprocess.py詳細
Kerberoasting攻撃の実施
法的通知: このスキルは、許可を得たセキュリティテストおよび教育目的のみを想定しています。自身が所有していない、または書面によるテスト許可を得ていないシステムに対する無断での使用は違法であり、コンピュータ不正アクセス法などに抵触するおそれがあります。
概要
Kerberoastingは、Service Principal Name (SPN) が設定されたアカウントを対象に、Kerberos TGS (Ticket Granting Service) チケットを要求することで、Active Directory内のサービスアカウントを狙う侵入後の技術です。これらのチケットはサービスアカウントのNTLMハッシュで暗号化されているため、ログイン失敗イベントを発生させることなくオフラインでのブルートフォース解読が可能です。任意のドメインユーザーがTGSチケットを要求できるため、AD環境において最も一般的な権限昇格の経路の一つです。
使用するタイミング
- Kerberoasting攻撃を伴うセキュリティアセスメントを実施する場合
- 関連するセキュリティイベントに対してインシデント対応手順に従う場合
- 定期的なセキュリティテストまたは監査活動を実施する場合
- 実地テストを通じてセキュリティ対策を検証する場合
前提条件
- レッドチーミングの概念およびツールへの理解
- 安全に実行するためのテスト用またはラボ環境へのアクセス
- 必要な依存関係がインストールされたPython 3.8以上
- テスト活動に対する適切な許可
MITRE ATT&CKマッピング
- T1558.003 - Steal or Forge Kerberos Tickets: Kerberoasting(Kerberosチケットの窃取または偽造:Kerberoasting)
- T1087.002 - Account Discovery: Domain Account(アカウント探索:ドメインアカウント)
- T1069.002 - Permission Groups Discovery: Domain Groups(権限グループの探索:ドメイングループ)
ワークフロー
フェーズ1:SPN列挙
- LDAPクエリを使用して、SPNを持つアカウントを列挙する
- ユーザーアカウントでフィルタリングする(コンピュータアカウントは除外)
- 高い権限を持つアカウント(adminCount=1)を特定する
- 弱いパスワードポリシーが適用されているアカウントを優先する
フェーズ2:TGSチケット要求
- 特定したSPNアカウントに対してTGSチケットを要求する
- 解読可能な形式(hashcat/john互換)でチケットデータを抽出する
- 可能な場合はRC4暗号化を要求する(解読が容易になるため)
- 要求したすべてのチケットを文書化する
フェーズ3:オフライン解読
- RC4チケットにはhashcatモード13100(Kerberos 5 TGS-REP etype 23)を使用する
- AES-128にはhashcatモード19700(Kerberos 5 TGS-REP etype 17)を使用する
- AES-256にはhashcatモード19800(Kerberos 5 TGS-REP etype 18)を使用する
- パスワードポリシーに基づき、対象を絞った単語リストとルールを適用する
フェーズ4:認証情報の検証
- 解読された認証情報をドメインに対して検証する
- 侵害されたアカウントのアクセスレベルを評価する
- アカウントをBloodHoundの攻撃経路にマッピングする
- エンゲージメントレポート用に文書化する
ツールとリソース
| ツール | 目的 | プラットフォーム |
|---|---|---|
| Rubeus | Kerberoastingおよびチケット操作 | Windows (.NET) |
| Impacket GetUserSPNs.py | リモートKerberoasting | Linux/Python |
| PowerView | SPN列挙 | Windows (PowerShell) |
| hashcat | オフラインのパスワード解読 | クロスプラットフォーム |
| John the Ripper | オフラインのパスワード解読 | クロスプラットフォーム |
検知の指標
- イベントID 4769:RC4暗号化(0x17)によるKerberosサービスチケット要求
- 短時間に単一アカウントから発生する異常なTGS要求
- ユーザーが通常アクセスしないサービスへのTGS要求
- チケット要求を検知してアラートを出すハニーポットSPNアカウント
検証基準
- SPNアカウントを列挙し、文書化した
- TGSチケットを解読可能な形式で抽出した
- 適切な単語リストを用いてオフライン解読を試行した
- 解読された認証情報を検証した
- 侵害されたアカウントのアクセスレベルを評価した
コメント
Markdown 対応