
Cobalt StrikeのMalleable C2のオープンソース実装
Cobalt StrikeのMalleable C2のオープンソース実装
OpenMalleableC2は、HTTP変換のためのCobalt StrikeのMalleable C2プロファイル形式を実装したフレームワーク非依存のライブラリです。これにより、セキュリティ研究者やレッドチームは、カスタムツールやC2フレームワークでMalleable C2通信を簡単に実装できます。
Malleable C2プロファイルをそのまま利用して、任意のデータをHTTP経由で透過的かつ(できれば)安定した方法で送信できます。
HTTPトラフィックのカスタマイズ機能にはさまざまな程度のものがありますが、Mythic、Havoc、Adaptixなどのより発展したフレームワークでさえ、Cobalt StrikeのMalleable C2が可能にするような、無害に見えるHTTPリクエスト内にコールバックデータを埋め込むという点でのHTTPトラフィックカスタマイズの深さにはまだ及んでいません。このプロジェクトの目的は、オープンソースツールがMalleable C2システムのカスタマイズの深さと、それに依存する既存のリソース(例:プロファイル、プロファイル生成ツールなど)の両方の恩恵を受けられるようにすることです。
ほとんど動作していますが、現時点では安定性については保証しません。バグを見つけたら報告してください :)
提供されているサンプルは、典型的なBeaconコールバックを示すシンプルな「ピンポン」エージェントとサーバーです。エージェントはタスクの確認のためにGETコールバックを送信し、その後、タスクの出力をサーバーに送信するためにPOSTコールバックを送信します。
この例では、タスクは単なるプレースホルダーのランダムな文字列であり、エージェントはそれを取得し、反転させて結果として送り返します。サーバーは反転された文字列が正しいことを検証し、それに応じて応答を送信します。
ピンポンサンプルの実行:
# Start Python server
python Server\Python\examples\pingpong_server.py profiles\gmail.profile
# Or start Go server
cd Server\Go
go run .\cmd\pingpong-server ..\..\profiles\gmail.profile
# Run agent (in another terminal)
.\Client\C\examples\pingpong_agent.exe profiles\gmail.profile
Cクライアントサンプルのビルド:
cd Client\C\examples
build.bat
リポジトリの構成:
Client\C\lib Cクライアントライブラリ
Client\C\examples Cピンポンエージェントサンプル
Server\Python\lib Pythonサーバーライブラリ
Server\Python\examples Pythonピンポンサーバーサンプル
Server\Go\openmalleable Goサーバーライブラリ
Server\Go\cmd\pingpong-server Goピンポンサーバーサンプル
出力例:
pingpong_server.py:
