Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
async-pico-hub — Async PICO Hubは、カスタムイベントモニタリングとインプロセス非同期BOFでCobalt Strikeを拡張するための開発中のフレームワークです。 | Kitploit
ツール/GitHubGitHub/nccgroup/async-pico-hub
ペネトレーションテストフレームワークポストエクスプロイトコマンド&コントロールレッドチーミングペイロード開発
GitHubnccgroup/async-pico-hub

async-pico-hub

Async PICO Hubは、カスタムイベントモニタリングとインプロセス非同期BOFでCobalt Strikeを拡張するための開発中のフレームワークです。

リポジトリを見る
26373ヶ月前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

Async PICO HUB

Async PICOs は、Cobalt Strike Beacon プロセス内で長時間稼働するイベント駆動型の Beacon Object Files(BOF)を実行するためのフレームワークです。Crystal Palace の PICO と Beacon 側の実行モデルを組み合わせることで、非同期実行、タスク追跡、グレースフルシャットダウン、安全な非同期出力を提供します。

Cobalt Strike のネイティブな非同期 BOF とは異なり、Async PICOs は Beacon のプロセス内で実行され、イベント発生時に Beacon をウェイクアップして出力を表示できます。

なぜ Async PICOs なのか?

Cobalt Strike のネイティブ非同期 BOF は別の問題を解決します。Async PICOs は、Beacon 内で実行され、結果をオペレーターに即座に安全に伝えることができる、長時間稼働するイベント駆動型タスクを対象としています。

実装の詳細と設計根拠については、付随するブログ記事を参照してください:

https://www.nccgroup.com/research/async-picos-and-custom-beacon-wakeups-in-cobalt-strike/

ビルド

必要条件

ビルドする前に、以下のコンポーネントが必要です:

  • このリポジトリのローカルチェックアウト

  • ビルド済みの Crystal Palace

  • MSVC と CMake をサポートする Visual Studio

  • Tradecraft Garden

  • リポジトリのクローン

リポジトリをローカルにクローンまたはコピー:

root@kitploit:~
git clone <repo-url>
cd async-pico-hub

Crystal Palace のインストール

Async PICOs は PICO の生成を Crystal Palace に依存しています。

Crystal Palace の最新の圧縮リリースをダウンロードし、その指示に従ってビルドしてください。ビルド後、Crystal Palace のバイナリを以下の場所に配置します:

root@kitploit:~
pico-tools/crystal-palace/

期待されるレイアウトは次のようになります:

root@kitploit:~
pico-tools/
└── crystal-palace/
    ├── src/
    ├── lib/
    └── ...

Tradecraft Garden の最新リリースをダウンロードし、以下の場所に配置します

root@kitploit:~
pico-tools/tradecraftgarden

期待されるレイアウトは次のようになります:

root@kitploit:~
pico-tools/
└── tradecraftgarden/
    ├── libtcg/
    ├── simple_pic/
    └── ...

Async PICOs をビルドできるようにするには、libtcg と simple_pic の例を必ずビルドしてください。

Visual Studio でプロジェクトを開く

このプロジェクトは CMake を使用して、MSVC でのビルドを簡素化しています。

リポジトリのルートから、フォルダーを右クリックして選択します:

root@kitploit:~
Open with Visual Studio

これにより CMake プロジェクトが読み込まれ、利用可能なビルド構成が表示されます。

ビルド構成

以下のビルド構成が利用可能です:

x64 Debug

デバッグ用に PICO と BOF のローカル実行可能バージョンをビルドします。

ローカルでの動作デバッグや Visual Studio でのコードのステップ実行には、この構成を使用してください。

x64 Release

最適化された PICO と BOF のローカル実行可能バージョンをビルドします。

Beacon 外部でリリース動作をテストするには、この構成を使用してください。

x64 Release Objects

デプロイ用アーティファクトをビルドします:

  • Crystal Palace を使用した位置独立 PICO
  • AsyncPICOMgr などの標準 BOF

これは Cobalt Strike 用のオブジェクトを生成するために使用される構成です。

ビルド出力

ビルドが完了すると、生成されたアーティファクトは以下の場所にあります:

build/x64-ReleaseObject/obj/

このディレクトリには、すぐに使用できるコンパイル済みの PICO と BOF が含まれています。

クイックスタート

カスタムスリープマスクの構成

Async PICOs を使用するには、Beacon がカスタムスリープマスクを使用する必要があります。

Malleable プロファイルで、Async PICOs を使用する前にカスタムスリープマスクのサポートを有効にしてください。

picos-cna/sleepmask.cna スクリプトは、非同期出力と Beacon のウェイクアップ調整をサポートするために使用される最小限の参照実装である async-sleepmask を読み込みます。

このスリープマスクは意図的にシンプルに作られており、制限事項 セクションで説明されている制限があります。これは、フレームワークのデモンストレーションとテストの簡素化を目的として提供されており、完成した本番運用可能なコンポーネントではありません。

スタック操作などの OPSEC 技術を備えたカスタムスリープマスクをすでにお持ちの場合は、既存のスリープマスクを Async スリープマスクに変更する を参照して、既存の実装に Async PICO サポートを統合してください。

Aggressor スクリプトの読み込み

x64 Release Objects 構成でプロジェクトをビルドした後、picos.cna と sleepmask.cna の Aggressor スクリプトを Cobalt Strike に読み込みます:

root@kitploit:~
Script Manager → Load → picos-cna/picos.cna
Script Manager → Load → picos-cna/sleepmask.cna

読み込み後、Async PICOs は picos コマンドで管理できます。

Async PICO の開始

PICO を開始するには:

root@kitploit:~
picos start [path to pico] [arguments]

例:

root@kitploit:~
picos start C:\temp\MonitorTGT.pico

引数付きの場合:

root@kitploit:~
picos start C:\temp\MonitorTGT.pico DOMAIN\serviceaccount

実行中の PICO の一覧表示

実行中の Async PICOs を表示するには:

root@kitploit:~
picos

これにより、現在実行中のタスクとその識別子が表示されます。

実行中の PICO の停止

Async PICO を停止するには:

root@kitploit:~
picos stop [pico id]

例:

root@kitploit:~
picos stop 3

PICO は停止シグナルを受け取り、クリーンアップを実行した後にグレースフルに終了します。

ヘルプ

追加の使用情報は、picos コマンド用の組み込みヘルプメニューから Cobalt Strike 内で直接確認できます。

カスタム Async PICO の作成

詳細は docs/writing_custom_async_pico.md を参照してください。

既存のスリープマスクを Async スリープマスクに変更する

詳細は docs/modifying_existing_sleepmask.md を参照してください。

同梱の例

  • tgt-monitor-pico: ログインを監視して Kerberos チケットを出力する非同期 PICO。https://github.com/jakobfriedl/tgt-monitor-bof に基づく
  • example-pico: Beacon のメインスレッドをブロックせずにウィンドウを開いたり、出力を送信したりする非同期機能を示す、非常にシンプルな PICO。

OPSEC に関する考慮事項

公開実装は、高度な回避技術を用いず、意図的にシンプルに保たれています。これは、変更せずにそのままデプロイするためのものではなく、適応させるための基盤として意図されています。

スレッド作成

Async PICOs は CreateThread を使用して起動されます。これにより実行モデルがシンプルで理解しやすくなりますが、同時に検出対象となる面も導入されます。公開実装では、スレッドはモジュールイメージにバックされていないメモリから実行を開始するため、スレッドの開始アドレスを検査する製品やヒューリスティックによって検出される可能性があります。

ユーザーは、代替のスレッド作成戦略や実行戦略が自環境により適しているかどうかを評価する必要があります。

スリープマスクの統合

このフレームワークは、非同期出力を Beacon に中継し、ウェイクイベントを調整するために、改変されたスリープマスクに依存しています。ここに含まれる実装は意図的に最小限であり、運用で使用する前にレビューする必要があります。

スリープマスクは実行モデルの一部であり、単なる利便性のためのレイヤーではありません。出力のキューイング、ドレイン、シグナリングの方法に変更を加える場合は、並行性の問題や Beacon 内部とのサポートされていない相互作用を引き起こさないように、慎重に評価する必要があります。

制限事項

公開実装には、使用前に理解しておくべきいくつかの実際的な制限があります。

共有グローバル変数ストレージ

Crystal Palace により PICO はグローバル変数を使用できますが、公開実装はグローバル状態を保存するために単純な共有ストレージモデルを使用しています。その結果、グローバル変数はスレッドごとに分離されません。

実際には、複数の Async PICOs を同時に実行する場合、それらがグローバル変数に依存していると追加の注意が必要になる可能性があります。

スリープマスクへの依存

Async PICOs は、非同期出力と Beacon のウェイクアップ調整のために改変されたスリープマスクに依存しています。したがって、このフレームワークは完全に自己完結型ではなく、ドロップイン BOF として扱うことはできません。

完全に完成したデプロイアーティファクトとしては意図されていない

このリポジトリは、完成した本番運用可能なコンポーネントを提供するというよりも、フレームワークと実装アプローチをデモンストレーションするように設計されています。同梱の例は、個々のユースケースに合わせて拡張、修正、適応されることを意図しています。

ツールをダウンロード