Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/cyberark/kubiscan
المصادقة والترخيصتصعيد الامتيازاتماسحات الثغرات الأمنيةأمن الحاوياتتدقيق التكوينجمع المعلوماتاختبار الاختراقأمن السحابةكشف الأسرارسوء التكوينالفريق الأحمر
1.4k1416منذ سنة واحدةتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
GitHub
cyberark/kubiscan

KubiScan

أداة لفحص مجموعة Kubernetes بحثًا عن الصلاحيات الخطرة

عرض المستودع

GitHub release License Stars

أداة لمسح مجموعات Kubernetes بحثاً عن الصلاحيات الخطرة في نموذج التحكم في الوصول المستند إلى الأدوار (RBAC) الخاص بـ Kubernetes. تم نشر الأداة كجزء من البحث "تأمين مجموعات Kubernetes من خلال القضاء على الصلاحيات الخطرة" على الرابط https://www.cyberark.com/threat-research-blog/securing-kubernetes-clusters-by-eliminating-risky-permissions/.

جدول المحتويات

  • نظرة عامة
  • ما الذي يمكنها فعله؟
  • الاستخدام
    • الحاوية (Container)
    • مباشرة باستخدام Python3
      • المتطلبات الأساسية
      • مثال للتثبيت على Ubuntu
      • باستخدام ملف KubeConfig
      • من جهاز بعيد باستخدام رمز ServiceAccount
  • أمثلة
  • عرض توضيحي
  • YAML للأدوار الخطرة
  • عرض المشاريع
  • الترخيص
  • المراجع

نظرة عامة

تساعد KubiScan مسؤولي المجموعات في تحديد الصلاحيات التي قد يستغلها المهاجمون لاختراق المجموعات.
يمكن أن يكون هذا مفيداً بشكل خاص في البيئات الكبيرة حيث توجد الكثير من الصلاحيات التي يصعب تتبعها.
تقوم KubiScan بجمع معلومات حول الأدوار/الأدوار العنقودية الخطرة، وروابط الأدوار/روابط الأدوار العنقودية الخطرة، والمستخدمين والحاويات (pods)، مما يؤدي إلى أتمتة العمليات اليدوية التقليدية ويمنح المسؤولين الرؤية التي يحتاجون إليها لتقليل المخاطر.

ما الذي يمكنها فعله؟

  • تحديد الأدوار/الأدوار العنقودية الخطرة
  • تحديد روابط الأدوار/روابط الأدوار العنقودية الخطرة
  • تحديد الكيانات (المستخدمين، المجموعات، وحسابات الخدمة) الخطرة
  • تحديد الحاويات/الحاويات الصغيرة (pods) الخطرة
  • استخراج الرموز (tokens) من الحاويات (الكل أو حسب namespace)
  • الحصول على روابط الأدوار/روابط الأدوار العنقودية المرتبطة بدور أو دور عنقودي أو كيان (مستخدم، مجموعة، حساب خدمة)
  • سرد الكيانات من نوع معين ('User', 'Group', 'ServiceAccount')
  • سرد قواعد رابط دور أو رابط دور عنقودي
  • عرض الحاويات التي لديها إمكانية الوصول إلى بيانات سرية من خلال وحدة تخزين (volume) أو متغيرات بيئة
  • الحصول على رموز bootstrap للمجموعة
  • فحص الثغرات الأمنية (CVE scan)
  • دعم EKS\AKS\GKE

الاستخدام

الحاوية (Container)

يمكنك تشغيلها كالتالي:

root@kitploit:~
./docker_run.sh <kube_config_file>
# مثال: ./docker_run.sh ~/.kube/config

سيقوم بنسخ جميع الملفات المرتبطة داخل ملف الإعدادات إلى الحاوية وفتح قشرة (shell) داخل الحاوية.

لبناء صورة Docker قم بتشغيل:

root@kitploit:~
docker build -t kubiscan .

مباشرة باستخدام Python3

المتطلبات الأساسية:

  • Python 3.6+
  • Pip3
  • Kubernetes Python Client
  • Prettytable
  • openssl (مدمج في Ubuntu) - يُستخدم فقط لـ join token

مثال للتثبيت على Ubuntu:

root@kitploit:~
apt-get update  
apt-get install -y python3 python3-pip 
pip3 install -r requirements.txt  

قم بتشغيل alias kubiscan='python3 /<KubiScan_folder>/KubiScan.py' لاستخدام kubiscan.

بعد تثبيت جميع المتطلبات المذكورة أعلاه، يمكنك تشغيلها بطريقتين مختلفتين:

باستخدام ملف KubeConfig:

تأكد من أن لديك صلاحية الوصول إلى ملف ~/.kube/config وجميع الشهادات ذات الصلة، ثم قم بتشغيل:
kubiscan <command>
مثال: kubiscan -rs سيعرض جميع الكيانات الخطرة (المستخدمين، حسابات الخدمة، المجموعات).

من جهاز بعيد باستخدام رمز ServiceAccount

تتطلب بعض الوظائف حساب خدمة مخوّل بالصلاحيات التالية:

  • الموارد: ["roles", "clusterroles", "rolebindings", "clusterrolebindings", "pods", "secrets"]
    الأفعال: ["get", "list"]
  • الموارد: ["pods/exec"]
    الأفعال: ["create", "get"]

ولكن معظم الوظائف لا تحتاج ذلك، لذا يمكنك استخدام هذه الإعدادات لحساب خدمة محدود الصلاحيات:
يمكن إنشاؤه عن طريق تشغيل:

root@kitploit:~
kubectl apply -f - << EOF
apiVersion: v1
kind: ServiceAccount
metadata:
  name: kubiscan-sa
  namespace: default
---
apiVersion: v1
kind: Secret
type: kubernetes.io/service-account-token
metadata:
  name: kubiscan-sa-secret
  annotations:
    kubernetes.io/service-account.name: kubiscan-sa
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata: 
  name: kubiscan-clusterrolebinding
subjects: 
- kind: ServiceAccount 
  name: kubiscan-sa
  namespace: default
  apiGroup: ""
roleRef: 
  kind: ClusterRole
  name: kubiscan-clusterrole
  apiGroup: ""
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata: 
  name: kubiscan-clusterrole
rules: 
- apiGroups: ["*"]
  resources: ["roles", "clusterroles", "rolebindings", "clusterrolebindings", "pods"]
  verbs: ["get", "list"]
EOF

لاحظ أنه بدءاً من Kubernetes 1.24، فإن إنشاء حساب خدمة لا يُنشئ سراً (secret). هذا يعني أننا بحاجة إلى إنشاء السر.
قبل 1.24، يمكنك إزالة كائن Secret من الأوامر أعلاه وحفظ رمز حساب الخدمة في ملف:
kubectl get secrets $(kubectl get sa kubiscan-sa -o=jsonpath='{.secrets[0].name}') -o=jsonpath='{.data.token}' | base64 -d > token

من 1.24، لا تحتاج لتغيير أي شيء واحفظ الرمز بهذه الطريقة:

root@kitploit:~
kubectl get secrets kubiscan-sa-secret -o=jsonpath='{.data.token}' | base64 -d > token  

بعد حفظ الرمز في الملف، يمكنك استخدامه هكذا:
python3 ./KubiScan.py -ho <master_ip:master_port> -t /token <command>

مثال:

root@kitploit:~
alias kubiscan='python3 /<KubiScan_folder>/KubiScan.py
kubiscan -ho 192.168.21.129:8443 -t /token -rs

لاحظ أنه يمكنك أيضاً استخدام سلطة التصديق (ca.crt) للتحقق من اتصال SSL:

root@kitploit:~
kubiscan -ho <master_ip:master_port> -t /token -c /ca.crt <command>

لإزالة حساب الخدمة المخوّل، قم بتشغيل الأوامر التالية:

root@kitploit:~
kubectl delete clusterroles kubiscan-clusterrole  
kubectl delete clusterrolebindings kubiscan-clusterrolebinding   
kubectl delete sa kubiscan-sa  
kubectl delete secrets kubiscan-sa-secret

أمثلة

لعرض جميع الأمثلة، قم بتشغيل python3 KubiScan.py -e أو من داخل الحاوية kubiscan -e.

عرض توضيحي

مثال صغير على استخدام KubiScan:

YAML للأدوار الخطرة

يوجد ملف باسم risky_roles.yaml. يحتوي هذا الملف على قوالب للأدوار الخطرة مع أولوية.
على الرغم من أن النوع (kind) في كل دور هو Role، إلا أن هذه القوالب ستتم مقارنتها مع أي دور/دور عنقودي في المجموعة.
عند فحص كل من هذه الأدوار مقابل دور في المجموعة، يتم التحقق مما إذا كان الدور في المجموعة يحتوي على القواعد من الدور الخطير. إذا كان يحتوي، فسيتم وضع علامة عليه كخطر.
لقد أضفنا جميع الأدوار التي وجدنا أنها خطرة، ولكن نظراً لأن كل شخص يمكنه تعريف مصطلح "خطر" بطريقة مختلفة، يمكنك تعديل الملف بإضافة/إزالة الأدوار التي تعتقد أنها أكثر/أقل خطورة.

❤️ عرض المشاريع

  • عُرض في RSA 2020 "اختراق مجموعة Kubernetes عبر استغلال صلاحيات RBAC"
  • عُرض في RSA 2022 "مهاجمة والدفاع عن مجموعة Kubernetes: Kubesploit مقابل KubiScan"
  • مقال من PortSwigger "KubiScan: أداة أمنية مفتوحة المصدر لـ Kubernetes تم عرضها في Black Hat 2020"

الترخيص

حقوق النشر (c) 2020 شركة CyberArk Software Ltd. جميع الحقوق محفوظة
هذا المستودع مرخص بموجب رخصة GPL-3.0 - راجع LICENSE للمزيد من التفاصيل.

المراجع:

لمزيد من التعليقات أو الاقتراحات أو الأسئلة، يمكنك الاتصال بـ Eviatar Gerzi (@g3rzi) و CyberArk Labs.

تنزيل الأداة