PR 本記事には広告(Amazonアソシエイト・もしもアフィリエイト・A8.net等)が含まれます。掲載情報の正確性には努めていますが、商品の詳細は必ずリンク先で最新情報をご確認ください。

【AD・Kerberos編】ドメイン全体を狙う攻防とBloodHoundで読む経路|CTF思考フレームワーク P05

【AD・Kerberos編】ドメイン全体を狙う攻防とBloodHoundで読む経路|CTF思考フレームワーク P05 アイキャッチ画像
安全に生きたい編集部

AD と Kerberos って、企業 Windows の認証だよね?それも狙われるの?🏢

むしろ最大の標的。Active Directory はWindows 企業の中枢、Kerberos はその認証プロトコル。Kerberoasting・AS-REP Roasting・DCSync・Golden Ticket・Silver Ticket――AD 攻撃のテクニックは無数で、BloodHound で経路が可視化できます。

AD(Active Directory)と Kerberos は、Windows 企業ネットワークの中枢。Kerberoasting(SPN を持つサービスアカウントのチケットを抽出→オフライン解析)、AS-REP Roasting、DCSync(KRBTGT ハッシュ取得)、Golden/Silver Ticket、Constrained Delegation――BloodHound で経路を可視化できます。

広告・PRを含みます。この記事にはアフィリエイトリンクが含まれます。掲載内容は編集方針に基づいて作成していますが、価格・在庫・キャンペーン内容はリンク先で最新情報を確認してください。

BloodHound で攻撃経路が地図になるって、すごい技術…

この記事は、CTF思考フレームワーク Privesc編 P05。AD・Kerberos 攻防の基本(Kerberoasting・AS-REP・DCSync・Golden Ticket)、BloodHound での経路分析、企業の防御策(Tier-0 分離・KRBTGT定期更新・MFA)を整理します。

Active Directory(AD)とKerberosは企業ネットワークの心臓部。一般ユーザー1つを取られると、設計次第ではDomain Admin(DA)まで一直線という怖さがあります。Kerberoasting、AS-REP Roasting、DCSync、Golden Ticket…CTFでも実戦でも華のある分野です🏰

AD攻略は「ドメイン内のたった1つの隙間」を探す宝探し。BloodHoundが見せてくれる経路図を読めるようになるのが第一歩です。

この記事で出てくる言葉

先に意味を押さえておくと読みやすい用語です。

  • CTF: セキュリティの練習問題を解く競技。必ず許可された環境だけで試します。
  • 権限昇格: 一般ユーザーから管理者権限など、より強い権限を得ることです。
  • 横展開: 侵入後に別の端末やサーバーへ移動して被害範囲を広げる動きです。
  • Kerberos: Windowsの社内ネットワークなどで使われる認証の仕組みです。
  • Active Directory: Windows環境でユーザー、端末、権限をまとめて管理する仕組みです。
この記事の難易度

難易度:★★★(上級) / この枝ルートの記事は、必要な回だけ選んで読めます。

👀 観察フェーズ:まず何を見る?

BloodHound+SharpHound(または ldapsearch / impacket-getADUsers)で1回データ収集すれば、ほぼ全構造が可視化されます。

🤔 仮説フェーズ:攻撃者は何を考える?

攻撃者は一般ユーザーの認証情報を入手した瞬間、まず「SPN が登録されたサービスアカウントはあるか」「DONT_REQ_PREAUTH のアカウントは残っていないか」を確認します。SPN があれば Kerberoasting で TGS-REP を持ち出し、オフラインで弱いサービスパスワードを総当たりするルートが開けます。AS-REP Roasting が刺されば事前認証なしで RC4-HMAC のハッシュが取れるため、辞書攻撃の効率が跳ね上がります。さらに BloodHound で AdminTo・CanPSRemote・GenericAll などのエッジを辿り、Domain Admin に最短で到達する経路を可視化するのが定番の発想です。

AD攻略は「経路探し」。BloodHoundで道が見えれば、あとはコマンドを叩くだけのことが多いです。

🔬 検証フェーズ:どうやって確かめる?

検証はまず impacket の GetUserSPNs.py や GetNPUsers.py で Kerberoasting・AS-REP Roasting に該当するアカウントの有無を列挙するところから始めます。SharpHound を Collection Method All で走らせて Neo4j に投入すれば、Shortest Path from Owned to Domain Admins のクエリで実際の到達経路が描画されます。MSSQL や Web サービスを経由できるなら、xp_dirtree や UNC パスのレスポンスを使った NetNTLMv2 Relay の成否を Responder と ntlmrelayx で確認します。最後に DCSync 権限の有無を impacket-secretsdump で試し、krbtgt ハッシュが抜けるか、抜けるならどの委任権限が悪用されているのかを記録に残します。

⚔️ 攻撃フェーズ:実際の手口

代表的な攻撃チェーンは、フィッシングで取得した一般ユーザー権限から始まります。GetUserSPNs.py で SQL サービスアカウントの TGS を抜き、hashcat -m 13100 で 1 時間以内に平文パスワードを復元します。そのアカウントが偶然「Account Operators」に所属していると、BloodHound 上で Domain Controller を除く全コンピュータへの GenericAll が見え、Resource-Based Constrained Delegation を悪用して任意ホストで SYSTEM が取れます。最終段では Rubeus で krbtgt の TGT を発行する Golden Ticket を作り、ドメイン内の任意サービスへ Pass-the-Ticket で接続し続けるという、永続化まで含めたシナリオに発展します。

CTF{ad_security_lives_or_dies_with_kerberos_hygiene}

AD攻略は「設計の癖」を読むゲーム。BloodHoundが提示する経路は、防御側にも同じく見えるべきものです。

🛡️ 防御フェーズ:どう守る?

AD 防御の出発点は Tier モデルによる管理者アカウントの分離で、Tier-0 アカウントを通常端末へログオンさせない PAW 運用を徹底します。サービスアカウントは gMSA に置き換えて 30 日ローテと AES のみ許可に統一し、Kerberoasting で抜かれても辞書攻撃が成立しないようパスワード長を 25 文字以上にします。krbtgt のパスワードは半年に一度、必ず二回連続でリセットする運用を組み込み、Golden Ticket の有効期限を強制的に切り詰めます。BloodHound を青チーム側で日次実行し、危険なエッジ(DCSync・GenericAll・Unconstrained Delegation)を是正タスクとしてチケット化する継続運用が、最終的な堅牢化に直結します。

🧪 検証用のLinuxラボを用意

権限昇格やエクスプロイトの練習は、許可を得た自分の検証環境で行うのがルール。💻 ConoHa VPSならUbuntuやCentOSをワンクリックで立てて、スナップショットも取れるので安心して試せます。

PR / 広告

ConoHa VPS

※ 上記は他社サービスへのリンクです。購入は各自でご判断ください。

⚠️ よくある落とし穴

AD 運用で頻出する失敗は、長年放置された「歴史的経緯」のアカウントに起因します。退職者の SPN 付きサービスアカウントが残り、パスワードが 8 文字のままという状態は Kerberoasting にとって理想的な標的になります。Domain Admin での日常作業も典型的な悪手で、管理者の RDP セッションから抜き取られた TGT は即座に Pass-the-Ticket の素材になります。さらに BloodHound を「攻撃ツール」と敬遠して防御側が使わないと、自分の AD にどんな攻撃経路があるかを攻撃者だけが知っている状況になり、検知も是正も後手に回り続けます。

  1. サービスアカウントのパスワードを「覚えやすい」短いものにする。
  2. PASSWD_NOTREQD や PreAuth無効の古いアカウントを残したまま運用。
  3. Domain Admins に所属するアカウントで一般PCにログオンする。
  4. LAPS未導入で、ローカル管理者パスワードが全PC共通。
  5. BloodHoundを「攻撃ツール」と敬遠し、自社向け診断に使わない。
  6. krbtgtパスワードの定期ローテをしない(Golden Ticket永続を許す)。

🧰 ツール早見表

AD・Kerberos の攻防では、列挙・チケット操作・防御監査の三カテゴリで道具を揃えるのが基本です。列挙は SharpHound と BloodHound で関係グラフを描き、PowerView や ldapsearch でユーザー属性を補完します。チケット操作は Rubeus と impacket(GetUserSPNs・GetNPUsers・secretsdump・ticketer)で TGT/TGS を抜き、Mimikatz で Pass-the-Ticket や DCSync を再現します。防御側は PingCastle や Purple Knight で AD の健康診断を行い、Microsoft Defender for Identity で異常な認証パターンを可視化するのが定番です。下表は攻防双方で使われる代表的な組み合わせをまとめたものです。

ツール用途ひと言
BloodHound + SharpHoundAD関係性可視化攻防両方に必須
Impacket suitePythonベースの攻撃ツール群GetUserSPNs / GetNPUsers / secretsdump
RubeusC# Kerberos操作TGT/TGS関連何でも
Mimikatz資格情報・チケット操作古典かつ強力
PingCastle / Purple KnightAD監査(防御側)自社向け健康診断

🎓 本気で学びたい人へ

Linuxとサーバ・セキュリティを仕事レベルで学びたい方へ。🎓 ササエルはインフラエンジニア向けスクールで、システム設計から防御設計まで広くカバーしています。

PR / 広告

ササエル

📚 もっと深く学びたい人へ

体系的に学ぶなら『ホワイトハッカー入門』、手を動かして覚えるなら『TryHackMeを使って身体で覚える攻撃手法と脆弱性』が定番。両方持っておくと、知識と実践の両輪で伸びます📚

📚 次に読みたい

✍️ 学んだことを発信する

学んだことをブログにまとめるなら、高速で安価なConoHa WINGが使いやすいです。

PR / 広告

ConoHa WING

⚖️ 大事なお約束

記事URLをコピーしました