
k8scout v0.1.2
एक समझौता किए गए Kubernetes पॉड में एक ही बाइनरी ड्रॉप करें और तुरंत क्लस्टर-एडमिन, नोड एस्केप, सीक्रेट चोरी और क्लाउड IAM अधिग्रहण के लिए हर यथार्थवादी हमले का मार्ग मैप करें।
k8scout
बीटा — अधिकृत सुरक्षा मूल्यांकन के लिए एक सिंगल-बाइनरी Kubernetes अटैक पाथ इंजन।
इसे किसी समझौता किए गए पॉड में डालें, चलाएँ, और अपने वर्तमान फुटहोल्ड से लेकर क्लस्टर-एडमिन, नोड एक्सेस, सीक्रेट चोरी, और क्लाउड IAM भूमिकाओं तक हर यथार्थवादी एस्केलेशन पाथ का नक्शा प्राप्त करें।
विचार
आपके पास एक Kubernetes पॉड में RCE है। अब क्या?
k8scout इस प्रश्न का उत्तर देता है। यह स्वचालित रूप से पता लगाता है कि समझौता किए गए पॉड का सर्विस अकाउंट क्या कर सकता है, RBAC ग्राफ़ का नक्शा बनाता है, और आपके सटीक फुटहोल्ड से उच्च-मूल्य लक्ष्यों तक बहु-चरणीय अटैक पाथ का पता लगाता है।
यह तीन मोड में काम करता है:
- आक्रामक मोड (डिफ़ॉल्ट) — किसी समझौता किए गए पॉड के अंदर से चलाएँ। आपकी पहचान, अनुमतियाँ, और आपकी वर्तमान स्थिति से सभी पहुँच योग्य एस्केलेशन पाथ का पता लगाता है।
- समीक्षक मोड (
--reviewer-mode) — सभी पहचानों के लिए पूर्ण क्लस्टर अटैक सरफेस का ऑडिट करने के लिए रीड-ओनली SA के साथ चलाएँ। - रेकॉन मोड (
--recon) — केवल आपकी पहचान, प्रभावी अनुमतियों, और आप किन संसाधनों को छू सकते हैं, पर एक तेज़, कम-फुटप्रिंट नज़र। कोई ग्राफ़ या पाथफाइंडिंग नहीं। उन नेमस्पेस को खोजने के लिए--bruteforce-nsजोड़ें जिन्हें आप क्लस्टर-व्यापी सूचीबद्ध नहीं कर सकते।
डेमो
यह क्या खोजता है
k8scout एक भारित अनुमति ग्राफ़ बनाता है और यथार्थवादी बहु-चरणीय अटैक चेन खोजने के लिए Dijkstra-आधारित पाथफाइंडिंग चलाता है:
- पॉड से क्लस्टर-एडमिन — RBAC बाइंडिंग, वर्कलोड म्यूटेशन, या CRB निर्माण के माध्यम से
- कंटेनर एस्केप से नोड — प्रिविलेज्ड कंटेनर, hostPID, hostNetwork, खतरनाक क्षमताओं, या hostPath माउंट के माध्यम से
- लेटरल मूवमेंट — अन्य पॉड में exec करें, उनके SA टोकन चुराएँ, उनकी अनुमतियों के माध्यम से पिवट करें
- सीक्रेट और क्रेडेंशियल चोरी — माउंट किए गए SA टोकन, सीक्रेट, लीक हुए क्रेडेंशियल वाले configmaps, अनाथ टोकन
- क्लाउड IAM एस्केलेशन — IRSA (AWS), GKE Workload Identity, Azure Workload Identity, प्रोजेक्टेड टोकन ऑडियंस दुरुपयोग
- इम्पर्सोनेशन चेन — इम्पर्सोनेशन अनुमतियों के माध्यम से SA-से-SA टेकओवर
- वर्कलोड म्यूटेशन — किसी डिप्लॉयमेंट को पैच करके उसका SA बदलें, फिर उस SA की अनुमतियाँ विरासत में लें
- वेबहुक इंजेक्शन — भविष्य के वर्कलोड में इंजेक्ट करने के लिए म्यूटेटिंग वेबहुक नियंत्रण
- GitOps ऑपरेटर दुरुपयोग — ArgoCD, Flux, External Secrets, और Vault ऑपरेटर प्रिविलेज एस्केलेशन
- गलत कॉन्फ़िगरेशन का पता लगाना — डैंगलिंग बाइंडिंग, वाइल्डकार्ड क्रियाएँ, ऑटोमाउंट किए गए टोकन, env वेरिएबल में प्लेनटेक्स्ट सीक्रेट
प्रत्येक निष्कर्ष में MITRE ATT&CK तकनीक ID, एक जोखिम स्कोर, और शामिल वास्तविक ग्राफ़ नोड्स के साथ चरण-दर-चरण अटैक पाथ शामिल है। कुल 50 डिटेक्शन नियम।
त्वरित शुरुआत
किसी समझौता किए गए पॉड से (प्राथमिक उपयोग मामला)
# 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!
बाइनरी स्वचालित रूप से पहचान लेती है कि यह इन-क्लस्टर चल रही है, पॉड और SA की पहचान करती है, और आपके सटीक फुटहोल्ड से पाथफाइंडिंग शुरू करती है।
इच्छित उपयोग: पेनेट्रेशन टेस्टिंग एंगेजमेंट, रेड टीम ऑपरेशन, आंतरिक सुरक्षा समीक्षाएँ, और क्लस्टर हार्डनिंग ऑडिट। किसी भी क्लस्टर के विरुद्ध चलाने से पहले हमेशा उचित प्राधिकरण प्राप्त करें।
अपनी स्थानीय मशीन से
# 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
रेकॉन ग्राफ़ निर्माण, अनुमान, और AI को छोड़ देता है — यह
"इस टोकन के पास वास्तव में क्या है?" का उत्तर देने का सबसे तेज़ तरीका है। यह वर्तमान पहचान, उसकी
प्रभावी अनुमतियाँ (SelfSubjectRulesReview), और एक प्रति-संसाधन क्षमता
मैट्रिक्स (SelfSubjectAccessReview) रिपोर्ट करता है। --bruteforce-ns एक नेमस्पेस के अस्तित्व की पुष्टि
प्रत्येक नेमस्पेस में मौजूद प्रसिद्ध ऑब्जेक्ट पढ़कर करता है (नेमस्पेस ऑब्जेक्ट, उसका
default ServiceAccount, या kube-root-ca.crt ConfigMap) — यह तब उपयोगी है जब
पहचान नेमस्पेस सूचीबद्ध नहीं कर सकती लेकिन फिर भी विशिष्ट नेमस्पेस तक पहुँच सकती है।
समीक्षक मोड (पूर्ण क्लस्टर ऑडिट)
# 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
AI नैरेटिव के साथ
export OPENAI_API_KEY="sk-..."
k8scout --all-namespaces --out result.json
इंस्टॉलेशन
पूर्व-निर्मित बाइनरी
Releases पृष्ठ से डाउनलोड करें। सभी बाइनरी स्थिर रूप से लिंक की गई हैं और उनकी कोई निर्भरता नहीं है।
| बाइनरी | प्लेटफ़ॉर्म |
|---|---|
k8scout-linux-amd64 | Linux x86-64 |
k8scout-linux-arm64 | Linux ARM64 |
k8scout-darwin-amd64 | macOS Intel |
k8scout-darwin-arm64 | macOS Apple Silicon |
स्रोत से बिल्ड करें
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
यह कैसे काम करता है
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
यहाँ तक कि एक न्यूनतम SA के साथ जो पॉड या RBAC ऑब्जेक्ट सूचीबद्ध नहीं कर सकता, टूल अकेले पहचान डेटा से फुटहोल्ड ग्राफ़ को संश्लेषित करता है और SSRR/SSAR अनुमतियों के माध्यम से पहुँच योग्य चीज़ों का पता लगाता है।
अटैक ग्राफ़ विज़ुअलाइज़ेशन
JSON रिपोर्ट को किसी भी ब्राउज़र में web/graph.html में लोड करें (ड्रैग-एंड-ड्रॉप, कोई सर्वर आवश्यक नहीं)।