
BloodHound API用のインタラクティブなコマンドラインシェル。
BloodHound 用の対話型コマンドラインシェル。Active Directory オブジェクトを検索し、 弱点を探し、ターミナルから攻撃パスを見つけることができます。Web UI を開く必要はありません。
Python 3.11+ と BloodHound CE v9 サーバーが必要です(v9.7.1 でテスト済み)。
pipx install bhshell # 推奨
# または
pip install bhshell
$ bhshell --url http://127.0.0.1:8080
[bh: shell] > login -u admin
[+] Logged in as admin on 127.0.0.1:8080
[bh: shell] > hunt
Severity Check Count Example Description
critical dcsync 2 [email protected] Non-Tier-Zero principals with replication rights
high kerberoastable 2 [email protected] Kerberoastable users
...
[*] Details: 'hunt CHECK' (e.g. 'hunt kerberoastable'), or 'hunt --all'.
[bh: shell] > user CORP\svc_sql --all -o svc_sql.csv
[bh: shell] > path --owned -g
同じコマンドはスクリプト用に非対話形式でも実行できます: bhshell -c "hunt --json" > hunt.json。
| コマンド | 表示内容 |
|---|---|
user、computer、group、lookup | Kerberoastable / AS-REP roastable、委任、パスワード経過日数、Tier Zero および owned フラグ、さらにグループのネスト、インバウンド/アウトバウンド ACL 制御、セッション、ローカル管理者権限 |
search | プロパティフィルターに一致するオブジェクト(search -t user hasspn enabled)、日付、経過日数(90d)、ワイルドカードに対応 |
path | ターゲットまたは Tier Zero への最短パス、owned オブジェクトからのパス、または --via ステップを経由するパス。ホップチェーン、ターミナルグラフ、レポート用の SVG/PNG として出力 |
hunt | 重大度別のドメイン全体チェック: DCSync、Tier Zero の制御、AD CS(ESC*)、Kerberoasting、特権セッション、LAPS/gMSA リーダー、属性内のパスワード、乗っ取りプリミティブ(Shadow Credentials、RBCD)、GPO 制御、NTLM リレー、信頼関係、ハニートークンの可能性...; hunt --owned は owned オブジェクトで実行可能なものに限定 |
cypher、query | 生の Cypher、および保存済みクエリのライブラリ: バンドル済み、独自の .cyp ファイル(~/.bhshell/queries/ または config query_dirs で設定した任意のフォルダ)、サーバーに保存されたクエリ |
owned、hvt | owned および Tier Zero オブジェクトのマーク/マーク解除 |
domains、trusts | ドメインごとのカウント、および SID フィルタリング状態を含む信頼マップ |
独自のクエリを追加するには、.cyp ファイルとして ~/.bhshell/queries/ に保存し、名前で実行します:
$ cat ~/.bhshell/queries/stale-admins.cyp
// description: Enabled adminCount users who have not logged on for a year
MATCH (u:User) WHERE u.admincount = true AND u.enabled = true
AND u.lastlogontimestamp < (datetime().epochseconds - 31536000) RETURN u
[bh: shell] > query run stale-admins -o stale-admins.csv
フォーマットおよび他のフォルダ(チームリポジトリ、エンゲージメントごとのフォルダ)でのクエリ管理については Query library を参照してください。
ほとんどのコマンドは --json と -o FILE(JSON または CSV)を受け付けます。ログインはパスワード(+ MFA)または
API トークンで動作します。シークレットはプロンプトで入力するか環境変数から読み取られ、引数として渡されることはありません。
完全な使用ガイド(すべてのコマンド、ビューフラグ、検索フィルター、パスオプション、hunt チェック、
設定項目)は docs/USAGE.md にあります。
シェル内では help または help <command> を実行してください。
バグ報告やプルリクエストは github.com/kr0no/bloodhound-shell/issues で歓迎します。
git clone https://github.com/kr0no/bloodhound-shell.git
cd bloodhound-shell
python3 -m venv .venv && . .venv/bin/activate
pip install -e '.[dev]'
python -m pytest
テストは responses で BloodHound API をモックするため、BloodHound サーバーは不要です。
MIT License の下で配布されています。詳細は LICENSE を参照してください。
BloodHound は SpecterOps の商標です。bhshell は独立したプロジェクトであり、SpecterOps と提携しておらず、 承認も受けていません。