コンテンツにスキップ

For detailed installation instructions, refer to the official BloodHound documentation.

BloodHound 8.0 with OpenGraph チートシート

概要

BloodHound 8.0は、広く使用されているオープンソースの攻撃パス管理ツールの大幅なアップデートです。最も重要な新機能はOpenGraphで、BloodHoundの機能をActive Directoryを超えて、GitHub、Snowflake、その他のさまざまなシステムにまたがるアイデンティティ攻撃パスをマッピングできるようになりました。

BloodHound 8.0の主な機能

  • OpenGraph: Active Directoryだけでなく、任意のソースからデータを取り込み、分析できる新しい拡張可能なグラフモデル。
  • 拡張された攻撃パス: 複数のプラットフォームとサービスにわたる攻撃パスを可視化および分析。
  • 改善されたユーザビリティ: 改良されたユーザーインターフェースにより、情報への高速かつ明確なアクセスを実現。
  • 拡張性の向上: 新しいデータソースと攻撃プリミティブの追加が容易に。
  • コミュニティ主導: BloodHoundコミュニティが新しいデータソース用のカスタムコレクターとクエリを作成および共有可能。

OpenGraphの概念

  • ノード: ユーザー、グループ、ロール、コンピューターなどのオブジェクトを表現。
  • エッジ: 「MemberOf」や「AdminTo」などのノード間の関係を表現。
  • 攻撃パス: 攻撃者が特権アクセスを得るために使用できるエッジのチェーン。
  • コレクター: ターゲットシステムからデータを収集し、BloodHound用にフォーマットするスクリプト。

インストールとアップグレード

# For detailed installation instructions, refer to the official BloodHound documentation.
# Generally, you will need to download the latest release from the SpecterOps GitHub.

# Example of running the BloodHound GUI (replace with actual command)
./BloodHound-linux-x64

データ収集(インジェスター)

BloodHoundはコレクター(インジェスター)を使用してデータを収集します。BloodHound 8.0では、OpenGraphフォーマットをサポートする更新されたコレクターを使用する必要があります。

  • SharpHound: Active Directory用の公式コレクター。
  • AzureHound: Azure用の公式コレクター。
  • コミュニティコレクター: GitHub、AWS等の他のプラットフォーム用のコミュニティ開発のコレクターを探してください。

一般的なCypherクエリ

BloodHoundはCypherクエリ言語を使用します。いくつかのクエリ例を示します:

// Find all Domain Admins
MATCH (u:User)-[:MemberOf*1..]->(g:Group {name: "DOMAIN ADMINS@your.domain"}) RETURN u.name, g.name

// Find the shortest path to Domain Admin from a specific user
MATCH (u:User {name: "user@your.domain"}), (g:Group {name: "DOMAIN ADMINS@your.domain"}), p = shortestPath((u)-[*1..]->(g)) RETURN p

// Find all computers where a specific user is an admin
MATCH (u:User {name: "user@your.domain"})-[r:AdminTo]->(c:Computer) RETURN u.name, c.name

OpenGraphの使用

OpenGraphにより、さまざまなソースからデータを取り込み、クロスプラットフォームの攻撃パスを見つけるカスタムクエリを作成できるようになりました。

例シナリオ: 機密性の高いGitHubリポジトリにアクセスできるコンピューターの管理者であるユーザーを見つける。

// Example query (syntax may vary based on the collector)
MATCH (u:User)-[:AdminTo]->(c:Computer)-[:HasAccessTo]->(r:GitHubRepo {name: "sensitive-repo"}) RETURN u.name, c.name, r.name
```**データ取り込み**: SharpHoundを使用してADデータを収集し、コミュニティコレクターを使用してGitHubデータを収集。https://specterops.io/blog/2025/07/29/bloodhound-v8-usability-extensibility-and-opengraph/**カスタムクエリ **: ADユーザーをコンピューターに、そしてコンピューターをGitHubリポジトリにリンクするCypherクエリを作成。
https://github.com/SpecterOps/BloodHound
### 追加リソース

-   [SpecterOpsブログ: BloodHound v8 発表](https://bloodhoundgang.herokuapp.com/)
-   [BloodHound GitHub リポジトリ](