Docker 安全测试与容器渗透是一套面向容器环境的安全评估方法论。其核心观点是:Docker 的攻击面不只有逃逸,容器配置、Docker Daemon、Registry、镜像层、构建上下文以及宿主机共享内核都会形成不同的突破路径。使用前应先判断自身所处视角——容器内、宿主机用户态,还是远程 Registry/API——再选择逃逸、凭据提取或供应链横向移动。
【用途】 用于评估 Docker 容器、Docker Daemon、Docker Registry、镜像层、构建产物或容器逃逸风险。
【主要能力】
- 攻击面确认:通过 /proc/1/cgroup、/.dockerenv、/proc/1/sched 等判断是否处于容器中,并收集 hostname、系统版本、内核版本等基础信息。
- 逃逸条件检查清单(按成功率排序):特权容器(CapEff 为 0000003fffffffff)、Docker Socket 挂载、procfs 挂载(core_pattern 逃逸)、Docker Remote API 暴露(2375 端口)、宿主机目录挂载、Docker 用户组提权、危险 Capabilities(CAP_SYS_ADMIN、CAP_SYS_PTRACE、CAP_DAC_OVERRIDE、CAP_NET_ADMIN)、PID namespace 共享、网络共享、内核版本 CVE 匹配、环境变量泄露、docker-compose 配置泄露、Registry/镜像凭据等。
- 攻击决策树:根据检查结果导向不同路径,包括特权容器逃逸、Docker Socket 创建特权容器、procfs core_pattern 反弹 shell、Remote API 远程创建特权容器、宿主机目录挂载写 crontab/SSH key、Docker 用户组提权、CAP_SYS_ADMIN cgroup 逃逸、CAP_SYS_PTRACE 注入宿主机进程、hostNetwork 访问宿主机服务/Metadata API、运行时 CVE(CVE-2019-5736、CVE-2019-16884、CVE-2020-15257)、Registry 枚举与镜像层 Secret 分析,以及内核漏洞匹配(DirtyPipe CVE-2022-0847、DirtyCow CVE-2016-5195、CVE-2022-23222、CVE-2021-22555、OverlayFS CVE-2021-3493)。
- 快速逃逸命令:提供特权容器挂载宿主机磁盘、Docker Socket 通过 curl 调用 API 创建并启动特权容器读取文件、procfs core_pattern 反弹 shell、Docker Remote API 远程逃逸、写 Crontab 逃逸、Docker 用户组提权等具体命令示例。
- 工具:CDK(容器逃逸自动化检测+利用)、deepce(Docker 枚举脚本)、amicontained(容器环境检测)。
【使用方式】 按阶段推进:先做攻击面确认,再逐项执行逃逸条件检查清单,然后依据决策树选择路径,最后使用对应的快速逃逸命令。深入内容可参考 references/escape-methods.md(容器逃逸方法完整 payload 与利用条件、Docker Build Context 滥用)和 references/registry-and-image-analysis.md(Registry、镜像层与构建产物 Secret 分析)。
【适用场景】 渗透测试、红队评估、容器安全审计、CI/CD 构建上下文风险排查、镜像供应链安全分析等。
【限制】 具体利用成功率、目标环境差异、授权要求等资料未详细说明;部分命令依赖特定挂载或权限前提,需结合实际环境验证。