
BloodHound向けのツール群で、ドメインパスワード監査、権限パス分析、エッジ操作、およびカスタムCypherクエリを可能にし、Active Directoryの攻撃面マッピングを最大化します。
New Release:
シンプルなツール群:
これは以下のブログでスクリーンショットとユースケースとともに公開されました: Max Release, Updates & Primitives & DPAT
調査中にこのツールに新しい潜在的な攻撃プリミティブが追加されました。詳細はadd-spnsセクションを参照してください。
理想的にはインストールするものはほとんどありませんが、念のためrequirements.txtファイルを用意しています。Kali LinuxとWindows 10でテスト済みで、すべての機能はLinuxとWindowsの両方のOSで動作するはずです。
pip3 install -r requirements.txt
Neo4jの認証情報はスクリプトの先頭にハードコードするか、CLI引数として指定するか、環境変数として保存できます。どちらかのパラメータを空欄にすると、ユーザー名/パスワードを求められます。環境変数を使用する場合、ユーザー名は機密性が低いため、~/.bashrc や ~/.zshrc に行(例:export NEO4J_USERNAME='neo4j')を追加するのが最も簡単でしょう。データベースパスワードはMaxを実行する前にシェルのタブ内で設定できます。exportコマンドの前にスペースを追加すると、履歴に表示されないようにできます。
export NEO4J_PASSWORD='bloodhound' # Notice whitespace before 'export'
python3 max.py {module} {args}
python3 max.py -u neo4j -p neo4j {module} {args}
python3 max.py {module} {args}
Neo4j Username: neo4j
Neo4j Password:
一般的なヘルプとモジュール固有のヘルプ
python3 max.py -h
python3 max.py {module} -h
所有オブジェクトをBHにインポート
python3 max.py mark-owned -f owned.txt
python3 max.py mark-owned -f owned.txt --add-note "Owned by repeated local admin"
ユーザーのリストを取得
python3 max.py get-info --users
python3 max.py get-info --users --enabled
[email protected]
[email protected]
...
ターゲットグループ内のオブジェクトのリストを取得
python3 max.py get-info --group-members "domain [email protected]"
ユーザーが管理者権限を持つコンピュータのリストを取得
python3 max.py get-info --adminto [email protected]
所有オブジェクトのリストと各オブジェクトのメモを取得
python3 max.py get-info --owned --get-note
クエリの実行 - DAへのパスを持つすべてのユーザーのリストを返す
python3 max.py query -q "MATCH (n:User),(m:Group {name:'DOMAIN [email protected]'}) MATCH (n)-[*1..]->(m) RETURN DISTINCT(n.name)"
データベースからエッジを削除
python3 max.py del-edge CanRDP
BloodHound内に保存された情報、またはGetUserSPNs impacketファイルを使用してHasSPNConfigured関係を追加
python3 max.py add-spns -b
python3 max.py add-spns -i getuserspns-raw-output.txt
DPAT
python3 max.py dpat -n ~/client/ntds.dit -c ~/.hashcat/hashcat.potfile -o ouputdir --html --sanitize
Pet max
python3 max.py pet-max
ファイル内のオブジェクトは、FQDNを含む必要があります。大文字小文字は区別されません。これはCLIでユーザー名/コンピュータ名が指定される場合にも適用されます。
[email protected] <- will be added / correct CLI input
[email protected] <- will be added / correct CLI input
computer01.domain.local <- will be added / correct CLI input
ComPutEr01.doMAIn.LOcaL <- will be added / correct CLI input
user02 <- will not be added / incorrect CLI input
computer02 <- will not be added / incorrect CLI input
PlumHound/Cypherothと同様の機能を提供するanalyze関数を含めたいと考えています。最後に、WindowsでNeo4jを実行している方向けのPowershell版の作成も考えていますが、Powershellが苦手なので未定です。
その他の機能や改善提案も歓迎します。BloodHoundGang SlackチャンネルとTwitterで@knavesecを探してください。
このツールの開発と改善に時間を費やしてくださった方々に特に感謝します: