中文 | EN
这个脚本用来检测 Docker 容器中的逃逸方法,目前支持以下几种方法:
- 容器处于特权模式
- 挂载了 Docker Socket
- 挂载了宿主机 Procfs
- 挂载了宿主机根或者宿主机 etc 目录
- 开启了 Docker 远程 API 访问接口
- CVE-2016-5195 DirtyCow 脏牛漏洞
- CVE-2020-14386
- CVE-2022-0847 DirtyPipe
- CVE-2017-1000112
- CVE-2021-22555
- pod 挂载了宿主机 /var/log 目录
- 当前容器有 CAP_DAC_READ_SEARCH 权限(需要容器支持 capsh 命令)
- 当前容器有 CAP_SYS_ADMIN 权限(需要容器支持 capsh 命令)
- 当前容器有 CAP_SYS_PTRACE 权限(需要容器支持 capsh 命令)
- CVE-2022-0492
在 Docker 容器中一键运行:
wget https://raw.githubusercontent.com/teamssix/container-escape-check/main/container-escape-check.sh -O- | bash
或者克隆项目到容器中运行:
git clone https://github.com/teamssix/container-escape-check.git
cd container-escape-check
chmod +x container-escape-check.sh
./container-escape-check.sh
如果感觉还不错,记得给项目点个小星星(star) ✨
- 这个脚本需要在 Docker 容器中运行
- 这里的检测方法大多是基于我自己的经验,可能会存在检测误检或者漏检的情况,如果您发现了这种情况,欢迎提 Issue
- 由于有的逃逸方法需要根据目标 Docker 的版本去判断,这里我暂时还没想到从容器内部获取 Docker 版本的方法,因此脚本暂时还不支持这块儿的检测。
- 添加了 CVE-2022-0492
- 如果不存在 capsh 命令则会自动安装
- 增强了特权模式检测
- 增强了 /var/log 检测
- 添加了 CVE-2017-1000112
- 添加了 CVE-2021-22555
- 添加了 Mount Host Var Log
- 添加了 CAP_DAC_READ_SEARCH
- 添加了 CAP_SYS_ADMIN
- 添加了 CAP_SYS_PTRACE
- 添加了 Privileged Mode
- 添加了 Mount docker Socket
- 添加了 Mount host procfs
- 添加了 Mount host root or etc directory
- 添加了 Open Docker Remote API
- 添加了 CVE-2016-5195 DirtyCow
- 添加了 CVE-2020-14386
- 添加了 CVE-2022-0847 DirtyPipe