-
Notifications
You must be signed in to change notification settings - Fork 555
CDK Home CN
cdxy edited this page Nov 25, 2020
·
27 revisions
简体中文 | English
未经授权许可使用CDK攻击目标是非法的。 本程序应仅用于安全测试与研究目的。
CDK是一款为容器环境定制的渗透测试工具,在已攻陷的容器内部提供零依赖的常用命令及PoC/EXP。集成Docker/K8s场景特有的 逃逸、横向移动、持久化利用方式,插件化管理。
目前仍在施工中,欢迎 反馈 及建议 [email protected]。
CDK包括三个功能模块
- Evaluate: 容器内部信息收集,以发现潜在的弱点便于后续利用。
- Exploit: 提供容器逃逸、持久化、横向移动等利用方式。
- Tool: 修复渗透过程中常用的linux命令以及与Docker/K8s API交互的命令。
Usage
cdk evaluate [--full]
该命令默认将执行下表中除"本地文件扫描"以外的全部探测组件,使用--full
参数开启本地文件扫描。
阶段 | 组件 | 已支持 | 用例 |
---|---|---|---|
本地信息收集 | os基础指纹 | ✔ | link |
本地信息收集 | 容器内可用的capabilities | ✔ | link |
本地信息收集 | 容器内可用的linux命令 | ✔ | link |
本地信息收集 | mount到容器中的目录 | ✔ | link |
本地信息收集 | env中的敏感信息 | ✔ | link |
本地信息收集 | 进程中的敏感服务 | ✔ | link |
本地信息收集 | 本地敏感文件 | ✔ | link |
网络探测 | K8s api-server信息 | ✔ | link |
网络探测 | K8s service-account信息 | ✔ | link |
列举全部exploit
cdk run --list
执行指定的exploit
cdk run <script-name> [options]
阶段 | 组件 | 调用名 | 已支持 | 用例 |
---|---|---|---|---|
逃逸 | docker-runc CVE-2019-5736 | |||
逃逸 | dirtycow CVE-2016-5159 | |||
逃逸 | docker.sock PoC (DIND attack) | docker-sock-check | ✔ | link |
逃逸 | docker.sock 部署后门镜像 | docker-sock-deploy | ✔ | link |
逃逸 | 设备挂载逃逸 | mount-disk | ✔ | link |
逃逸 | 共享cgroups逃逸 | mount-cgroup | ✔ | link |
逃逸 | 挂载procfs逃逸 | mount-procfs | ✔ | link |
逃逸 | ptrace逃逸PoC | check-ptrace | ✔ | link |
横向移动 | K8s Service Account投递指令 | |||
横向移动 | 攻击K8s api-server | |||
横向移动 | 攻击K8s Kubelet | |||
横向移动 | 攻击K8s Dashboard | |||
横向移动 | 攻击K8s Helm | |||
横向移动 | 攻击K8s Etcd | |||
横向移动 | 攻击Docker私有镜像库 | |||
远程控制 | 反弹Shell | reverse-shell | ✔ | link |
凭证窃取 | AK泄露扫描 | ak-leakage | ✔ | link |
凭证窃取 | 下载K8s Secrets | |||
凭证窃取 | 下载K8s Config | |||
持久化 | 部署WebShell | |||
持久化 | 部署后门K8s Pod | |||
持久化 | 部署影子K8s api-server | |||
持久化 | 部署K8s Cronbob | |||
检测躲避 | 清理K8s审计日志 |
修复部分Linux命令,提供一些API访问工具,参数略有不同详见用例文档。
Usage
cdk <command> [options]
命令 | 描述 | 已支持 | 用例 |
---|---|---|---|
nc | TCP传输 | ✔ | |
ps | 进程信息 | ✔ | |
ifconfig | 网络信息 | ✔ | |
vi | 文件编辑 | ✔ | |
kcurl | 访问K8s api-server | ||
dcurl | 访问Docker HTTP API | ||
ucurl | 访问Docker Unix Socket | ||
rcurl | 访问Docker Registry API | ||
probe | IP/端口扫描 |
将可执行文件投递到已攻入的容器内部开始使用
https://github.com/Xyntax/CDK/tree/main/release
- echo load便于通过web RCE植入CDK
- EDR检测对抗
- 条件编译
- 开发文档