NetworkHound — Active Directory ネットワークトポロジ解析ツール
概要
NetworkHoundは、Active Directory(AD)環境向けの高度なネットワークトポロジ解析ツールです。SMB検証機能を備え、パスワード認証、NTLMハッシュ、Kerberos(チケット/パススルー)など複数の認証方式を用いてドメイン内のホストに能動的に接続し、共有、サービス、ユーザー/グループの関係性を収集します。収集した情報はBloodHound互換のOpenGraph JSONとしてエクスポート可能で、既存のBloodHound解析パイプラインや可視化ツールと連携できます。ImpacketライブラリによりSMBや認証プロトコルの処理を担い、Python 3.8以上で動作します。侵入テストや可視化、セキュリティ評価の補助ツールとして設計されています。
リポジトリの統計情報
- スター数: 69
- フォーク数: 12
- ウォッチャー数: 69
- コミット数: 9
- ファイル数: 12
- メインの言語: Python
主な特徴
- SMB検証と能動的接続による信頼性の高いネットワーク情報収集
- パスワード/NTLMハッシュ/Kerberosなど複数の認証方式に対応
- 収集結果をBloodHound互換のOpenGraph JSONとしてエクスポート
- Impacketを利用した低レベルなプロトコル処理で幅広い環境に対応
技術的なポイント
NetworkHoundの技術的な中核は、Impacketを利用したSMBおよび認証プロトコルの実装にあります。ImpacketはPythonで実装されたネットワークプロトコルライブラリで、SMBのセッション確立、リモートサービス情報取得、RPC呼び出しなどを柔軟に扱えます。NetworkHoundはこれを活用して、指定した認証情報(平文パスワード、NTLMハッシュ、Kerberosチケット)でドメイン内ホストへ能動的に接続し、共有の一覧取得、ACLやサービスの列挙、ログオン可能性の検査などを行います。
認証周りでは、Kerberosを用いたチケット方式やNTLMのチャレンジ/レスポンス処理に対応することで、環境ごとの制約に合わせた接続が可能です。これにより、パスワードが使えないケースでも既存のハッシュやチケットを流用して調査を進められます。並列処理やタイムアウト設定により大規模環境での実行効率も考慮されています(設定可能なスレッド数やリトライなどを想定)。
収集したエンティティと関係性は、BloodHoundのOpenGraph JSONスキーマにマップされ、ユーザー、グループ、コンピュータ、セッション、ACL、共有アクセス権などのノード/エッジ情報として出力されます。こうした出力は既存のBloodHoundクライアントや解析ツールでそのまま読み込めるため、可視化や攻撃パス分析にスムーズに組み込めます。
設計面では、能動的スキャンに伴う安全性と倫理面の配慮が必要です。実行には適切な権限と管理者同意が前提であり、誤検知やサービス停止を避けるためにタイムアウトやスロットリングの調整が推奨されます。また、認証情報の取り扱いは取り扱い方針に従い、メモリやログへの露出を最小化する実装上の注意が求められます。NetworkHoundは侵入テスト・赤チーム/青チーム双方のユースケースで有用ですが、運用時には適法性と影響範囲の確認が必須です。
プロジェクトの構成
主要なファイルとディレクトリ:
- .gitattributes: file
- .github: dir
- .gitignore: file
- NetworkHound.py: file
- README.md: file
…他 7 ファイル
(NetworkHound.pyがエントリポイントで、Impacketを使った接続とスキャンロジック、OpenGraph形式への変換処理を担う想定です。READMEにはロゴやバッジ、Python 3.8+とImpacket依存を明記しています。)
まとめ
能動的なAD解析とBloodHound互換出力を組み合わせた実用的なネットワーク可視化ツールです。
リポジトリ情報:
- 名前: NetworkHound
- 説明: Advanced Active Directory network topology analyzer with SMB validation, multiple authentication methods (password/NTLM/Kerberos), and comprehensive network discovery. Export results as BloodHound‑compatible OpenGraph JSON.
- スター数: 69
- 言語: Python
- URL: https://github.com/MorDavid/NetworkHound
- オーナー: MorDavid
- アバター: https://avatars.githubusercontent.com/u/24622066?v=4
READMEの抜粋:
🐾 NetworkHound - Active Directory Network Topology Analyzer
Advanced Active Directory network topology analyzer with SMB validation, mul…