Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Copperhound — AD、ADCS、Entra ID 向けの Rust 製攻撃パス分析 | Kitploit
ツール/GitHubGitHub/benthecyberone/copperhound
防御ツールID管理ネットワークマッピング脆弱性分析情報収集ペネトレーションテストクラウドセキュリティレッドチーミング
GitHubbenthecyberone/copperhound

Copperhound

AD、ADCS、Entra ID 向けの Rust 製攻撃パス分析

リポジトリを見る
83日前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

CopperHound ロゴ

CopperHound

大規模環境向けに Rust で構築された、オープンソースの Active Directory、ADCS、Entra ID / Azure 攻撃パス分析ツール。CopperHound は SharpHound、bloodhound-python、ldapdomaindump、AzureHound の出力、生の LDIF ダンプ、Sysinternals AD Explorer スナップショットをメモリマップドグラフストアに取り込み、グラフデータベースを使わずにパス、露出、CHQL クエリを直接実行します。1 つのコンテナが Web UI と REST API を提供します。

ヘルプデスクユーザーから Tier Zero への全最短パス

露出影響度でランク付けされた検出結果 修復プランナー 時系列の態勢

スクリーンショットは架空のデモデータ(scripts/demo_data.py)を使用しています。

ドキュメント: ユーザーガイド · デプロイ · データソース · REST API · CHQL · エッジリファレンス · パフォーマンス · アーキテクチャ

クイックスタート(Docker)

docker compose up -d --build
docker compose logs copperhound | grep "Initial admin password"

http://127.0.0.1:8090 を開き、admin でサインインし、SharpHound / AzureHound の .zip または .json ファイルを Data タブにドロップして Rebuild graph を押します。COPPERHOUND_ADMIN_PASSWORD でパスワードを設定し、COPPERHOUND_PORT / COPPERHOUND_HOST で公開アドレスを変更します(デフォルトは 127.0.0.1:8090 なので、8080 の BloodHound と並行して実行できます)。

まだデータがありませんか? python scripts/demo_data.py demo/ を実行すると、アップロード用の架空の環境(意図的に弱点を仕込んだ AD、ADCS、Entra ID)が書き出されます。詳細は デモデータで試す を参照してください。

Docker を使わない場合: cd web && npm ci && npm run build を実行し、続いて cargo run --release -- serve を実行します(デフォルト: 127.0.0.1:8080、データは ./data、UI は ./web/dist)。

アカウント、API トークン、ウォッチフォルダー、スケジュールレポート、変更アラート、HTTPS、シングルサインオン(OpenID Connect、SAML 2.0)については docs/DEPLOYMENT.md を参照してください。

リスク分析

取り込みのたびにバックグラウンドで計算されます:

  • 攻撃パスの検出結果 — AD、ADCS、Entra ID、ハイブリッドにまたがる 30 種類の検出タイプ(Tier Zero 外での DCSync、Tier Zero の制御、広範なグループの権限、Tier Zero への委任、ESC エスカレーション、テナント乗っ取りにつながる Graph 権限、Entra Tier Zero ロールを持つ同期アカウントなど)。それぞれに重大度、影響、修復ガイダンス、MITRE ATT&CK テクニックが付きます。すべてのエッジ検出結果は実測されます。「これを修正すると N 個のプリンシパルの Tier Zero へのパスが除去される」という値は、そのエッジを除いて露出分析を再実行することで算出されます。
  • What-if シミュレーション — 任意のエッジ、エッジ種別、ノードの集合を削除(またはターゲットを追加)し、種別ごとの露出の前後を即座に確認できます。
  • 修復プランナー — すべての攻撃パス上の dominator tree により、修正によってゾーンから完全に切り離せるプリンシパルが最も多いチョークポイントとなるオブジェクトを特定します。プランは各ステップの後に再計算されるため、累積削減曲線は正確です。ゾーングループのメンバーはゾーンの一部として扱われるため、「Domain Admins から管理者を削除する」といった提案は決して行いません。
  • 修復の引き継ぎ — 修正リストのエッジやプランのステップを PowerShell スクリプト(エッジごとに推奨コマンド 1 つ、オブジェクトは SID / オブジェクト ID で指定)に変換するか、各エッジのガイダンスとコマンドを含む Jira イシュー、ServiceNow レコード、署名付き Webhook イベントに変換します。
  • 特権ゾーン — CHQL セレクター(「Tier 1 サーバー」「財務ファイルサーバー」など)で独自のターゲットセットを定義し、それぞれの露出、チョークポイント、修復プランを取得できます。ゾーンのメンバーレビューでは、所属すべきメンバーを認定し、ルールが誤って拾ったメンバーを取り消します(ゾーンから外れます)。新たに一致したものは保留中として表示されます。
  • 時系列のポスチャ — 取り込みごとに 1 つのスナップショット(露出率、重大度別の検出結果、検出結果ごとの件数)を保存し、任意の 2 つのスナップショット間の差分で、どの検出項目が出現または解決されたかを正確に一覧表示します。

CLI での同等コマンド: copperhound findings corp.chg、copperhound plan corp.chg --steps 10。

Web UI

検索、パス探索、ノード詳細、すべての派生エッジに対する「これはどのように導出されたか?」、CHQL エディターとクエリライブラリ、および検出結果、修復、ゾーン、ポスチャ、レポート、データ、管理の各ページを備えた WebGL グラフキャンバス(sigma.js)。スクリーンショット付きのウォークスルー: docs/USER_GUIDE.md。

CHQL

ネイティブなグラフ操作にコンパイルされる読み取り専用の Cypher 方言 — 複数のパターンと MATCH 句、OPTIONAL MATCH、WITH、集計、ORDER BY/SKIP/LIMIT、UNION、無向および可変長ホップ、パス関数、パターン述語をサポートします。ほとんどの BloodHound CE およびレガシークエリはそのまま実行できます。CHQL リファレンスと Cypher 互換性表 を参照してください。

MATCH p = shortestPath((u:User {name:'[email protected]'})-[*1..]->(t {tier0:true})) RETURN p
MATCH p = allShortestPaths((g:Group)-[*1..]->(t {tier0:true})) WHERE g.name STARTS WITH 'DOMAIN USERS@' RETURN p
MATCH (u:User {hasspn:true, enabled:true}) WHERE u.pwdlastset < 1600000000 RETURN u.name, u.pwdlastset
MATCH (g:Group)-[:AdminTo]->(c:Computer) RETURN g.name, count(c)
MATCH (p)-[r:ADCSESC1|ADCSESC6a]->(d:Domain) RETURN p, r, d
MATCH (n {owned:true}), (m:Group) WHERE m.objectid ENDS WITH '-512' MATCH p = shortestPath((n)-[*1..]->(m)) RETURN p
MATCH (dc)-[:MemberOf*0..]->(g:Group) WHERE g.objectid ENDS WITH '-516' WITH collect(dc) AS dcs
  MATCH (c:Computer {unconstraineddelegation:true}) WHERE NOT c IN dcs RETURN c

コマンドラインでは、copperhound query corp.chg "MATCH …" を実行します。days_ago(n) は相対的なタイムスタンプを返します。例えば WHERE u.lastlogontimestamp < days_ago(90) のように使用します。

UI には 159 個の定義済みクエリ が 15 のカテゴリ(ドメイン情報、危険な権限、Kerberos、委任、ACL 悪用、セッションと横移動、GPO と OU、衛生管理、最短パス、Tier Zero、所有済み、ADCS、Azure / Entra ID、Azure リソース、ハイブリッド)に分かれて同梱されており、それぞれにタグが付けられ、合成グラフに対してテストされています。独自のクエリはサーバー側に保存できます。

パフォーマンス

レコードはメモリマップドファイルからすべてのコアでスキャンされ、圧縮されたスパース行グラフに変換されます。このグラフはミリ秒単位で開くことができ、パス探索や Tier Zero の露出は、そのグラフ上で専用に設計された BFS パスとして実行されます。10 GB の SharpHound コレクション(12.5M オブジェクト、65.7M エッジ)は 23~31 秒で取り込まれ、その上での Tier Zero への最短パスは 1 ミリ秒未満で計算されます。設計、チョークポイントアルゴリズム、ベンチマークについては、docs/PERFORMANCE.md を参照してください。

使用方法

# Ingest: any mix of .json files, .zip archives and directories
copperhound ingest 20241105_BloodHound.zip ldd_out/ -o corp.chg
# Several collections of the same domain: the newest collection wins per object
# (see docs/DATA.md; `--merge union` for a plain union)
copperhound ingest 20241001093000_BloodHound.zip 20241105101500_BloodHound.zip -o corp.chg

copperhound stats corp.chg

# Shortest attack path (names or SIDs/GUIDs, case-insensitive)
copperhound path corp.chg --from [email protected] --to "DOMAIN [email protected]"
copperhound path corp.chg --from [email protected] --to-tier0 --exclude HasSession

# Tier Zero exposure and the edges whose removal cuts the most attack paths
copperhound tier0 corp.chg --top 25
copperhound tier0 corp.chg --json > exposure.json

# Blast radius
copperhound reach corp.chg --from WS042.CORP.LOCAL

# Property filter (JSON filter tree, see docs/API.md) and name search
copperhound filter corp.chg '{"and":[{"kind":"User"},{"truthy":"enabled"},{"truthy":"hasspn"}]}'
copperhound search corp.chg backup --kind User
copperhound columns corp.chg        # list property columns (builds them for older graphs)

--all-edges は非トラバーサルエッジ(例: GetChanges、TrustedBy)を含めます。 --exclude A,B はエッジ種別を除外します。--threads N は並列度を制限します。

対応入力

ツールをダウンロード