作者: w01f
状态: 概念验证(仅用于教育/授权测试)
本项目演示了 CVE-2025-9074 的概念验证,该漏洞涉及 Docker Desktop for Windows 某些版本中的配置错误/暴露问题——Docker 引擎 HTTP API(位于 http://192.168.65.7:2375)可从容器内访问(有时也可通过 SSRF 访问),使攻击者能够创建一个带有 bind mount 的容器,挂载到 Windows 主机驱动器,并向主机写入文件。
⚠️ 仅限在受控实验环境中使用,或获得明确的书面授权。滥用可能导致违反法律和政策。
http://192.168.65.7:2375)C:\(在 Linux VM 内映射为 /mnt/host/c)到容器内 /host_root 的 bind mountC:\pwn.txt如果目标存在漏洞,你会看到 Windows 主机上出现该文件。
192.168.65.7:2375(HTTP,无 TLS)。✅ 如果从容器内执行
GET http://192.168.65.7:2375/_ping返回OK,则很可能满足 PoC 条件。
.
├─ cve_2025_9074_poc.py # Python PoC(基于 requests)
└─ README.md # 本文件
pip install requestshttp://192.168.65.7:2375)# 1) 安装依赖
pip install --no-input requests
# 2) 运行 PoC
python3 cve_2025_9074_poc.py
# 可选:自定义输出文件名或镜像
# python3 cve_2025_9074_poc.py --outfile test.txt --image busybox
默认行为:
http://192.168.65.7:2375/mnt/host/c(从 Linux VM 视角看到的 Windows C:\)/host_rootC:\pwn.txt--host 引擎主机 IP(默认:192.168.65.7)
--port 引擎端口 (默认:2375)
--image 容器镜像 (默认:alpine)
--host-path 引擎主机/VM 上要绑定的路径(默认:/mnt/host/c)
--mount-path 容器内的路径 (默认:/host_root)
--outfile 要在主机 C:\ 上创建的文件名(默认:pwn.txt)
在存在漏洞的系统上,运行 PoC 后应能找到:
C:\pwn.txt
文件内容为文本 pwned_by_CVE_2025_9074。
PoC 使用短期存活的容器。如要彻底清理:
# 从具有 docker CLI 访问权限的特权 shell 执行:
docker ps -a --format '{{.ID}}\t{{.Image}}\t{{.Command}}'
# 如有残留,按容器 ID 删除:
docker rm -f <CONTAINER_ID>
# 删除主机上的测试文件:
del C:\pwn.txt
HostConfig.Binds 包含 /mnt/host/c 或其他主机驱动器挂载路径。C:\ 上非预期的文件创建,这些创建可能源自 Docker Linux VM 上下文中的进程。192.168.65.7:2375(HTTP)的网络流量是可疑的。/ping 未返回 OK / 连接被拒绝:引擎 API 无法从你的容器访问;目标主机可能已修补或未暴露。--host-path 是否正确映射到 Linux VM 视角下的 Windows C:\。某些环境可能有所不同。alpine 或使用 --image busybox 切换到 busybox。本 PoC 仅用于教育和授权测试。未经明确书面授权对系统运行此程序是非法且不道德的。作者和贡献者 不对滥用或损害负责。
MIT
作者: w01f