PAGES
← all tools
◆ Post-Exploitation

peirates

v1.1.34 open-source

Peirates - Kubernetes Penetration Testing tool

Summary

peirates is an open-source, GPLv2-licensed command-line tool for penetration testing Kubernetes clusters, built to escalate privilege and pivot once an attacker already has a foothold inside a pod or node. You run it as a compiled binary from within a container running on the cluster, or from a node itself, and it automates the collection of service account tokens and secrets, cloud provider detection, and further code execution to take over the cluster; this places it squarely in post-exploitation rather than initial-access tooling, aimed at red teamers and penetration testers rather than platform engineers or SOCSOCA security operations center, the team or function that monitors threats, investigates alerts and coordinates incident response. Its work can be internal, outsourced or shared. analysts. First committed in 2018 with 16 contributors, it has kept up a steady release cadence historically, though recent activity has slowed to a handful of commits in the past year and its last release was over 200 days ago.

Peirates - Kubernetes Penetration Testing tool

How peirates helps

Which service accounts and secrets can be reached from the pod or node I am standing on?

walks the filesystem and API to collect service account tokens and secrets automatically, rather than requiring the operator to hunt for each one by hand

Does this pod's cloud identity let me reach anything outside the cluster?

detects the underlying cloud provider from within the pod and uses that foothold to pursue credentials and resources reachable from the instance

Which of my running containers can be broken out of to reach the underlying node?

checks for a set of known container escape conditions, such as a writeable host filesystem mount, an exposed container socket, or a exploitable kernel file, and alerts on which are present

Can I use one stolen credential to try every identity I have collected against the API server?

replays a captured command against every service account it has gathered rather than stopping at the first one that succeeds, showing which identities actually have access

What can I still reach once I escalate from this node's kubelet?

pulls kubeconfig files and embedded certificates from the kubelet's known file paths to extend access beyond the pod

How exposed is a captured token if I need to hand it to another tool or teammate?

includes a menu option to display the stored value of any collected service account token directly, rather than leaving it opaque

all 17 features, with the evidence for each →

Languages

Not documented

Features

17 capabilities · 4 backed by code, an API document or a real run

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

  • Command-line interface3
  • Self-hosted deployment1
All capabilities 17 capabilities
Interactive console verified Launches a menu-driven interactive shell as the primary user interface for operating the tool. 1 release · 21 other sources · first seen Oct 2021

release

  • Added image building and K8S deployment functions from @devsecfranklin 1.1.11 · May 2023 · source · release history

docs 18 total

  • Please reload this page . inguardians / peirates Public Notifications Fork 135 Star Expand file tree Directory actions More options More options Directory actions More options More options Latest commit History History History Folders and files Name Name Last commit message Last commit date parent directory .. seen Sep 2026 · source
  • Please reload this page . inguardians / peirates Public Notifications Fork 135 Star Expand file tree More file actions More file actions Latest commit History History History 253 lines (189 loc) · 20.4 KB File metadata and controls 253 lines (189 loc) · 20.4 KB Raw Copy raw file Download raw file Open symbols panel… seen Sep 2026 · source
  • Please reload this page . inguardians / peirates Public Notifications Fork 135 Star Expand file tree More file actions More file actions Latest commit History History History 27 lines (16 loc) · 2.85 KB File metadata and controls 27 lines (16 loc) · 2.85 KB Raw Copy raw file Download raw file Outline Edit and raw… seen Sep 2026 · source
  • Please reload this page . inguardians / peirates Public Notifications Fork 135 Star Expand file tree Directory actions More options More options Directory actions More options More options Latest commit History History History Folders and files Name Name Last commit message Last commit date parent directory .. seen Aug 2026 · source
  • Please reload this page . inguardians / peirates Public Notifications Fork 135 Star Expand file tree More file actions More file actions Latest commit History History History 143 KB File metadata and controls 143 KB Download raw file Edit and raw actions seen Aug 2026 · source
  • Please reload this page . inguardians / peirates Public Notifications Fork 135 Star Expand file tree More file actions More file actions Latest commit History History History 63 lines (52 loc) · 3.71 KB File metadata and controls 63 lines (52 loc) · 3.71 KB Raw Copy raw file Download raw file Outline Edit and raw… seen Aug 2026 · source

we ran it

  • The tool started successfully (exit 0), reported it could not find network interface eth0, detected no public cloud provider metadata API, and dropped into its interactive menu shell (version… Aug 2026 · the full run
  • The tool failed to retrieve network interface eth0 and left the cloud provider metadata API unchecked, then successfully launched its interactive console at version 1.1.29a. Aug 2026 · the full run

example

  • Run a shell command directly from the peirates main menu without exiting. shell ls -la /tmp v1.1.1 · Oct 2021 · source
Container escape techniques and detection shipped Provides menu items to perform specific container escapes (hostPID breakout, docker socket breakout, core_pattern exploitation, host root filesystem access) and scanners to detect the availability of these conditions. 13 releases · 5 other sources · first seen Sep 2026

release 13 total

  • Added docker-socket-breakout container escape detector for Docker-compatible sockets v1.1.32 · Sep 2026 · source · release history
  • Adds a container escape technique when CAP_PTRACE is available and the pod has hostPID set to true (amd64 only). v1.1.32 · Sep 2026 · source · release history
  • Adds docker-socket-breakout container escape that opens an interactive host-root shell when a Docker-compatible socket is accessible.⁠︀︄︇︀︅︉︀︅︀︀︃︀︀︅︅︀︅︊︀︄︆︀︃︄⁠ v1.1.32 · Sep 2026 · source · release history
  • Adds a scanner that detects which of the four new container escape conditions are present and alerts accordingly. v1.1.32 · Sep 2026 · source · release history
  • Added container escape detector for writable /proc/sys/kernel/core_pattern v1.1.32 · Sep 2026 · source · release history
  • Added a unified scanner to alert on availability of the above four container escapes v1.1.32 · Sep 2026 · source · release history

docs

  • ptrace-container-escape-single-command-only ptrace-container-escape-single-command-only 472ee5e ptrace-container-escape-single-command-only ptrace-container-escape-single-command-only 472ee5e JayBeale tagged this 09 Sep 19:46 Added a container escape using PTRACE but it only runs one command Assets Loading Please… docs update · Oct 2026 · source
  • 71 lines (60 loc) · 4.59 KB 71 lines (60 loc) · 4.59 KB scan-configmaps Scan ConfigMaps for misplaced credentials hostpid-breakout Enter a node from a privileged hostPID container container-escape-scan Scan for container escape prerequisites docker-socket-breakout Enter a host through an exposed Docker socket… docs update · Oct 2026 · source
  • File tree Collapse file tree Open diff view settings Filter options .github/workflows kind.yaml Makefile docs commands README.md container-escape-scan.md hostpid-ptrace-breakout.md manifest.tsv plans container-escapes.md hostpid-ptrace-breakout.md utils hostpid-ptrace-breakout-pod.yaml internal app dispatch.go… docs update · Oct 2026 · source
  • v1.1.31 - added priv hostPID breakout 04 Sep 00:16 v1.1.31 27ed9d3 added a menu item to break out of privileged containers that use the host's PID namespace seen Sep 2026 · source
  • hostpid-breakout-kind-integration.sh hostpid-breakout-kind-integration.sh Privileged hostPID breakout integration test make hostpid-breakout-kind-test to create a disposable single-node Kind cluster and exercise main-menu item 24 through a real static Peirates binary. seen Sep 2026 · source
Service account token inspection shipped Allows inspection of the contents of stored service account tokens for auditing purposes. 3 releases · 3 other sources · first seen Oct 2021

Also counts toward: Command-line interface

release

  • Adds kubectl-can-i command to check kubectl auth can-i permissions across all stored service account tokens and certificates.⁠︀︄︇︀︅︉︀︅︀︀︃︀︀︅︅︀︅︊︀︄︆︀︃︄⁠ v1.1.34 · Oct 2026 · source · release history
  • Adds json-cat command to pretty-print JSON files. v1.1.34 · Oct 2026 · source · release history
  • Enables displaying the plaintext values of stored service account tokens v1.14 · Nov 2023 · source · release history

example

  • Inspect a captured secrets or config JSON file with readable formatting during a post-exploitation review. json-cat v1.1.34 · Oct 2026 · source
  • Enumerate what every collected service account token and certificate is permitted to do in the cluster — useful after bulk token harvesting to find a privileged identity. kubectl-can-i v1.1.34 · Oct 2026 · source
  • Inspect the contents of stored service account tokens for auditing or debugging. peirates tokens --display-values 1.1.14 · Oct 2021 · source
Inline shell command execution shipped Provides menu options to execute arbitrary shell commands from within the interactive interface. 3 releases · 2 other sources · first seen Oct 2021

release

  • Adds file output support for kubectl, curl, shell, and kubectl-try-all commands v1.1.22 · May 2024 · source · release history
  • Enables passing multiple commands to the shell subcommand v1.1.5 · Oct 2021 · source · release history
  • Adds shell <command> [args] as a main menu entry to execute shell commands from within peirates v1.1.1 · Oct 2021 · source · release history

docs

  • v1.1.33 - nodes/proxy exec Latest Latest JayBeale released this 22 Sep 01:57 · 4 commits to main since this release v1.1.33 16b383a added nodes-proxy-exec functionality Thanks to Graham Helton for a wide-ranging exploitable non-CVE working as intended behavior Assets Loading Please reload this page docs update · Oct 2026 · source
  • Commits on Sep 25, 2026 Add manual ConfigMap scan Kind harness f73c334 Commits on Sep 24, 2026 Scan ConfigMaps with stored identities 81b5075 Commits on Sep 22, 2026 updated README for build 054aee1 added build note d532aa2 updated version and nodes-proxy docs 16b383a Streamline nodes proxy exec interaction 231d625… docs update · Oct 2026 · source
Cloud provider detection verified Attempts to identify which public cloud provider the environment is running on, with an option to skip that check. 1 release · 3 other sources · first seen Sep 2023

Also counts toward: Command-line interface

release

command line

  • -c — may be added to skip Peirates' separate startup cloud-detection pass; it does not disable this command's IMDS requests. v1.1.30 · Aug 2026 · command-line history
  • --c — Skip checking what cloud we are on. v1.29a · Jan 2026 · command-line history

we ran it

  • The tool started successfully (exit 0), reported it could not find network interface eth0, detected no public cloud provider metadata API, and dropped into its interactive menu shell (version… Aug 2026 · the full run
API server TLS configuration verified Allows the user to supply a CA certificate path or skip TLS verification when connecting to the API server. 1 release · 3 other sources · first seen Oct 2021

Also counts toward: Command-line interface

release

  • The -i and -p flags for specifying the API server IP/name and port are removed; use -u instead. 1.0.36 · Oct 2021 · source · release history

command line

  • --k — Ignore TLS checking on API server requests? v1.29a · Jan 2026 · command-line history
  • --c — CA Cert Path for API Server: ex. /etc/kubernetes/pki/ca.crt (ALPHA - use -k for now) v1.1.27c · May 2025 · command-line history

example

  • Connect to an external API server using a single URL flag peirates --auth-file=/path/to/token -u https://k8s-api.example.com:6443 1.0.36 · Oct 2021 · source
Kubelet credential discovery shipped Automatically locates and utilizes kubelet certificate and key pairs from the host environment. 4 releases · first seen Oct 2021

release

  • Detects microk8s kubelet kubeconfig location, expanding coverage to microk8s-based Kubernetes environments. v1.1.26 · Apr 2025 · source · release history
  • Added another kubelet kubeconfig file path and handled errors better 1.1.11 · May 2023 · source · release history
  • Auto-detection of kubelet certificates when Peirates is run directly on a Kubernetes node. 1.0.36 · Oct 2021 · source · release history
  • Automatic discovery of kubelet certificate and key pairs from the local node filesystem 1.1.0 · Oct 2021 · source · release history
Pod secret enumeration shipped Automatically discovers and enumerates service account tokens and secrets stored on the local node filesystem. 3 releases · 1 other source · first seen Oct 2021

release

  • Adds svc-account-token export to a file v1.1.22 · May 2024 · source · release history
  • Added capability to display the values of stored service account tokens 1.1.14 · Oct 2021 · source · release history
  • Automatic enumeration of pod secrets located on the node filesystem 1.1.0 · Oct 2021 · source · release history

docs

  • Kubernetes penetration tool that escalates privileges and pivots through clusters by stealing service account tokens, secrets, and gaining cluster control.
Network interface discovery verified Attempts to enumerate local network interfaces (such as eth0) as part of environment initialisation. 3 other sources · first seen Oct 2021

we ran it

  • The tool did not recognise the Dockerfile path as a valid menu command and printed 'Command unrecognized.' It also reported no cloud provider metadata API detected and logged a missing eth0 network… Aug 2026 · the full run
  • The tool failed to retrieve network interface eth0 and left the cloud provider metadata API unchecked, then successfully launched its interactive console at version 1.1.29a. Aug 2026 · the full run

example

  • Increase log verbosity to view DEBUG-level messages for troubleshooting. peirates scan -v 1.1.14 · Oct 2021 · source
Inline kubectl execution shipped Provides menu options to run kubectl commands directly from the interface, including namespace overrides. 3 releases · first seen Oct 2021

release

  • Adds file output support for kubectl, curl, shell, and kubectl-try-all commands v1.1.22 · May 2024 · source · release history
  • Adds kubectl [args] as a main menu entry to run kubectl commands without leaving peirates v1.1.1 · Oct 2021 · source · release history
  • Improves the kubectl menu command by allowing namespace override via -n or --all-namespaces flags v1.1.1 · Oct 2021 · source · release history
Debug log verbosity shipped Displays additional debug-level messages for troubleshooting and inspection. 2 releases · first seen Oct 2021

release

Container image distribution documented Distributes the tool as a versioned container image on Docker Hub, allowing users to pull and run it without a local build. 2 other sources

docs

  • For example, for bustakube/alpine-peirates:v1.1.35, which contains peirates version v1.1.35, run: docker pull bustakube/alpine-peirates:v1.1.35 seen Oct 2026 · source
  • For example, for bustakube/alpine-peirates:v1.1.34, which contains peirates version v1.1.34, run: docker pull bustakube/alpine-peirates:v1.1.34 seen Oct 2026 · source
Cloud identity token discovery shipped Discovers and harvests cloud provider managed identity tokens from instance metadata services. 1 release · first seen Oct 2026

release

  • Adds gathering of Azure managed identity tokens from the Azure Instance Metadata Service (IMDS). v1.1.34 · Oct 2026 · source · release history
ConfigMap enumeration documented Enumerates Kubernetes ConfigMaps and scans them for stored identities. 1 other source · first seen Oct 2026

docs

  • Commits on Sep 25, 2026 Add manual ConfigMap scan Kind harness f73c334 Commits on Sep 24, 2026 Scan ConfigMaps with stored identities 81b5075 Commits on Sep 22, 2026 updated README for build 054aee1 added build note d532aa2 updated version and nodes-proxy docs 16b383a Streamline nodes proxy exec interaction 231d625… docs update · Oct 2026 · source
Non-interactive execution shipped Supports one-shot execution modes for non-interactive automation. 1 release · first seen Nov 2021

release

  • Adds support for one-shot (non-interactive) menu items v1.1.7-alpha · Nov 2021 · source · release history
Host file-based naming shipped Utilizes the pod's etc-hosts file to improve the identification and naming of secrets found on nodes. 1 release · first seen Oct 2021

release

  • Adds pod's etc-hosts file to improve naming of secrets found on nodes v1.1.5 · Oct 2021 · source · release history
Local node execution shipped Executes directly on the host machine without requiring a Kubernetes Pod environment. 1 release · first seen Oct 2021

Also counts toward: Self-hosted deployment

release

  • peirates binary can now be executed directly on the host without requiring a Kubernetes Pod environment 1.1.0 · Oct 2021 · 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 peirates, 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 peirates 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 →

Coverage

Missing something? Tell us

What peirates connects to, runs on and detects, read from its release notes and docs. So far: 1 new detection.

Show

1 change, tracked since Oct 10, 2026.

  • Oct 102026

    new hostpid-ptrace-breakout container escape check

    `hostpid-ptrace-breakout`: effective UID 0, matching visible-PID-1 PID and user namespaces, and effective `CAP_SYS_PTRACE` and `CAP_SYS_ADMIN`. An explicit eligible disposable process must still be selected by the action.

    Source ↗

How we count

Read from 4 of 21 release notes and docs updates we hold for peirates. "First seen" is the earliest note that names something; "last" is the latest. Our history may start partway through peirates's life, so an old integration can show a recent first-seen date.

Each change counts once: "added 40 checks" is one line, so the numbers measure how often coverage moves, not how big the catalogue is or how well it detects.

Releases

Show
Coverage in all entries

21 entries

  1. October 20266
  2. September 20262
  3. August 20262
  4. April 20251
  5. May 20241
  6. November 20231
  7. September 20231
  8. May 20231
  9. November 20211
  10. October 20215
    Show
    Coverage in all entries

    21 entries

    Project health

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

    1. Contributors 1 ±0 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 0% of issues opened, last 12 months
    5. Median time to close not measured issues closed, last 12 months
    6. Open backlog 23 of 38 issues ever filed
    1. Issues opened / month 0 · 0 communitymaintainers
    2. Open backlog 23
    3. Contributors / month 1
    4. Commits / month 21
    5. Stars 1,480
    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 peirates 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.

    Breach post-mortems & incident response 1

    • Understanding Current Threats to Kubernetes Environments Unit 42
      Understanding these techniques – and how tools like Peirates ( S0683 ) model them – provides defenders with a practical lens for anticipating threat actor behavior and designing controls that interrupt escalation early…
      2 more quotes
      The workflow mirrors the post‑compromise path demonstrated in tools like Peirates, but with the added speed of AI-assisted malware frameworks.
      S0683 Peirates Peirates is a Go-based open-source framework, originally created to help red teams and defenders understand how a compromised container can be leveraged to explore a cluster, escalate privileges and pivot…

    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 →