PAGES
← all tools
◆ Post-Exploitation

penelope

v0.21.0 open-source

Shell handler for penetration testers that provides automatic PTY upgrades, session management, logging, file transfers, and modules for post-exploitation.

Summary

Penelope is an open-source shell handler for managing reverse shells during penetration tests and CTFs, released under an open license and run as a command-line tool on Unix-like systems, either as a standalone Python script, via pipx, or through the Kali Linux package repositories. It targets penetration testers and CTFCTFCapture The Flag — a competitive hacking challenge format where participants exploit intentionally vulnerable systems or puzzles to retrieve hidden strings, used by cyber tools to practice and demonstrate offensive and defensive techniques. players rather than defenders, and its README frames it as a more capable alternative to basic netcat listeners, adding automatic PTY upgrades, session logging, file transfer and a set of post-exploitation modules covering privilege escalationprivilege escalationGaining permissions beyond those an account or process initially had. It can turn limited access into administrator control or access to another user's resources., Active DirectoryActive DirectoryMicrosoft's directory service for Windows networks that centralises authentication and authorisation; cyber tools target or integrate with it because it controls identity and access across most enterprise environments. enumeration and tunneling through tools like Ligolo-ng and Chisel. First committed in 2021, it has 20 contributors and remains actively maintained, with 198 commits and 17 releases in the past year, the most recent 65 days ago.

Shell handler for penetration testers that provides automatic PTY upgrades, session management, logging, file transfers, and modules for post-exploitation.

How penelope helps

Which shells are still holding a connection, and which ones dropped without me noticing?

tracks every session per host and displays live status in the main menu, so dead or hung connections are visible instead of silently occupying a slot

How do I pull a whole directory off a compromised host without hand-crafting a transfer?

offers built-in download and upload of files and folders over the existing shell, with progress bars and remote path autocompletion so files don't have to be moved one at a time

What did the target actually type, and what came back, during a session that ended hours ago?

logs shell activity as it happens, giving a record to review after the session closes rather than relying on scrollback

Can I get a usable interactive shell without wrestling the target into a PTY by hand?

auto-upgrades incoming connections to a full PTY on Unix-like targets, or to readline on Windows, as soon as they land

How do I move privilege-escalation and AD enumeration tools onto a box without re-uploading them by hand each time?

bundles modules such as privesc checks, adPEAS, and known collection tools that can be pushed to a session directly from the handler

How do I get traffic from my machine into a network I only have a shell on?

includes Ligolo-ng and Chisel tunneling modules that set up pivoting directly from an active session, without switching to a separate tool

all 14 features, with the evidence for each →

Languages

Not documented

Features

14 capabilities · 1 backed by code, an API document or a real run

Built from penelope'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 penelope offers you

  • Command-line interface2
All capabilities 14 capabilities
Session concurrency control verified Caps the number of active shells per host, and can be set to zero to reject all new inbound sessions entirely. 12 releases · 5 other sources · first seen Jan 2022

release 12 total

  • Adds -ms / --max-sessions flag to cap the number of concurrent sessions per host (default 5). v0.21.0 · Jun 2026 · source · release history
  • Adds -ms / --max-sessions flag to cap the number of active sessions per host (default 5; set to 0 to reject all new connections). v0.21.0 · Jun 2026 · source · release history
  • Enables listeners on multiple ports simultaneously. v0.14.14 · Dec 2025 · source · release history
  • Supports reverse shells via SSH. v0.14.8 · Sep 2025 · source · release history
  • Adds automatic PowerShell payload generation. v0.14.8 · Sep 2025 · source · release history
  • Introduces Streams for concurrent interaction across multiple sessions. v0.14.8 · Sep 2025 · source · release history

command line

  • --max-sessions — Max active sessions per host (default 5, 0 = reject all new) v0.21.0 · Jun 2026 · command-line history

example

  • Harden a honeypot-style listener that should log connections but never grant an interactive shell — reject every inbound session. penelope -p 4444 --max-sessions 0 v0.21.0 · Jun 2026 · source
  • Limit a listener to 3 shells from the same host to prevent runaway reverse-shell floods. penelope --max-sessions 3 -p 4444 v0.21.0 · Jun 2026 · source
  • Limit a busy listener to 3 concurrent shells per host to avoid overwhelming a C2 or accidentally saturating a target. penelope -p 4444 --max-sessions 3 v0.21.0 · Jun 2026 · source
  • Listen on multiple ports at once to catch shells from targets configured with different callback ports. penelope -l 4444 4445 4446 v0.14.14 · Dec 2025 · source
File transfer progress reporting shipped Displays real-time progress bars during file uploads and downloads for both agent and non-agent sessions. 8 releases · 1 other source · first seen Jan 2022

release 8 total

  • Adds real-time progress bars for every file upload and download across both agent and non-agent sessions. v0.21.0 · Jun 2026 · source · release history
  • Adds progress bars for every upload and download across both agent and non-agent sessions. v0.21.0 · Jun 2026 · source · release history
  • Adds remote filesystem autocompletion when using the download command, enabling tab-completion of paths on the target host. v0.19.1 · Mar 2026 · source · release history
  • Random suffix on uploads is now disabled by default — uploads that previously relied on unique suffixed filenames will no longer get them unless explicitly re-enabled. v0.14.14 · Dec 2025 · source · release history
  • Disables random suffix on uploads by default, producing predictable filenames on target. v0.14.14 · Dec 2025 · source · release history
  • Adds upload functionality for Windows shells. v0.14.8 · Sep 2025 · source · release history

example

  • Tab-complete remote paths while downloading files from a compromised host, avoiding manual path guessing. download <remote/path/<TAB> v0.19.1 · Mar 2026 · source
Post-exploitation modules shipped Provides built-in post-exploitation modules including DirtyPipe (CVE-2022-0847), DirtyFrag, and adPEAS. 8 releases · first seen Dec 2022

release 8 total

  • Adds adPEAS Active Directory enumeration module. v0.21.0 · Jun 2026 · source · release history
  • Adds DirtyPipe (CVE-2022-0847) and DirtyFrag local privilege-escalation modules. v0.21.0 · Jun 2026 · source · release history
  • New post-exploitation modules: DirtyPipe (CVE-2022-0847), DirtyFrag, and adPEAS. v0.21.0 · Jun 2026 · source · release history
  • Adds selective upload support for the privesc, potato, credump, and AD modules, enabling targeted file delivery during post-exploitation. v0.20.0 · May 2026 · source · release history
  • Adds a potato module for Windows privilege escalation. v0.20.0 · May 2026 · source · release history
  • New cleanup module for post-session cleanup operations. v0.19.1 · Mar 2026 · source · release history
Bundled cyber toolchain shipped Ships with bundled cyber tools such as ligolo-ng and SharpHound, kept up to date with newer upstream releases. 5 releases · 1 other source · first seen Oct 2023

release

  • Updates bundled ligolo-ng to v0.8.3 and SharpHound to v2.13.0. v0.21.0 · Jun 2026 · source · release history
  • Updated bundled tooling: ligolo-ng upgraded to v0.8.3, SharpHound upgraded to v2.13.0. v0.21.0 · Jun 2026 · source · release history
  • Revamped payload hints and added metasploit hints v0.10.0 · Oct 2023 · source · release history
  • Added SSL verification bypass for Internet downloads v0.10.0 · Oct 2023 · source · release history
  • raw mode menu added to the waiting Listener v0.10.0 · Oct 2023 · source · release history

docs

  • Shell handler for penetration testers that provides automatic PTY upgrades, session management, logging, file transfers, and modules for post-exploitation.
Shell session upgrade shipped Upgrades basic shells to fully interactive sessions; the legacy script/socat fallback method has been removed. 6 releases · first seen Sep 2025

release

  • Drops the legacy script / socat shell-upgrade fallback, streamlining the upgrade path. v0.21.0 · Jun 2026 · source · release history
  • The old script / socat upgrade fallback has been dropped; sessions relying on that fallback will no longer upgrade automatically. v0.21.0 · Jun 2026 · source · release history
  • The old script / socat upgrade fallback has been dropped, removing a previously available session upgrade method. v0.21.0 · Jun 2026 · source · release history
  • Re-enables PTY support for Windows shells. v0.14.8 · Sep 2025 · source · release history
  • Adds readline support for basic (non-PTY) shells. v0.14.8 · Sep 2025 · source · release history
  • Enables accessing command history entries via exclamation mark syntax. v0.14.8 · Sep 2025 · source · release history
Ligolo-ng pivoting shipped Adds a `Ligolo-ng` module for pivoting and tunneling directly from the shell handler. 2 releases · first seen Dec 2025

release

  • Supports jumpboxes for TCP Listeners, enabling shell routing through intermediary hosts. v0.18.0 · Jan 2026 · source · release history
  • Adds a Ligolo-ng module for pivoting and tunneling directly from the shell handler. v0.15.0 · Dec 2025 · source · release history
FileServer functionality shipped Introduces FileServer functionality for serving files directly from the handler. 1 release · 1 other source · first seen Sep 2025

release

  • Introduces FileServer functionality for serving files directly from the handler. v0.14.8 · Sep 2025 · source · release history

example

  • Serve a folder over HTTP penelope -s /path/to/dir
Post-session cleanup shipped Provides built-in capabilities for cleaning up artifacts and traces after a session ends. 1 release · first seen Mar 2026

release

  • New cleanup module for post-session cleanup operations. v0.19.1 · Mar 2026 · source · release history
Session attachment hooks shipped Allows execution of modules or actions automatically when a new session is attached. 1 release · first seen Jan 2026

release

  • Introduces an on_first_attach hook for Modules, allowing actions to trigger automatically when a session is first attached. v0.18.0 · Jan 2026 · source · release history
Chisel HTTP tunneling shipped Adds a `Chisel` module for HTTP-based tunneling directly from the shell handler. 1 release · first seen Dec 2025

release

  • Adds a Chisel module for HTTP-based tunneling directly from the shell handler. v0.15.0 · Dec 2025 · source · release history
OSCP-safe execution mode shipped Adds `-O / --oscp-safe` switch restricts penelope to techniques permitted in OSCP exam environments. 1 release · first seen Dec 2025

Also counts toward: Command-line interface

release

  • New -O / --oscp-safe switch restricts penelope to techniques permitted in OSCP exam environments. v0.14.14 · Dec 2025 · source · release history
Payload interface scoping shipped Adds interface filter on the `payloads` command to scope payload generation to a specific network interface. 1 release · first seen Dec 2025

Also counts toward: Command-line interface

release

  • Adds interface filter on the payloads command to scope payload generation to a specific network interface. v0.14.14 · Dec 2025 · source · release history
Local port forwarding shipped Adds local port forwarding capability for tunneling traffic through shell sessions. 1 release · first seen Sep 2025

release

  • Adds local port forwarding capability for tunneling traffic through shell sessions. v0.14.8 · Sep 2025 · source · release history
Stream-based session management shipped Introduces Streams for concurrent interaction across multiple sessions. 1 release · first seen Sep 2025

release

  • Introduces Streams for concurrent interaction across multiple sessions. v0.14.8 · Sep 2025 · 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.

Screenshots

From the release notes, newest first. Click one to see it full size.

CVE-2026-50558 Jun 8, 2026

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 penelope, 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 penelope 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

13 entries

  1. June 20263
  2. May 20261
  3. March 20261
  4. January 20261
  5. December 20252
  6. September 20251
  7. October 20231
  8. December 20221
  9. January 20222
    Show

    13 entries

    Project health

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

    1. Contributors 13 +8 vs prior 12 months
    2. Maintainers 1 +0 joined · −0 left, last 12 months
    3. Bus factor 1 committers behind half the commits
    4. Community-filed 97% of issues opened, last 12 months
    5. Median time to close 3.2 days first maintainer reply 10 hours
    6. Open backlog 3 of 85 issues ever filed
    1. Issues opened / month 0 · 0 communitymaintainers
    2. Open backlog 3
    3. Contributors / month 0
    4. Commits / month 0
    5. Stars 2,077
    Issue themes, last 12 months
    • bugs 22%
    • features 56%
    • questions 3%
    • other 19%

    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

    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 →