hunt-k8s

Tests Kubernetes and Docker infrastructure for misconfigurations, unauthenticated access, and container escape vulnerabilities.

1|Updated Aug 21, 2026
One-click install
npx skills add https://github.com/marcboggs/BMAD-AppSec-Orchestrator --skill hunt-k8s-marcboggs
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: hunt-k8s
Source: https://github.com/marcboggs/BMAD-AppSec-Orchestrator/tree/main/.claude/skills/hunt-k8s
Command: npx skills add https://github.com/marcboggs/BMAD-AppSec-Orchestrator --skill hunt-k8s-marcboggs

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Security testers assessing containerized infrastructure need a structured, accurate methodology for probing Kubernetes and Docker attack surfaces without falling for common false positives like anonymous 200 responses or read-only kubelet ports. ## Core Features & Use Cases - Phased Kubernetes attack-surface testing: Covers API server anonymous access, kubelet 10250 /run and /exec primitives, etcd 2379 unauthenticated reads, nodes/proxy RCE, service account token abuse, dashboard skip-login, and Helm/Tiller remnants. - Container escape and Docker socket exploitation: Documents docker.sock privileged-container host escape and version-gated runc CVEs including CVE-2024-21626 (Leaky Vessels), CVE-2019-5736, and CVE-2022-0492. - False-positive elimination and proof gates: Enforces SelfSubjectRulesReview privilege verification, decoded Secret bytes as impact proof, and OOB confirmation via Collaborator/interactsh for blind vectors. - Use Case: During a bug bounty engagement you discover port 6443 open on a target. Follow the phases to fingerprint the API version, verify actual RBAC grants with SelfSubjectAccessReview, and only report cluster-admin after reading a real Secret value. ## Quick Start Ask the agent to hunt Kubernetes and Docker misconfigurations against the authorized target, starting with port fingerprinting and API anonymous-access checks.

Frequently Asked Questions about hunt-k8s

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I test a Kubernetes API server for anonymous access?▼

Fingerprint the API server with curl against /version on port 6443, then submit a SelfSubjectRulesReview to determine actual granted verbs. A 200 response alone is not proof of privilege, so confirm impact by reading a real Secret value before reporting.

How do I get RCE through the kubelet on port 10250?▼

Use the /run endpoint with a POST containing cmd=id, which returns command output directly without stream handling. The /exec endpoint is a SPDY/WebSocket stream that returns a 302 redirect, so use kubeletctl or websocat to follow the stream rather than a plain POST.

What is the difference between kubelet port 10250 and 10255?▼

Port 10250 is the authenticated HTTPS kubelet endpoint that supports /run and /exec for command execution. Port 10255 is the read-only HTTP endpoint exposing only /pods, /stats, and /metrics, so it constitutes information disclosure and cannot yield RCE.

Can a captured Kubernetes service account token always access the API server?▼

No, modern projected tokens are bound to a specific audience and have short expiry around one hour. Decode the token and check the aud and exp claims, since a token issued for Vault or OIDC will not authenticate to the API server.

Why does a Kubernetes CVE check fail even when the port is open?▼

CVEs like CVE-2018-1002105 and CVE-2024-21626 are version-gated, so you must confirm gitVersion or the runc version before asserting exploitability. A version match is only a lead; working proof-of-concept output is the actual proof.

How do I confirm blind SSRF to Kubernetes internal services?▼

Confirm blind or outbound vectors with an out-of-band channel such as Burp Collaborator or interactsh, triggering a curl from inside the pod via /run to your unique subdomain. A delayed response or echoed URL alone is not valid proof of the hop.