0Pricing
Ethical Hacking Academy · レッスン

BloodHound

攻撃経路をマッピングします

「BloodHound」はCoddyKit上の無料Ethical Hacking Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはEthical Hacking Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Ethical Hacking Academyコースには全4レッスンが含まれています。

BloodHoundとは

BloodHoundは、Active Directory内の関係をグラフとしてマッピングするツールです。権限の低いユーザーからDomain Adminのような価値の高い標的に至る、隠れた攻撃経路を明らかにします。

複雑に絡み合った権限関係の中で人間が見落とすものを、BloodHoundはグラフ理論によって見つけ出します。

ノードとエッジ

BloodHoundは、ADをノード(ユーザー、グループ、コンピューター、OU、GPO)と、エッジ(関係)で構成されるモデルとして表現します。

エッジは、MemberOf、AdminTo、HasSession、GenericAllなどの権限を表します。エッジの連鎖が攻撃経路です。

コレクター:SharpHound

SharpHoundはデータコレクターです。ドメインに参加したコンテキストから実行すると、LDAPなどの情報源を照会し、オブジェクト、グループメンバーシップ、セッション、ACLを収集します。

収集したデータはJSON(zip形式)として出力され、その後BloodHoundのインターフェースにインポートします。

SharpHound.exe -c All --zipfilename loot.zip

収集方法

SharpHoundは-cを使って複数の収集方法をサポートしています。

  • Group:グループメンバーシップ。
  • Session:どのユーザーがどこにログインしているか。
  • ACL:オブジェクトの権限。
  • All:すべて(ノイズは増えますが、より完全です)。

大規模な収集は検知のリスクがあるため、攻撃者は間隔を空けたり、対象を限定したりすることがあります。

Pythonとリモート収集

Windows上でSharpHoundを実行できない場合は、bloodhound-pythonを使い、ドメイン認証情報でLDAP経由のリモート収集を行えます。

これは、想定侵害テストでLinuxの攻撃用マシンから実行する場合に適しています。

bloodhound-python -u lowuser -p Password1 -d corp.local -ns 10.0.0.10 -c All

データのインポート

BloodHoundはバックエンドにNeo4jグラフデータベースを使用します。Neo4jを起動してBloodHound GUIにログインし、収集したzipファイルをインターフェースにドラッグしてインポートします。

インポート後は、事前に用意されたクエリを実行したり、Cypherで独自のクエリを作成したりできます。

事前構築された分析クエリ

BloodHoundには、次のような強力な定型クエリが用意されています。

  • Shortest Paths to Domain Admins。
  • Find Principals with DCSync Rights。
  • Kerberoastable Accounts。

現在のユーザーを「Owned」としてマークすると、BloodHoundは自分が制御している地点から始まる経路を計算できます。

攻撃経路の読み方

攻撃経路は、次のように表されることがあります。自分のユーザーが、別のユーザーに対してGenericAllを持つグループのMemberOfであり、そのユーザーが、Domain Adminがセッションを持つサーバーに対してAdminToである。

各エッジは、次のホップに必要な具体的な手法を示すため、グラフを手順に沿った計画へ変換できます。

危険なACLエッジ

特に悪用されやすいエッジには、ACLベースの権限があります。

  • GenericAll / GenericWrite:オブジェクトに対する完全または広範な書き込み権限。
  • WriteDacl / WriteOwner:オブジェクトの権限を掌握します。
  • ForceChangePassword:対象のパスワードをリセットします。

これらを使えば、ハッシュをクラッキングすることなく権限を昇格できます。

Cypherクエリ

独自の分析を行う場合は、Neo4jのクエリ言語であるCypherを記述できます。組み込みクエリでは扱えない特定の条件を探索できます。

たとえば、機密性の高いサーバーへの経路を持つすべてのユーザーを見つけることができます。

MATCH p=shortestPath((u:User {owned:true})-[*1..]->(g:Group {name:'DOMAIN ADMINS@CORP.LOCAL'})) RETURN p

防御への活用

BloodHoundは攻撃者だけが使うツールではありません。防御側も自組織のADを監査し、意図しない攻撃経路を見つけ、攻撃者に悪用される前に危険な権限を整理するために使用します。

ACLを厳格化し、不要になった管理者権限を削除し、セッションへの露出を制限することで、攻撃者がたどれるグラフを縮小できます。

確認問題

SharpHoundの役割を思い出してください。

まとめ

これでBloodHoundについて理解できました。

  • ノードと関係を表すエッジからなるグラフとしてADをモデル化します。
  • SharpHound(またはbloodhound-python)がデータを収集し、Neo4jを基盤とするGUIに取り込みます。
  • 事前構築されたクエリとCypherクエリによって、Domain Adminへの最短経路を明らかにできます。
  • GenericAllやWriteDaclなどのACLエッジにより、クラッキングなしで権限を昇格できます。

これでActive Directory Attacksコースは完了です。

よくある質問

「BloodHound」レッスンは無料ですか?

はい。「BloodHound」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Ethical Hacking Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Ethical Hacking Academyコースには全4レッスンが含まれています。

「BloodHound」で何を学びますか?

攻撃経路をマッピングします ブラウザで直接実行するハンズオンコードでEthical Hacking Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Ethical Hacking Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのEthical Hacking Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「BloodHound」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このEthical Hacking Academyレッスンでコードを書いて実行できますか?

はい。すべてのEthical Hacking Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. ADの基礎
  2. Kerberoasting
  3. Pass-the-Hash
  4. BloodHound
← Ethical Hacking Academyに戻る