
SharpHound/AzureHoundのJSONに対応したオフラインAD/Entra攻撃経路アナライザー。BloodHoundやNeo4jを必要とせずに、優先順位付けされた特権昇格、資格情報、および誤構成の検出結果を提示します。
SquidSec オープンソースプロジェクト
SquidOffense.com ·
GitHub
BloodBash は、SquidSec によって作成・管理されているオープンソースのオフライン SharpHound および AzureHound JSON アナライザーです。グラフを構築し、AD/Entra の攻撃パスと設定ミスを浮き彫りにし、優先順位付けされた検出事項を出力します。Neo4j や BloodHound UI は不要です。
| 組織 | SquidSec |
| ウェブサイト | https://squidoffense.com/ |
| アプリバージョン | v1.4.2 |
| 最新バイナリ | |
| ライセンス | MIT |
| ランタイム (ソース) | Python 3.9+ |
main へのマージは自動的に Linux および Windows バイナリをビルドし、GitHub Release (タグ v1.4.2-build.N) を公開します。
BloodBash は SquidSec によってセキュリティコミュニティ向けに構築・維持されています - BloodHound インフラを立ち上げることなく、迅速なオフライン AD/Entra 分析を必要とするレッドチーマー、ペネトレーションテスター、ディフェンダー向けです。
スタンドアロンの SquidSec BloodBash 実行ファイル - Python、pip、venv は不要です:
| プラットフォーム | 最新ダウンロード |
|---|---|
| Linux x64 | bloodbash-linux-x64 |
| Windows x64 | bloodbash-windows-x64.exe |
# Linux
curl -sL -o bloodbash \
https://github.com/DotNetRussell/BloodBash/releases/latest/download/bloodbash-linux-x64
chmod +x bloodbash
./bloodbash /path/to/json --all
# Windows (PowerShell)
Invoke-WebRequest -Uri "https://github.com/DotNetRussell/BloodBash/releases/latest/download/bloodbash-windows-x64.exe" `
-OutFile bloodbash.exe
.\bloodbash.exe C:\path\to\json --all
pipx install git+https://github.com/DotNetRussell/BloodBash
またはクローンから:
git clone https://github.com/DotNetRussell/BloodBash.git
cd BloodBash
python3 -m venv venv && source venv/bin/activate
pip install -r requirements.txt
依存関係: networkx、rich、tqdm、pyyaml。
まずはこの3つから(SharpHound/AzureHoundのディレクトリまたは.zipを指定):
# 1) Day-0 triage - default when you pass only the data path
bloodbash /path/to/json
# same as:
bloodbash /path/to/json --quick-wins
# 2) Just owned a user - outbound compromise dossier
bloodbash ./sharpout --from-user alice --from-user-export
# 3) Full attack analysis (large env: --fast auto on big graphs)
bloodbash /path/to/json --all --fast
# inventory ladders still opt-in:
bloodbash /path/to/json --all --inventory
ソースチェックアウトから、python3 BloodBash.py は bloodbash と同等です。
# Binary / pipx
./bloodbash /path/to/json
bloodbash /path/to/json --from-user alice --from-user-export
# Multi-collection merge (low-priv + DA zip, multi-domain forest)
bloodbash ./lowpriv.zip --merge ./da.zip ./child-domain.zip --all --fast
ベアディレクトリ(チェックフラグなし)は quick-wins トリアージを実行します。完全な攻撃パス分析(インベントリではない)には --all を、対話形式のピッカーには --wizard を使用します。
--all および --quick-wins では、空の検出セクションは抑制されるため、コンソールは読みやすい状態に保たれます。選択的フラグでは、要求したチェックに対して緑色の「none found」行が引き続き出力されます。
サンプルデータ: SampleSharphoundADData/ および SampleAzurehoundData/。
bloodbash --help # start-here + cheat sheet
bloodbash --help-advanced # full flag tables + all examples
詳細なレシピ: docs/cookbook.md。
| 領域 | チェック項目 |
|---|---|
| AD 権限 | DCSync(GetChanges+GetChangesAll、ネストされた DA/EA は想定内として扱う)、高価値オブジェクト上の危険な ACL、興味深い非 HV ACL 悪用(ユーザー/コンピューター/グループに対する ForceChangePassword / GenericAll / GenericWrite、コンピューターの GenericWrite 一括ノイズは抑制)、GPO 悪用、RBCD(設定済み + 設定可能)、制約付き/制約なし委任(DC 対 非 DC セクション)、SID 履歴、ドメイン信頼(--trust) |
| AD 資格情報 | Kerberoast 可能、AS-REP roast 可能(AdminCount / OWNED / LASTLOG タグ付き)、特権 roast(--privileged-roast: roast 可能 + ネストされた DA/EA / AdminCount)、シャドウ資格情報、説明欄のパスワード、PasswordNeverExpires / PasswordNotRequired。SharpHound の sensitive(NOT_DELEGATED)は roast 候補を除外しない |
| ADCS | ESC1-ESC7(コレクターのプロパティが存在する場合は ESC8/ESC9/ESC13 も)。ESC10-12 はレジストリ/HTTP ロールデータが必要で、SharpHound には存在しないことが多い。zip に証明書オブジェクトがない場合はソフトメッセージを表示 |
| Azure / Entra | 特権ロール、アプリ/SP 資格情報の制御パス、明示的な MFA 無効化、ゲストユーザー、SP 悪用権限 |
| パス | 高価値ターゲットへの最短パス(--fast では限定セット、HV には Builtin Administrators とドメインコントローラーコンピューターを含む)、所有プリンシパル(--owned = インバウンド)、カスタム --path-from / --path-to |
| 侵害ドシエ | --from-user / --compromise: アウトバウンドメンバーシップ、AdminTo/RDP/ACL カウント、ネストされたグループ、HV への自動パス、一括 AdminTo ホストリストを含む txt/csv エクスポート。オプションの --writable-file は bloodyAD get writable JSON/TSV をインポート(トークン有効な書き込み、SharpHound はフィルタリングされた ACE セットのみをマップ) |
| パス修復 | 最もビジーなパスのランキング(--busiest-paths)、エッジ削除の推奨(--path-break) |
| インベントリ | パスワードエイジのはしご、古い/非アクティブなアカウント、特権グループ、構造的(ドメイン/DC/信頼)、所有オブジェクトインベントリ、% 付き統計ダッシュボード |
| PlumHound スタイル CSV パック | --csv-pack DIR: マルチ CSV インベントリ(ドメイン、DA、roast 可能、LAPS、Everyone/過剰権限エッジ、コンピューター AdminTo コンピューター、二重特権+ローカル管理者、一括 AdminTo ホスト)+ index.csv |
| マルチ入力 | --merge PATH… は追加のディレクトリ/zip を 1 つのグラフに統合(マルチドメイン / 低権限+DA のデュアルコレクション) |
| その他 | コレクションヘルスバナー(オブジェクト数、セッション/AdminTo/RDP カバレッジ、ADCS の有無)、LAPS カバレッジ(haslaps)+ LAPS パスワードリーダー(ReadLAPSPassword)、GPO XML(--gpo-content-dir)、ドメイン Trusts[] エッジ、グループネスト、--list-domains |
検出結果はスコアリングされ、優先度付き検出結果テーブルに要約されます(大量の衛生カテゴリは折りたたまれます。完全な折りたたみリストには --all-findings を使用)。悪用パネルはカテゴリごとにツール/コマンドを提案します。
これは SquidSec によるオフラインヒューリスティックアナライザーであり、完全な BloodHound CE の代替ではありません。パスの同等性については、同じ zip で BloodHound CE に対して検証することを推奨します。
./sharpout を SharpHound/AzureHound のディレクトリまたは zip に置き換えてください。ソースチェックアウトの場合: bloodbash の代わりに python3 BloodBash.py を使用してください。
# Help (tables + examples)
bloodbash --help
bloodbash --help-advanced
# Default = quick wins (high-signal day-0 triage)
bloodbash ./sharpout
bloodbash ./sharpout --quick-wins
bloodbash ./sharpout --quick-wins --domain CORP.LOCAL
bloodbash ./2024-collection.zip --quick-wins
# Interactive picker
bloodbash ./sharpout --wizard
# Full attack analysis (--all auto --fast on large graphs; inventory is separate)
bloodbash ./sharpout --all
bloodbash ./sharpout --all --fast
bloodbash ./2024-collection.zip --all
bloodbash ./sharpout --all --inventory