العودة إلى التحديثات
New releaseAug 16, 2026

k8scout v0.1.2

قم بإسقاط ملف ثنائي واحد في Pod Kubernetes مخترق وقم فورًا بتخطيط كل مسار هجوم واقعي إلى cluster-admin، node escape، secret theft، و cloud IAM takeover.

مشاركة

k8scout logo

GitHub stars GitHub forks GitHub issues GitHub license

k8scout

تجريبي — محرك مسارات هجوم Kubernetes ثنائي واحد لتقييمات الأمان المصرح بها.

قم بإسقاطه في pod مخترق، وشغّله، واحصل على خريطة لكل مسار تصعيد واقعي، من موقعك الحالي إلى cluster-admin، والوصول إلى العقد، وسرقة الأسرار، وأدوار IAM السحابية.


الفكرة

لديك RCE في pod Kubernetes. ماذا الآن؟

k8scout يجيب على هذا السؤال. يكتشف تلقائيًا ما يمكن لحساب الخدمة الخاص بالـ pod المخترق فعله، ويرسم مخطط RBAC، ويتتبع مسارات هجوم متعددة الخطوات من موقعك الدقيق إلى الأهداف عالية القيمة.

يعمل في ثلاثة أوضاع:

  • الوضع الهجومي (افتراضي) — يعمل من داخل pod مخترق. يكتشف هويتك، وأذوناتك، وجميع مسارات التصعيد القابلة للوصول من موقعك الحالي.
  • وضع المراجع (--reviewer-mode) — يعمل باستخدام SA للقراءة فقط لتدقيق سطح الهجوم الكامل للعنقود لجميع الهويات.
  • وضع الاستطلاع (--recon) — نظرة سريعة وخفيفة الأثر على هويتك فقط، والأذونات الفعالة، والموارد التي يمكنك الوصول إليها. لا يوجد رسم بياني أو بحث عن مسارات. أضف --bruteforce-ns لاكتشاف مساحات الأسماء التي لا يمكنك سردها على مستوى العنقود.

عرض توضيحي

k8scout demo


ما الذي يكتشفه

يبني 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. جميع الملفات الثنائية مرتبطة بشكل ثابت بدون تبعيات.

BinaryPlatform
k8scout-linux-amd64Linux x86-64
k8scout-linux-arm64Linux ARM64
k8scout-darwin-amd64macOS Intel
k8scout-darwin-arm64macOS 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]

الفئات