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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
pyCobaltHound — pyCobaltHoundは、Cobalt StrikeとBloodhoundの間の深い統合を提供することを目的とした、Cobalt Strike用のAggressorスクリプト拡張です。 | Kitploit
ツール/GitHubGitHub/nvisosecurity/pycobalthound
ペネトレーションテストフレームワーク特権昇格偵察エクスプロイトフレームワーク横移動情報収集ポストエクスプロイトレッドチーミング
GitHubnvisosecurity/pycobalthound

pyCobaltHound

pyCobaltHoundは、Cobalt StrikeとBloodhoundの間の深い統合を提供することを目的とした、Cobalt Strike用のAggressorスクリプト拡張です。

リポジトリを見る
13519164年前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

クイックサマリー

pyCobaltHound は Cobalt Strike 用の Aggressor スクリプト拡張であり、Cobalt Strike と BloodHound の深い統合を提供することを目的としています。

pyCobaltHound は、以下の方法でレッドチームオペレーターを支援します。

  • 新たに収集された資格情報によって開かれた昇格パスを自動的に BloodHound データベースに問い合わせて発見する。
  • 侵害されたユーザーやコンピュータを自動的に「所有済み」としてマークする。
  • オペレーターがビーコンセッションやユーザーの昇格可能性を迅速かつ簡単に調査できるようにする。

これを実現するために、pyCobaltHound は一連の組み込みクエリを使用します。オペレーターは独自のクエリを追加/削除して、pyCobaltHound の監視機能を微調整することもできます。これにより、エンゲージメント中に特定のターゲット(ユーザー、ホストなど)に合わせて pyCobaltHound を柔軟に適応させることができます。

インストールと使用方法

pyCobaltHound をインストールするには、このリポジトリをクローンしてください。含まれているサブモジュールも忘れずにクローンしてください!

以下のコマンドを使用できます。

  • git clone https://github.com/NVISOsecurity/pyCobaltHound.git --recurse-submodules

依存関係

以下の依存関係が正しくインストールされていることを確認してください。

PyCobalt

PyCobalt は Cobalt Strike 用の Python API です。多くの Aggressor 関数を Python から直接使用できるようにします。

セットアップ

Python3+ がインストールされていることを確認してください。PyCobalt は macOS や Windows でも動作する可能性がありますが、Linux でのみ実際にテストしています。

PyCobalt Python ライブラリを使用する方法は 2 つあります。

  1. PYTHONPATH を使用してリポジトリから直接実行する。pyCobaltHound はこのアプローチを採用しており、Python プログラム内で sys.path 変数を使用して検索パスを設定しています。
  2. PyCobalt Python ライブラリをインストールする。そのためには、python3 setup.py install を実行します。インストールされたライブラリを使用するように pycobalthound.py を変更する必要があります(リポジトリに含まれているものではなく)。
備考
  • PyCobalt プロジェクトが将来もメンテナンスされる保証はないことに注意してください。実際、最新のアップデートは Cobalt Strike 4.2 の変更に対応するためのものでした。ただし、pyCobaltHound は Cobalt Strike とそのオペレーターとのインターフェースに基本的な Aggressor 関数しか使用していないため、pyCobaltHound にとってこれは大きな問題ではありません。
  • このプロジェクトで使用されている PyCobalt サブモジュールは、私たちがフォークしたものです。ただし、PyCobalt リポジトリを管理しているわけではありません。
ヒントとコツ
  • PyCobalt には、実行中の Python スクリプトを管理するための Script Console コマンドがいくつか付属しています。Aggressor スクリプトをリロードするときは、最初に明示的に Python スクリプトを停止する必要があります。そうしないと、何もせずに永遠に実行され続けます。pyCobaltHound の開発中、これが未定義の動作を引き起こす可能性があることに気付きました。

    pyCobaltHound のリロードは次のように行えます。

    aggressor> python-stop-all`
    [pycobalt] Asking script to stop: /root/pycobalthound/pycobalthound.py
    [pycobalt] Script process exited: /root/pycobalthound/pycobalthound.py
    
    aggressor> reload example.cna`
    [pycobalt] Executing script /root/pycobalthound/pycobalthound.py
    
  • PyCobalt を正しく動作させるには、1 つの Aggressor スクリプトでのみ PyCobalt を呼び出す必要があります。pyCobaltHound を他の PyCobalt を使用する Aggressor スクリプトと一緒に使用する場合は、この点に注意してください。私たちのアプローチは、PyCobalt ベースのツールごとに python() と include() の呼び出しを含む Aggressor スクリプトを用意することです。

notify2 (オプション)

notify2 は、Linux でデスクトップ通知を表示するためのパッケージです(現在はそうですが、過去形かもしれません)。後述するように、pyCobaltHound はオペレーターに通知するいくつかの方法をサポートしています。notify2 は Linux で D-Bus を介して通知デーモンに通知を送信するために使用されます。

これを有効にするには、次のコマンドで notify2 をインストールする必要があります。

pip install notify2

Cobalt Strike での使用

Cobalt Strike で pyCobaltHound を使用するには、pycobalthound.cna Aggressor スクリプトをクライアントにインポートするだけです。これが完了すると、Cobalt Strike のメニューバーに pyCobaltHound メニューが表示されるはずです。

使用方法

資格情報ストアの監視

pyCobaltHound の初期の目標は、Cobalt Strike の資格情報キャッシュ(View > Credentials)を新しいエントリについて監視することでした。これは、Cobalt Strike が資格情報ストアに変更があったときに発生させる on_credentials イベントに反応することで実現します。

このイベントが発生すると、pyCobaltHound は以下を実行します。

  1. Cobalt Strike から受信したデータを解析して検証する。
  2. キャッシュを確認し、これらのエンティティを既に調査済みかどうかをチェックする。
  3. エンティティをキャッシュに追加して将来の実行に備える。
  4. エンティティが BloodHound データベースに存在するか確認する。
  5. エンティティを所有済みとしてマークする。
  6. 組み込みクエリとカスタムクエリの両方を使用して、新しい各エンティティについて BloodHound データベースに問い合わせる。
  7. 返された結果を解析し、興味深い発見があればオペレーターに通知し、基本的な HTML レポートに書き込む。

これらはすべてメインの Cobalt Strike クライアントから非同期的に行われるため、UI がブロックされることはなく、pyCobaltHound がバックグラウンドで調査している間も作業を続けられます。

pyCobaltHound は、複数のチームサーバーを使用する際の問題を防ぐために、チームサーバーごとに別々のキャッシュを使用します。

キャッシュからのエンティティの削除

特定のユーザー(または資格情報ストア全体)を再調査したい場合があります。これは、BloodHound データベースに新しいデータをアップロードした場合などに該当します。

pyCobaltHound は資格情報ストア内のすべてのエンティティを既に調査(したがってキャッシュ)しているはずなので、オペレーターの介入なしに新しいデータに対してそれらを評価することはありません。

オペレーターは、キャッシュされるエンティティを制御するために 2 つの方法を利用できます。

特定のエンティティの削除

特定のエンティティ(または複数)をキャッシュから削除したい場合は、資格情報ビューア(View > Credentials)で行えます。対象を選択し、pyCobaltHound メニューエントリの下にある remove from cache オプションをクリックするだけです。

キャッシュ全体の削除

キャッシュからすべてのエンティティを削除したい場合は、pyCobaltHound のメインメニュー(Cobalt Strike > pyCobaltHound > Wipe cache)で行えます。これは、資格情報ストア全体を再評価したい場合に最も役立ちます。

手動での調査トリガー

ターゲットをキャッシュから削除した後、pyCobaltHound に資格情報ストアの内容を再調査するよう手動で促すことができます。これは上記と同じプロセスに従います。

ビーコン管理

pyCobaltHound には、既存のビーンセッションと対話する機能が含まれています。これはビーコンのコンテキストメニューにあります。これらのコマンドは、単一のビーコンまたは選択したビーコンに対して実行できることに注意してください。

この機能は、資格情報がまだ侵害されていないが、実質的に制御下にある(例えば、そのセッショントークンでビーコンが実行されている)ユーザーやコンピュータを扱う場合に特に便利です。

「所有済み」としてマーク

Mark as owned 機能(pyCobaltHound > Mark as owned)は、ビーコン(またはビーコンコレクション)を BloodHound データベースで所有済みとしてマークするために使用できます。

このダイアログでは、オペレーターに以下の情報を求めます。

  • ノードタイプ
    • 両方: これが選択された場合、ビーコンコンテキストに関連付けられたユーザーとコンピュータの両方が所有済みとしてマークされます。pyCobaltHound は、ビーンセッションがローカル管理者、SYSTEM、または別のユーザーとしての高整合性セッションとして実行されている場合にのみ、コンピュータを所有済みとしてマークします。
    • ユーザー: これが選択された場合、ビーコンコンテキストに関連付けられたユーザーが所有済みとしてマークされます。
    • コンピュータ: これが選択された場合、ビーコンコンテキストに関連付けられたコンピュータが、関連セッションの整合性レベルに関係なく所有済みとしてマークされます。
  • ドメイン
    • ビーコンのコンテキストにはドメインへの参照が含まれていないため、オペレーターは自分で指定する必要があります。

調査

Investigate 機能(pyCobaltHound > Investigate)は、ビーコン(またはビーコンコレクション)に関連するユーザーとホストを調査するために使用できます。

このダイアログでは、オペレーターに以下の情報を求めます。

  • ノードタイプ
    • 両方: これが選択された場合、ビーコンコンテキストに関連付けられたユーザーとコンピュータの両方が調査されます。pyCobaltHound は、ビーンセッションがローカル管理者、SYSTEM、または別のユーザーとしての高整合性セッションとして実行されている場合にのみ、コンピュータを調査します。
    • ロジックなしの両方: これが選択された場合、ビーコンコンテキストに関連付けられたユーザーとコンピュータの両方が調査されます。pyCobaltHound は、整合性レベルをチェックせずにすべてのエンティティを調査します。
    • ユーザー: これが選択された場合、ビーコンコンテキストに関連付けられたユーザーが所有済みとしてマークされます。
    • コンピュータ: これが選択された場合、ビーコンコンテキストに関連付けられたコンピュータが、関連セッションの整合性レベルに関係なく所有済みとしてマークされます。
  • ドメイン
    • ビーコンのコンテキストにはドメインへの参照が含まれていないため、オペレーターは自分で指定する必要があります。
  • レポートを生成する
    • このオプションが選択された場合、基本的な HTML レポートが生成されます。

エンティティ調査

pyCobaltHound には、エンティティを自由に調査する機能が含まれています。これはメインメニュー(Cobalt Strike > pyCobaltHound > Investigate)にあります。

この機能は、資格情報が侵害されておらず、制御下にもないユーザーやコンピュータを扱う場合に特に便利です。

このダイアログでは、オペレーターに以下の情報を求めます。

  • ターゲット
    • オペレーターが調査したいエンティティの CSV 形式の文字列。これは単なるユーザー/コンピュータ名(例: user1)または FQDN([email protected])です。
    • 注意: 表記を混在させないでください。ユーザー/コンピュータ名 または FQDN のいずれかに統一してください。
  • ドメインを含む
    • このパラメータは、指定されたターゲット文字列が単なるユーザー/コンピュータ名なのか、FQDN なのかを指定します。
  • ドメイン
    • ターゲット文字列に FQDN が含まれていない場合、オペレーターは調査するエンティティが属するドメインを指定する必要があります。
  • レポートを生成する
    • このオプションが選択された場合、基本的な HTML レポートが生成されます。

設定

pyCobaltHound の設定メニューは、Cobalt Strike > pyCobaltHound > Settings にあります。

pyCobaltHound は設定をディスクに保存します。pyCobaltHound がリロードされるたびに、設定ファイルの存在を確認し、見つかった場合は保存された設定を読み込みます。

ツールをダウンロード