容器逃逸攻击手册
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md 的说明,将技能 @user_3c6cb52e/container-escape-techniques-lr-ndqy 安装到当前 AI 助手中。
技能介绍
要解决的问题
容器并不天然提供安全边界。一次 docker run 配置不当,就可能让攻击者从容器内拿到宿主机的 root 权限。基座模型在面对这类问题时,容易漏掉由多项 Capability 组合与 cgroup 操作串联而成的隐蔽逃逸路径,只给出「开启特权模式即可逃逸」这类粗粒度答案。本技能面向红队与安全工程师,把容器逃逸拆成可复现的攻击手册。
核心能力
- 特权容器逃逸:从
--privileged容器中获取宿主机控制权的经典路径 - Capability 滥用:识别
CAP_SYS_ADMIN、CAP_DAC_READ_SEARCH等能力被单独授予时的组合利用手法 - Docker Socket 利用:通过挂载
/var/run/docker.sock直接操控宿主机 Docker 守护进程 - cgroup release_agent:借助 cgroup 配置实现宿主机命令执行
- Namespace 逃逸:突破 PID、Mount 等命名空间隔离的限制
- Runtime CVE:利用容器运行时已知漏洞绕过隔离
- Kubernetes Pod 逃逸:针对 K8s 环境的专属逃逸路径
工作方式
技能采用分层路由设计。在深入某个具体技术前,会先建议加载关联技能:
- 首次需要在容器内拿到 root 时,加载
linux-privilege-escalation - 需要 K8s 特有的攻击面(超出 Pod 逃逸范围)时,加载
kubernetes-pentesting seccomp或 AppArmor 拦截逃逸手法时,加载linux-security-bypass
需要完整攻击链时,进一步引用 DOCKER_ESCAPE_CHAINS.md,其中包含常见错误配置的分步逃逸链、Docker-in-Docker 场景,以及带完整命令序列的 Kubernetes 逃逸路径。
适用边界
本技能是攻击侧手册,用于授权渗透测试与安全研究。它给出的是武器化路径而非防御清单;实际环境中能否走通,取决于运行时版本、镜像基础层和宿主机的 seccomp/AppArmor 策略。K8s 场景的逃逸是否成立,还与 Service Account 权限、网络策略和 kubelet 版本强相关,不能假设默认配置。
使用场景
- 评估 `docker run` 参数时,判断挂载 `/var/run/docker.sock` 是否会让容器内进程直接操控宿主机 Docker 守护进程
- 在授权渗透测试中,从已获取的 `--privileged` 容器内规划拿到宿主机 root 的具体逃逸路径
- 排查 K8s 集群风险时,确认 Pod Service Account 权限与挂载配置是否会被利用来实现 Pod 逃逸
- `seccomp` 或 AppArmor 拦截了某个逃逸手法后,分析替代路径或绕过方式以继续完成容器逃逸验证
适合人员
- 负责容器化业务安全的红队工程师,需要在授权测试中给出可复现的逃逸链而非理论概览
- 维护 Docker 与 K8s 集群的平台运维,需要识别特权容器、Capability 授予和 Socket 挂载带来的实际风险
- 为容器运行时或 K8s 组件提交 CVE 的安全研究员,需要确认 runtime 漏洞对应的 Pod 逃逸利用路径
- 编写容器安全检测规则的工程师,需要理解 cgroup release_agent、namespace 逃逸等手法来覆盖检测规则