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フィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- ADの基礎
- Kerberoasting
- Pass-the-Hash
- BloodHound