OnionC2は、Torを利用した暗号化・匿名化通信を実現するオープンソースのC2フレームワークです。エージェントはRust(Artiを使用)で記述されており、サーバーとAPIはGoで実装されていて、XENAのC2インターフェースと互換性のあるスタイルになっています。

概要
OnionC2は、レッドチームがTorネットワーク上でステルス性の高いコマンド&コントロールチャネルを確立することを可能にします。Torのオニオンルーティングを活用し、サーバーとエージェントのIPアドレスを隠蔽することで、検知リスクを最小限に抑えます。アーキテクチャはデータプレーンとコントロールプレーンを分離しています:
- エージェントはターゲットシステム上で動作し、Rustでコンパイルされ、Arti(Rust製Tor実装)とリンクしています。
- C2サーバーとAPIはGoで書かれており、ローカルまたはXENA GUI経由でアクセス可能です。
主な攻撃機能
- Torオニオンサービスを利用した暗号化・匿名化C2トラフィック
- クロスプラットフォームなペイロード配信を実現するRust製エージェント
- レジストリやショートカット技術を用いたWindowsでの永続化
- シェルコマンド実行、ファイルのアップロード/ダウンロード、クリップボードアクセス、システム偵察
- 今後の状況把握のためのスクリーンショット機能(計画中)
- 可視性を低減するための時間ベースのエージェントチェックイン(アクティブ時間帯指定)
インストールと使用方法
# サーバーのセットアップ(GoとTorが必要) cd api go run . —api–key=YOUR_SECRET_KEY # Torオニオンサービスの設定 tor –f torrc # エージェントのビルドと設定 cd agent # config.rsのget_addressを.onion URLで更新 cargo build —release # ターゲットにデプロイして実行 ./agent —api–key=YOUR_SECRET_KEY |
サーバーは2つのAPIを公開します:1つはUnixソケットまたはオニオンサービス経由でのエージェント接続用、もう1つ(デフォルトでポート8080)はXENA C2 UIを提供します。
運用ユースケース
- ネットワーク監視を回避するためのTor経由での初期アクセスおよびポストエクスプロイト
- Rustエージェントを用いたクロスプラットフォームのレッドチーム活動
- ラテラルムーブメントのための安全なリモートアクセス
- Windows環境でのステルス性を活かした永続化維持
- 検知リスクを最小化するための遅延・時間指定チェックインの追加
制限事項と防御上の考慮点
- ArtiはTorの機能を一部しかカバーしていないため、レガシーTorとの併用が推奨されます。
- 予期しないRustバイナリやレジストリ変更、オニオントラフィックによって検知される可能性があります。
- 現在も開発中のため、機能が変更されたり安定化が必要な場合があります。
推奨事項
OnionC2は、外部プロキシを必要とせずTorベースのC2チャネルを求める匿名性重視のレッドチームにとって有用なツールです。クロスプラットフォーム対応のRustエージェントとGoサーバーにより、ステルス性と暗号化が求められるエンゲージメントに適しています。本フレームワークは、スクリーンショットやデータ流出モジュールと組み合わせることで、より完全なキャンペーンを実現できます。
次のステップ
- 隔離されたラボ環境でOnionC2を展開し、エージェントのパフォーマンス、永続化の効果、検知シグナルを測定する。
- カスタムペイロードリポジトリにエージェントビルドを統合し、AV/EDR検知に対してテストする。
- ステルス監視ツールや安全な流出経路と組み合わせる。
詳細やダウンロードはこちら:https://github.com/zarkones/OnionC2
翻訳元: https://www.darknet.org.uk/2025/06/onionc2-tor-powered-rust-command-and-control-framework/