
AD-PathFinder v1.2.0
Active Directory、ADCS、SCCM、MSSQL に対する攻撃経路マッピング(BloodHound CE + OpenGraph データ使用)
ADPathFinder
ADPathFinderは、ペネトレーションテスターやレッドチーム向けの攻撃マッピングツールです。SharpHoundデータを分析し、OpenGraphプラグインと統合することで、低権限のユーザーやコンピュータから、ドメイン管理者やドメインコントローラなどの高価値ターゲットへの攻撃パスを明らかにします。MSSQLHoundおよびConfigManBearPigはネイティブでサポートされており、AD、ADCS、SCCM、MSSQL全体のカバレッジを拡張します。
ジャンプ先: クイックスタート · カバレッジ · 仕組み · レポート · 設定 · コントリビューター
カバレッジ
| 領域 | 例 |
|---|---|
| コアAD | 昇格パス、委任、管理者権限、BadSuccessor、露出した高価値セッション |
| パスワード | 弱いパスワード、空白のパスワード、再利用、ユーザー名の類似性、LMハッシュの使用、KerberoastおよびAS-REPの露出と弱いパスワードの組み合わせ |
| ADCS | ESCスタイルの証明書テンプレートとCAリスク |
| MSSQL(MSSQLHound OpenGraphデータ) | ログイン、リンクサーバー、権限借用、リレー、特権昇格パス |
| SCCM(ConfigManBearPig OpenGraphデータ) | 乗っ取りおよびリレーパス、PXE対応配布ポイント、管理ポイントポリシーの取得 |
| ドメイン間 | 信頼、共有パスワード、ドメイン間の昇格パス |
必要条件
- Python 3.9以降。
- BloodHound CEおよびNeo4jがデフォルトで
neo4j://localhost:7687でローカルに利用可能。 - インポートおよび削除操作のためのBloodHound CE API認証情報。
- AD監査カバレッジ用のBloodHound CE / SharpHound zipファイル。
- MSSQLおよびSCCMカバレッジ用のMSSQLHoundおよびConfigManBearPigのオプションのOpenGraphプラグインzipファイル。
- パスワード監査用のオプションのNTDSハッシュダンプおよびhashcat potfile。
クイックスタート
ソースからインストール
git clone https://github.com/NetSPI/AD-PathFinder.git
cd AD-PathFinder
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
BloodHound APIアクセスを設定
adpathfinder --setup-bloodhound-api
これにより、インポートおよび削除操作に使用されるBloodHound CE API設定が保存されます。
SharpHoundデータをインポート
adpathfinder --import SharpHound.zip
複数のSharpHoundおよびOpenGraphプラグインzipファイルを1つのコマンドでインポートできます:
adpathfinder --import SharpHound.zip MSSQLHound.zip ConfigManBearPig.zip
データをインポートしてフル監査を実行
adpathfinder -i SharpHound.zip MSSQLHound.zip ConfigManBearPig.zip --ad --pwd Contoso,ContosoIT --ntds ntds.txt -p hashcat.potfile
所有しているzipファイルのみを使用してください。--pwd の値はADドメインではなく、会社名、ブランド、組織名をカンマ区切りで指定し、クラックされたパスワードでフラグを立てます。
ドメイン監査を実行
adpathfinder --ad
パスワード監査を実行
adpathfinder --ad --pwd Contoso,ContosoIT --ntds ntds.txt -p hashcat.potfile
レポートに平文パスワードを含める場合のみ --unsafe-report を使用します。
診断情報を出力
adpathfinder --ad --pwd Contoso,ContosoIT --ntds ntds.txt -p hashcat.potfile --diagnostics
仕組み
| 段階 | 処理内容 |
|---|---|
| 取り込み | SharpHoundおよびサポートされているOpenGraph zipを1つのグラフにマージします。MSSQLHoundおよびConfigManBearPigのデータは直接サポートされています |
| マッピング | ユーザーとコンピュータから高価値ターゲットへの最短パスを見つけます。エッジセットを設定して、HasSession のようなノイズの多いエッジを除外できます |
| グループ化 | パスを共有するアカウントをグループ化し、重複したパスを1つの発見として報告するのではなく、多くの類似した重複を避けます |
| ペアリング | NTDSハッシュとhashcat potfileをグラフデータと比較し、評価中にどのパスが使用可能かを示します |
| レイヤー | SMB署名無効やデフォルトの特権グループなどの単独発見を報告し、同じホストやグループが高価値ターゲットへのパス上にある場合は深刻度を引き上げます |
| レンダリング | SVGパスグラフ、緩和策ノート、PowerShell検証手順、修正状態の追跡を含むHTMLレポート、およびテキスト、JSON、診断出力を書き込みます |
AD HTMLレポート
パスワード監査HTMLレポート
設定
ADPathFinderは、作業ディレクトリから config.ini を読み取ります。ADPF_* 環境変数でも値を設定できます。
BloodHound CE APIアクセスをインポートおよび削除用に設定するには、以下を実行します:
adpathfinder --setup-bloodhound-api
すべてのオプション、Neo4j接続設定、ファイル権限、設定例については、Wikiの設定を参照してください。攻撃パス出力のフィルタリングについては、除外リレーションシップを参照してください。
出力
レポートは report_<domain>/ に書き込まれます(例:report_training.local/)。
| 出力 | 目的 |
|---|---|
<domain>_AD_report.html | グループ化された発見、パスグラフ、緩和策ノート、検証手順、修正状態の追跡を含むクライアント向けHTMLレポート |
<domain>_domain_audit.txt / <domain>_domain_audit.json | テキストおよびJSONのドメイン監査出力。レビュー、自動化、後続分析向け |
<domain>_password_audit.html / <domain>_password_audit.txt / <domain>_password_audit.json | NTDSハッシュとhashcat potfileが提供された場合のパスワード監査出力 |
<domain>_*_unsafe.* | --unsafe-report が指定された場合にのみ生成されるオプションの安全でないレポート。平文パスワードを含む可能性があります |
diagnostics.json | --diagnostics が指定された場合に生成されるオプションの実行統計とデバッグデータ |
NTDSデータ、potfile、生成されたレポートは、機密性の高い評価データとして取り扱ってください。--unsafe-report フラグは出力ファイルに平文パスワードを書き込みます。レポートで平文パスワードが特に必要な場合にのみ使用し、結果の _unsafe ファイルは適切に保管してください。
ドメイン監査およびパスワード監査の例については、sample_reports/ を参照してください。
コントリビューター
チェックは、デコレーターで登録され、データ要件を宣言し、発見の辞書を返す小さなクラスです。プラットフォームチェックはデータソースを宣言するため、対応するOpenGraphデータがない場合、通常のAD監査はMSSQLまたはSCCMのチェックをスキップします。
詳細については、Wikiの新しいチェックの追加、OpenGraphプラグインの操作、およびフレームワークガイドを参照してください。
テスト
pip install -e ".[test]" を実行し、続けて pytest tests/ -m "not neo4j and not integration" を実行すると、Neo4jを使用せずに高速なフレームワークテストを実行できます。Neo4jフィクスチャスイートと完全なローカルテストワークフローについては、tests/README.md を参照してください。
謝辞
ADPathFinderは、他のプロジェクトによって収集されたデータを基に構築されています。作者の皆様とSpecterOpsチームに感謝します:
- BloodHound CE — Active Directoryグラフデータ。
- Chris Thompson氏によるMSSQLHound — MSSQL収集。
- Chris Thompson氏によるConfigManBearPig — SCCM収集。