Zurück zu den Updates
New releaseAug 16, 2026

k8scout v0.1.2

Wirf eine einzelne Binärdatei in ein kompromittiertes Kubernetes-Pod und kartiere sofort alle realistischen Angriffspfade zu cluster-admin, node escape, secret theft und cloud IAM takeover.

Teilen

k8scout logo

GitHub stars GitHub forks GitHub issues GitHub license

k8scout

Beta — Eine Single-Binary-Kubernetes-Angriffspfad-Engine für autorisierte Sicherheitsbewertungen.

Lade sie in einen kompromittierten Pod, führe sie aus und erhalte eine Karte aller realistischen Eskalationspfade – von deinem aktuellen Standpunkt bis hin zu cluster-admin, Node-Zugriff, Secret-Diebstahl und Cloud-IAM-Rollen.


Die Idee

Du hast RCE in einem Kubernetes-Pod. Und jetzt?

k8scout beantwortet diese Frage. Es entdeckt automatisch, was das Service Account des kompromittierten Pods tun kann, kartiert den RBAC-Graphen und verfolgt mehrstufige Angriffspfade von deinem exakten Standpunkt zu hochwertigen Zielen.

Es arbeitet in drei Modi:

  • Offensivmodus (Standard) — läuft aus einem kompromittierten Pod heraus. Entdeckt deine Identität, Berechtigungen und alle erreichbaren Eskalationspfade von deiner aktuellen Position aus.
  • Reviewer-Modus (--reviewer-mode) — läuft mit einem Read-only-SA, um die gesamte Cluster-Angriffsfläche für alle Identitäten zu prüfen.
  • Recon-Modus (--recon) — ein schneller, unauffälliger Blick nur auf deine Identität, effektive Berechtigungen und die Ressourcen, auf die du zugreifen kannst. Kein Graph oder Pathfinding. Füge --bruteforce-ns hinzu, um Namespaces zu entdecken, die du nicht clusterweit auflisten kannst.

Demo

k8scout demo


Was es findet

k8scout baut einen gewichteten Berechtigungsgraphen auf und führt Dijkstra-basiertes Pathfinding aus, um realistische mehrstufige Angriffsketten zu entdecken:

  • Pod zu cluster-admin — über RBAC-Bindings, Workload-Mutation oder CRB-Erstellung
  • Container-Escape zum Node — über privilegierte Container, hostPID, hostNetwork, gefährliche Capabilities oder hostPath-Mounts
  • Laterale Bewegung — exec in andere Pods, deren SA-Tokens stehlen, über deren Berechtigungen pivotieren
  • Secret- und Credential-Diebstahl — gemountete SA-Tokens, Secrets, ConfigMaps mit geleakten Credentials, verwaiste Tokens
  • Cloud-IAM-Eskalation — IRSA (AWS), GKE Workload Identity, Azure Workload Identity, Missbrauch der projizierten Token-Audience
  • Impersonation-Ketten — SA-zu-SA-Übernahme über Impersonation-Berechtigungen
  • Workload-Mutation — ein Deployment patchen, um dessen SA zu ändern, und dann die Berechtigungen dieses SA erben
  • Webhook-Injection — Kontrolle über mutating Webhooks, um in zukünftige Workloads zu injizieren
  • GitOps-Operator-Missbrauch — ArgoCD, Flux, External Secrets und Vault-Operator-Privilegieneskalation
  • Fehlkonfigurationserkennung — hängende Bindings, Wildcard-Verben, automatisch gemountete Tokens, Klartext-Secrets in Env-Variablen

Jeder Fund enthält MITRE ATT&CK-Technik-IDs, einen Risikoscore und einen schrittweisen Angriffspfad mit den tatsächlich beteiligten Graph-Knoten. Insgesamt 50 Erkennungsregeln.


Schnellstart

Aus einem kompromittierten Pod (primärer Anwendungsfall)

# Copy the binary into the pod
kubectl cp k8scout-linux-amd64 <ns>/<pod>:/tmp/k8scout

# Run it
kubectl exec -it <ns>/<pod> -- chmod +x /tmp/k8scout
kubectl exec -it <ns>/<pod> -- /tmp/k8scout --out /tmp/result.json

# Pull the results
kubectl cp <ns>/<pod>:/tmp/result.json ./result.json

# This flow works exactly like this in you're revshell!

Die Binary erkennt automatisch, dass sie im Cluster läuft, identifiziert den Pod und das SA und startet das Pathfinding von deinem exakten Standpunkt aus.

Beabsichtigte Nutzung: Penetrationstests, Red-Team-Operationen, interne Sicherheitsüberprüfungen und Cluster-Hardening-Audits. Hole immer eine ordnungsgemäße Autorisierung ein, bevor du gegen einen Cluster läufst.

Von deinem lokalen Rechner

# Uses ~/.kube/config or $KUBECONFIG
k8scout --all-namespaces --out result.json

# Target a single namespace
k8scout --namespace production --out result.json

Recon-Modus (schnelle Berechtigungs- und Ressourcenprüfung)

# Who am I, what can I do, and what resources can I access?
k8scout --recon

# Discover namespaces you can't list cluster-wide (built-in wordlist)
k8scout --recon --bruteforce-ns

# Bruteforce with your own namespace wordlist (one name per line)
k8scout --recon --bruteforce-ns --ns-wordlist ./namespaces.txt

Recon überspringt Graph-Aufbau, Inferenz und KI — es ist der schnellste Weg, um zu beantworten, „was hat dieses Token tatsächlich?". Es meldet die aktuelle Identität, ihre effektiven Berechtigungen (SelfSubjectRulesReview) und eine Capability-Matrix pro Ressource (SelfSubjectAccessReview). --bruteforce-ns bestätigt, dass ein Namespace existiert, indem es wohlbekannte Objekte liest, die jeder Namespace hat (das Namespace-Objekt, sein default ServiceAccount oder die kube-root-ca.crt ConfigMap) — nützlich, wenn die Identität Namespaces nicht auflisten kann, aber möglicherweise dennoch auf bestimmte zugreifen kann.

Reviewer-Modus (vollständiges Cluster-Audit)

# Deploy the read-only RBAC and job
kubectl apply -f deploy/rbac.yaml
kubectl apply -f deploy/job.yaml

# Or run directly with reviewer permissions
k8scout --reviewer-mode --all-namespaces --out result.json

Mit KI-Erzählung

export OPENAI_API_KEY="sk-..."
k8scout --all-namespaces --out result.json

Installation

Vorgefertigte Binaries

Lade sie von der Releases-Seite herunter. Alle Binaries sind statisch gelinkt und ohne Abhängigkeiten.

BinaryPlattform
k8scout-linux-amd64Linux x86-64
k8scout-linux-arm64Linux ARM64
k8scout-darwin-amd64macOS Intel
k8scout-darwin-arm64macOS Apple Silicon

Aus dem Quellcode bauen

Erfordert Go 1.22+.

git clone https://github.com/hac01/k8scout
cd k8scout
make build          # native binary
make build-linux    # static Linux amd64 binary
make build-all      # all four release targets

Wie es funktioniert

k8scout (running inside compromised pod)
 |
 ├── 1. Detect foothold
 │     Pod name (HOSTNAME), SA (TokenReview), Node (downward API)
 │
 ├── 2. Discover permissions
 │     SSRR per namespace + ~30 concurrent SSAR spot-checks
 │     (always permitted, no RBAC needed)
 │
 ├── 3. Enumerate cluster objects (graceful degradation if denied)
 │     Namespaces, RBAC, Workloads, Pods, Secrets, Nodes, Webhooks, CRDs
 │
 ├── 4. Build attack graph
 │     Nodes: pods, SAs, roles, bindings, secrets, workloads, nodes, cloud identities
 │     Edges: runs_as, mounts, authenticates_as, can_exec, can_patch,
 │            can_impersonate, runs_on, assumes_cloud_role, granted_by, ...
 │
 ├── 5. Find attack paths (Dijkstra from foothold to high-value targets)
 │     Weighted by attacker effort — cheapest (most realistic) paths first
 │     Targets: cluster-admin, nodes, SA tokens, cloud IAM, privileged workloads
 │
 ├── 6. Run inference rules (50 rules with MITRE ATT&CK mapping)
 │
 ├── 7. Optional: AI risk narrative (GPT-4o)
 │
 └── 8. Output: text summary + JSON report

Selbst mit einem minimalen SA, das Pods oder RBAC-Objekte nicht auflisten kann, synthetisiert das Tool den Foothold-Graphen allein aus Identitätsdaten und entdeckt, was über SSRR/SSAR-Berechtigungen erreichbar ist.


Kategorien