
k8scout v0.1.2
قم بإسقاط ملف ثنائي واحد في Pod Kubernetes مخترق وقم فورًا بتخطيط كل مسار هجوم واقعي إلى cluster-admin، node escape، secret theft، و cloud IAM takeover.
k8scout
تجريبي — محرك مسارات هجوم Kubernetes ثنائي واحد لتقييمات الأمان المصرح بها.
قم بإسقاطه في pod مخترق، وشغّله، واحصل على خريطة لكل مسار تصعيد واقعي، من موقعك الحالي إلى cluster-admin، والوصول إلى العقد، وسرقة الأسرار، وأدوار IAM السحابية.
الفكرة
لديك RCE في pod Kubernetes. ماذا الآن؟
k8scout يجيب على هذا السؤال. يكتشف تلقائيًا ما يمكن لحساب الخدمة الخاص بالـ pod المخترق فعله، ويرسم مخطط RBAC، ويتتبع مسارات هجوم متعددة الخطوات من موقعك الدقيق إلى الأهداف عالية القيمة.
يعمل في ثلاثة أوضاع:
- الوضع الهجومي (افتراضي) — يعمل من داخل pod مخترق. يكتشف هويتك، وأذوناتك، وجميع مسارات التصعيد القابلة للوصول من موقعك الحالي.
- وضع المراجع (
--reviewer-mode) — يعمل باستخدام SA للقراءة فقط لتدقيق سطح الهجوم الكامل للعنقود لجميع الهويات. - وضع الاستطلاع (
--recon) — نظرة سريعة وخفيفة الأثر على هويتك فقط، والأذونات الفعالة، والموارد التي يمكنك الوصول إليها. لا يوجد رسم بياني أو بحث عن مسارات. أضف--bruteforce-nsلاكتشاف مساحات الأسماء التي لا يمكنك سردها على مستوى العنقود.
عرض توضيحي
ما الذي يكتشفه
يبني k8scout رسمًا بيانيًا مرجّحًا للأذونات ويشغّل بحث Dijkstra عن المسارات لاكتشاف سلاسل هجوم واقعية متعددة الخطوات:
- من Pod إلى cluster-admin — عبر ارتباطات RBAC، أو تعديل أحمال العمل، أو إنشاء CRB
- الهروب من الحاوية إلى العقدة — عبر الحاويات ذات الامتيازات، أو hostPID، أو hostNetwork، أو القدرات الخطيرة، أو عمليات تحميل hostPath
- الحركة الجانبية — التنفيذ داخل pods أخرى، وسرقة رموز SA الخاصة بها، والتحور عبر أذوناتها
- سرقة الأسرار وبيانات الاعتماد — رموز SA المحمّلة، والأسرار، وconfigmaps التي تحتوي على بيانات اعتماد مسربة، والرموز اليتيمة
- تصعيد IAM السحابي — IRSA (AWS)، وGKE Workload Identity، وAzure Workload Identity، وإساءة استخدام جمهور الرموز المُسقطة
- سلاسل انتحال الهوية — الاستيلاء من SA إلى SA عبر أذونات انتحال الهوية
- تعديل أحمال العمل — تعديل deployment لتغيير SA الخاص به، ثم وراثة أذونات ذلك SA
- حقن Webhook — التحكم في webhook المعدّل للحقن في أحمال العمل المستقبلية
- إساءة استخدام مشغلات GitOps — تصعيد امتيازات ArgoCD، وFlux، وExternal Secrets، ومشغل Vault
- اكتشاف سوء التكوين — الارتباطات المعلقة، والأفعال البديلة (wildcard)، والرموز المحمّلة تلقائيًا، والأسرار النصية الصريحة في متغيرات البيئة
يتضمن كل اكتشاف معرفات تقنيات MITRE ATT&CK، ودرجة مخاطر، ومسار هجوم خطوة بخطوة مع عقد الرسم البياني الفعلية المعنية. 50 قاعدة اكتشاف إجمالاً.
البدء السريع
من pod مخترق (حالة الاستخدام الأساسية)
# 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!
يكتشف الملف الثنائي تلقائيًا أنه يعمل داخل العنقود، ويحدد الـ pod و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
يتخطى الاستطلاع بناء الرسم البياني والاستدلال والذكاء الاصطناعي — إنها أسرع طريقة للإجابة على
"ما الذي يملكه هذا الرمز فعلاً؟". يبلّغ عن الهوية الحالية، وأذوناتها
الفعالة (SelfSubjectRulesReview)، ومصفوفة قدرات لكل مورد
(SelfSubjectAccessReview). يؤكد --bruteforce-ns وجود مساحة أسماء
من خلال قراءة كائنات معروفة تمتلكها كل مساحة أسماء (كائن مساحة الأسماء، أو
ServiceAccount الافتراضي default، أو ConfigMap kube-root-ca.crt) — مفيد عندما
لا تستطيع الهوية سرد مساحات الأسماء ولكن قد تصل إلى مساحات محددة.
وضع المراجع (تدقيق كامل للعنقود)
# 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
التثبيت
ملفات ثنائية جاهزة
حمّلها من صفحة Releases. جميع الملفات الثنائية مرتبطة بشكل ثابت بدون تبعيات.
| Binary | Platform |
|---|---|
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 بسيط لا يمكنه سرد pods أو كائنات RBAC، يقوم الأداة بتوليف رسم بياني لموقعك من بيانات الهوية وحدها ويكتشف ما يمكن الوصول إليه عبر أذونات SSRR/SSAR.
تصور الرسم البياني للهجوم
حمّل تقرير JSON في web/graph.html في أي متصفح (سحب وإفلات، لا حاجة لخادم).
- علامة تبويب مسارات الهجوم — مرتبة حسب درجة المخاطر، كل منها يعرض السلسلة الكاملة متعددة القفزات من موقعك إلى الهدف
- عرض متعدد السلاسل — تصور مسارات هجوم متداخلة في وقت واحد على رسم بياني واحد
- رسم بياني موجّه بالقوة — جميع العقد والحواف مع فئات مرمزة بالألوان وحلقات درجة المخاطر
- وضع التركيز — يخفف الضوضاء الهيكلية لإبراز العقد ذات الصلة بالهجوم
- مفتاح RBAC — يخفي عقد RBAC ولكن يعرضها تلقائيًا عندما تكون جزءًا من مسار هجوم نشط
- خريطة مصغرة — تنقل في الرسوم البيانية الكبيرة دون فقدان السياق
- تفاصيل العقدة — انقر على أي عقدة للحصول على البيانات الوصفية والاتصالات والنتائج ذات الصلة
- تصدير — حمّل تقرير اختبار اختراق HTML مكتفيًا بذاته
مرجع CLI
k8scout [flags]