PAGES
← all tools
◆ Exploitation & C2

villain

v2.2.0 open-source

Villain is a C2 framework that handles multiple reverse TCPTCPA network protocol that delivers a reliable, ordered stream of bytes between two endpoints. It detects lost data and retransmits it. and HoaxShell-based shells, generates payloads, and shares sessions among connected Villain instances.

Summary

Villain is an open-source command-and-control framework, released under a non-commercial licence, that manages multiple reverse TCP and HoaxShell-based shells from a single console. It runs as a command-line tool, launched locally to handle payload generation, file uploads and fileless script execution against active sessions, and it can share sessions with sibling Villain instances for multiplayer operation. This puts it in the hands of red teamers and penetration testers running post-exploitation infrastructure rather than defenders, and it fits within the broader stage 0/1 C2 category alongside tools that generate and manage reverse shells. First committed in 2022 with nine contributors and six tracked releases, the project describes itself as actively developed, though there have been no commits in the past year and the last release was over 650 days ago.

Villain is a C2 framework that handles multiple reverse TCP and HoaxShell-based shells, generates payloads, and shares sessions among connected Villain instances.

How villain helps

Which of my active shell sessions are still alive and which ones dropped?

keeps a running console of every reverse TCP and HoaxShell session and lets you swap between them from one pseudo-shell prompt, so dead or hung sessions are visible instead of tracked across separate terminal windows

How do I run a script on a target without dropping it to disk first?

the inject command executes a script in memory against the active session, leaving no file for the target's own logging to pick up

How do I turn a bare PowerShell reverse shell into something fully interactive?

auto-invokes ConPtyShell as a new process against the session, upgrading it to an interactive Windows shell without a manual handoff

Can another operator on a different machine work the same set of sessions I'm running?

shares live sessions with sibling Villain instances over the network, so a connected server sees and can act on the same shells

Did I just fat-finger a command that's going to hang my shell?

Session Defender inspects issued commands for input likely to freeze the session before it's sent, flagging the mistake instead of letting it stall the shell

all 7 features, with the evidence for each →

Languages

Not documented

Features

7 capabilities · 2 backed by code, an API document or a real run

Built from villain's releases, docs, README and our own runs. “Seen” marks the month we first spotted a release the vendor didn't date. Group names and tags are our labels.

Compare with peers →

What villain offers you

  • Command-line interface4
All capabilities 7 capabilities
Reverse TCP listener verified Hosts a reverse TCP multi-handler that accepts incoming connections from payloads, with a configurable port. 3 releases · 1 other source · first seen Sep 2024

release

  • Improved Windows/hoaxshell payload templates. v2.2.0 · Sep 2024 · source · release history
  • Reverse TCP handler (formerly referenced as netcat, now reverse_tcp) rebuilt for significantly greater performance and stability. v2.2.0 · Sep 2024 · source · release history
  • References to netcat have been renamed to reverse_tcp in the project; configurations or scripts referencing the netcat handler name will need to be updated. v2.2.0 · Sep 2024 · source · release history

command line

  • --reverse-tcp-port — Reverse TCP multi-handler port (default: 4443). v2.2.0 · Sep 2024 · command-line history
Version information verified Displays the tool's current version number via a command-line flag. 1 release · 2 other sources · first seen Sep 2024

Also counts toward: Command-line interface

release

  • Adds --version (-v) argument to display the current Villain version. v2.2.0 · Sep 2024 · source · release history

command line

example

  • Check which version of Villain you are running after upgrading. python3 villain.py --version v2.2.0 · Sep 2024 · source
Fileless script execution shipped Executes scripts in active sessions without writing files to disk, accessible via the inject command. 2 releases · first seen Sep 2024

Also counts toward: Command-line interface

release

  • The exec pseudo shell command has been renamed to inject; any scripts or workflows invoking exec for fileless execution will break. v2.2.0 · Sep 2024 · source · release history
  • Renames exec pseudo shell command to inject, now a dedicated command for fileless script execution in active sessions. v2.2.0 · Sep 2024 · source · release history
HoaxShell payload support shipped Generates and manages HoaxShell-based reverse shell payloads. 2 releases · first seen Jul 2024

release

  • Improved Windows/hoaxshell payload templates. v2.2.0 · Sep 2024 · source · release history
  • Improves LHOST argument parsing in payload generation to support IP, interface, or hostname with DNS resolution check v2.1.0 · Jul 2024 · source · release history
Self-update shipped Fetches and applies updates from the source repository via CLI commands. 1 release · 1 other source · first seen Jul 2024

Also counts toward: Command-line interface

release

  • Adds -u CLI flag to manually fetch latest commits from GitHub instead of checking on startup v2.1.0 · Jul 2024 · source · release history

example

  • Manually trigger an update by fetching the latest commits from the main branch villain -u v2.1.0 · Jul 2024 · source
Session tracking notifications shipped Provides session ID information in reverse shell connection notifications for easier identification. 1 release · first seen Sep 2024

release

  • New reverse shell notifications now include the session ID for easier session tracking. v2.2.0 · Sep 2024 · source · release history
Session traffic redirection shipped Manages network traffic redirection for active sessions using redirectors. 1 release · first seen Sep 2024

Also counts toward: Command-line interface

release

  • Adds redirectors feature and prompt command for managing traffic redirection in sessions. v2.2.0 · Sep 2024 · source · release history

Lines in monospace are the tool's own words: help text parsed from its source, or an endpoint from its API document. Under release, a line is our summary of a dated release. Under docs, it is quoted from the tool's own documentation or website. Each links back to the source it came from.

Score card

  1. Shipping velocity releases a month, last 12 months
  2. Documentation quality release-notes rubric, 0–100
  3. Breaking-change discipline how rarely a release breaks users, and notice given
  4. Maintenance risk quiet time against its own cadence, maintainers
  5. Innovation & surface new capabilities, API and MCP surface
  6. Community health
  7. Contributor trend distinct committers, this year against last
  8. Maintainer concentration bus factor now against a year ago
  9. Issue backlog trend issues closed per issue opened, 12 months
  10. Responsiveness median time to a maintainer’s first reply

Nine scores for villain, each built from the releases, notes and API history this site tracks — and, on Researcher and Business, where it stands among every measured tool in its category and how that has moved.

Score cards are part of every paid plan.

See plans →

Each score is 0–100 on a published rubric, derived from data this site already shows. A dimension we cannot measure says so — it is never scored 0 and never enters a rank.

How this is scored
  • Shipping velocity — releases a month over the last 12 months, on a log scale where 16 a month scores 100. Needs 3 releases in the window.
  • Documentation quality — the release-notes rubric published on the analytics page, unchanged.
  • Breaking-change discipline — the share of releases carrying a breaking change (none scores 100, half or more scores 0). Only projects that label breaking changes are measured: a clean record cannot be told from an unlabelled one.
  • Maintenance risk — quiet time measured against the tool's own release cadence (quiet longer than 90 days and three typical gaps scores 0), plus the number of active maintainers and whether contributors are growing, where known. Higher is lower risk.
  • Innovation & surface — new capabilities in the feature ledger this year, API and MCP operations added, and the share of commits that are features: the mean of whichever we hold.
  • Community health (open-source tools only) — each is a direction, not a size: contributors this year against last, the bus factor now against a year ago, and issues closed per issue opened, where steady scores 50, doubled 100 and halved 0; plus the median time to a maintainer's first reply (an hour scores about 100, a month or more 0). A commercial card has no repository and carries none of the four.
  • Documented delivery (commercial tools) — when a vendor's documented new capabilities have slowed against its own baseline, that counts against the overall standing as heavily as two low dimensions. Steady delivery, or too little history to judge, leaves the standing alone; it is never a sixth score.
  • Open-source tools are scored on repository signals; commercial tools on their published changelog. Ranks compare tools within one category and one profile and need at least five measured peers; the overall standing needs three ranked dimensions. Best-in-breed or consolidator is a shape, not a quality, and is never scored.

Release-note detail over time

See how much detail villain puts in its release notes, quarter by quarter, and compare it with tracked tools in the same category. This history uses up to ten retained, reviewed notes per tool; sparse or blank older quarters may reflect that limit.

Checking release-note history…

Explore the full chart →

Releases

Show

2 entries

  1. September 20241
  2. July 20241
    Show

    2 entries

    Project health

    Issue, contributor and maintainer activity in t3l3machus/Villain, 2023-10 – 2026-09, as of 2026-09-25. Twelve-month figures first; the trend lines run the whole window.

    1. Contributors 0 −3 vs prior 12 months
    2. Maintainers 0 +0 joined · −1 left, last 12 months
    3. Bus factor 0 committers behind half the commits
    4. Community-filed 100% of issues opened, last 12 months
    5. Median time to close not measured issues closed, last 12 months
    6. Open backlog 21 of 135 issues ever filed
    1. Issues opened / month 0 · 0 communitymaintainers
    2. Open backlog 21
    3. Contributors / month 0
    4. Commits / month 0
    5. Stars 4,455
    Issue themes, last 12 months
    • other 100%

    Counts from the project's public repository and git history; no individuals are identified. Maintainers are the committers covering 80% of the last year's commits. how we measure this

    Articles

    1 article · updated Nov 4, 2026

    Where villain turns up in what others publish: how-tos, attack reports that name it, and incident write-ups. A row says why it is here and quotes where the article names it; the link goes to the publisher.

    Tutorials & guides 1

    • A Detailed Guide on Villain C2 Framework Hacking Articles
      Overview Villain is an open-source command-and-control (C2) framework developed by t3l3machus that turns a single operator console into a full collaborative attack platform.
      2 more quotes
      We deploy Villain on a Kali Linux attacker (192.168.1.17), compromise a Windows host (192.168.1.12) and a Linux host (192.168.1.11), upgrade the shells, and federate a second Villain server running on an Ubuntu machine…
      Villain is purpose-built for exactly this post-exploitation phase.

    Libraries its release ships

    What its latest release locks, checked against known advisories.

    None of its release's images build from a lockfile we can read.

    Add the badge to your README

    Maintain this project? The badge links readers straight to this page, so they can follow every release here.

    Tracked by Cyber Toolchain Choose a badge style and copy the code →
    browse all tools → score card for your toolchain →