
Déposez un seul binaire dans un pod Kubernetes compromis et cartographiez instantanément chaque chemin d'attaque réaliste vers cluster-admin, node escape, secret theft et cloud IAM takeover.
Bêta — Un moteur de chemins d'attaque Kubernetes en un seul binaire pour les évaluations de sécurité autorisées.
Déposez-le dans un pod compromis, exécutez-le, et obtenez une carte de chaque chemin d'escalade réaliste — de votre point d'appui actuel jusqu'à l'administrateur du cluster, l'accès aux nœuds, le vol de secrets et les rôles IAM cloud.
Vous avez un RCE dans un pod Kubernetes. Et maintenant ?
k8scout répond à cette question. Il découvre automatiquement ce que le compte de service du pod compromis peut faire, cartographie le graphe RBAC et trace des chemins d'attaque en plusieurs étapes depuis votre point d'appui exact jusqu'aux cibles de haute valeur.
Il fonctionne en trois modes :
--reviewer-mode) — exécuté avec un SA en lecture seule pour auditer la surface d'attaque complète du cluster pour toutes les identités.--recon) — un aperçu rapide et léger de votre identité, de vos autorisations effectives et des ressources que vous pouvez toucher. Pas de graphe ni de recherche de chemin. Ajoutez --bruteforce-ns pour découvrir les espaces de noms que vous ne pouvez pas lister à l'échelle du cluster.
k8scout construit un graphe d'autorisations pondéré et exécute une recherche de chemin basée sur Dijkstra pour découvrir des chaînes d'attaque réalistes en plusieurs étapes :
Chaque constat inclut les identifiants de technique MITRE ATT&CK, un score de risque et un chemin d'attaque étape par étape avec les nœuds du graphe réels impliqués. 50 règles de détection au total.
# 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!
Le binaire détecte automatiquement qu'il s'exécute dans le cluster, identifie le pod et le SA, et commence la recherche de chemin à partir de votre point d'appui exact.
Utilisation prévue : Tests d'intrusion, opérations d'équipe rouge, revues de sécurité internes et audits de renforcement du cluster. Obtenez toujours une autorisation appropriée avant de l'exécuter contre un cluster.
# Uses ~/.kube/config or $KUBECONFIG
k8scout --all-namespaces --out result.json
# Target a single namespace
k8scout --namespace production --out result.json
# 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 saute la construction du graphe, l'inférence et l'IA — c'est le moyen le plus rapide de répondre à la question « qu'est-ce que ce jeton possède réellement ? ». Il signale l'identité actuelle, ses autorisations effectives (SelfSubjectRulesReview) et une matrice de capacités par ressource (SelfSubjectAccessReview). --bruteforce-ns confirme l'existence d'un espace de noms en lisant des objets bien connus que chaque espace de noms possède (l'objet espace de noms, son ServiceAccount default ou la ConfigMap kube-root-ca.crt) — utile lorsque l'identité ne peut pas lister les espaces de noms mais peut toujours accéder à des espaces spécifiques.
# 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
export OPENAI_API_KEY="sk-..."
k8scout --all-namespaces --out result.json
Téléchargez depuis la page des Releases. Tous les binaires sont liés statiquement sans dépendances.
| Binaire | Plateforme |
|---|---|
k8scout-linux-amd64 | Linux x86-64 |
k8scout-linux-arm64 | Linux ARM64 |
k8scout-darwin-amd64 | macOS Intel |
k8scout-darwin-arm64 | macOS Apple Silicon |
Nécessite 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