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
cpanel-cve-2026-41940-ioc — CVE-2026-41940 escáner de IOC de bypass de autenticación en cPanel/WHM: corrige falsos positivos en el script de detección upstream y añade correlación cruzada de registros. | Kitploit
Herramientas/GitHubGitHub/andrei-dr/cpanel-cve-2026-41940-ioc
Herramientas DefensivasEscáneres de VulnerabilidadesSeguridad WebAutenticaciónRespuesta a IncidentesAnálisis de Registros
GitHubandrei-dr/cpanel-cve-2026-41940-ioc

cpanel-cve-2026-41940-ioc

CVE-2026-41940 escáner de IOC de bypass de autenticación en cPanel/WHM: corrige falsos positivos en el script de detección upstream y añade correlación cruzada de registros.

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 →
Ver Repositorio
4hace 3 mesesAún no revisado
Compartir

Escáner de IOC para CVE-2026-41940

Script de detección para la omisión de autenticación en cPanel/WHM (CVE-2026-41940) que afecta a todas las versiones de cPanel posteriores a la 11.40.

Esta es una reescritura del script de detección de cPanel original con correcciones para falsos positivos y correlación de registros añadida.

Qué hace

Escanea /var/cpanel/sessions/raw/ en busca de archivos de sesión que muestren signos de explotación por inyección de nuevas líneas, y luego cruza las IPs y tokens de sesión sospechosos con los registros de acceso/inicio de sesión/error de cPanel. También escanea el access_log en busca de explotación histórica donde el archivo de sesión ya haya expirado o haya sido purgado.

Correcciones sobre el script original

  1. Elimina la expresión regular multilínea pass defectuosa que genera falsos positivos en cada sesión autenticada en producción (la regex coincide con cualquier campo pass= seguido de otra línea, que es todos los archivos de sesión).
  2. Generaliza la detección de inyección a method=badpass origin + CUALQUIER atributo posterior a la autenticación en lugar de exigir la combinación limitada . Detecta variantes de PoC que omiten .
token_denied + cp_security_token
token_denied
  • Severidad de tres niveles basada en el resultado observado en lugar de un indicador binario:
    • CRÍTICO — token inyectado observado con 2xx/3xx en access_log (explotación exitosa), o explotación histórica encontrada en access_log después de que la sesión expirara
    • ALTO — la escritura de la inyección se realizó pero el token nunca apareció en access_log (preparado, aún podría usarse)
    • MEDIO — el token se intentó pero cada solicitud recibió 4xx/5xx (el servidor lo bloqueó)
  • Guía de remediación escalada — CRÍTICO/ALTO activa la respuesta completa a incidentes; solo MEDIO significa que el servidor resistió y recibe pasos de limpieza más ligeros.
  • Cruza referencias tanto por cpsessid como por IPs extraídas de los aciertos en access_log del token inyectado, detectando pivotes de IP del atacante después de la inyección.
  • Detección solo mediante access_log — detecta explotación donde el archivo de sesión expiró o fue purgado, correlacionando intentos de inicio de sesión fallidos (POST /login/?login_only=1 -> 401) con el uso posterior exitoso del token cpsess desde la misma IP.
  • Modo --extended para un barrido de registros más profundo en fuentes adicionales.
  • Ejecución rápida (sin necesidad de clonar)

    root@kitploit:~
    # Bash — funciona en cualquier lugar, sin dependencias
    bash <(curl -fsSL https://raw.githubusercontent.com/AndreiG6/cpanel-cve-2026-41940-ioc/main/ioc.sh)
    
    # Python — más rápido en directorios de sesión grandes, soporta --json
    curl -fsSLo /tmp/ioc.py https://raw.githubusercontent.com/AndreiG6/cpanel-cve-2026-41940-ioc/main/ioc.py
    python3 /tmp/ioc.py
    
    # Escaneo extendido (cualquier variante)
    bash <(curl -fsSL https://raw.githubusercontent.com/AndreiG6/cpanel-cve-2026-41940-ioc/main/ioc.sh) --extended
    python3 /tmp/ioc.py --extended
    
    # Verificar el código de salida después de la ejecución ($? = 0 limpio, 1 IOC encontrados, 2 error de entorno)
    echo $?
    

    Flags de curl: -f falla en errores HTTP en lugar de canalizar una página de error a bash, -s silencioso (sin barra de progreso), -S aún muestra errores a pesar de -s, -L sigue redirecciones.

    Salida JSON (solo Python)

    La variante Python soporta --json para salida estructurada que puedes canalizar a jq, alimentar a un SIEM, o procesar programáticamente.

    root@kitploit:~
    # Salida JSON completa
    python3 ioc.py --json
    
    # Solo los recuentos de resumen
    python3 ioc.py --json | jq '.counts'
    
    # Listar todos los hallazgos CRÍTICOS
    python3 ioc.py --json | jq '[.findings[] | select(.severity == "CRITICAL")]'
    
    # Extraer IPs de atacante únicas
    python3 ioc.py --json | jq '.suspect_ips[]'
    
    # Mostrar hallazgos con sus IPs de origen (para listas de bloqueo de firewall)
    python3 ioc.py --json | jq '[.findings[] | {severity, source_ip, token: .cp_security_token}]'
    
    # Obtener todas las IPs que tuvieron uso exitoso de token (para bloqueo inmediato)
    python3 ioc.py --json | jq '[.findings[] | select(.severity == "CRITICAL") | .source_ip] | unique'
    
    # Alimentar datos de referencia cruzada para una IP específica
    python3 ioc.py --json | jq '.cross_ref[.suspect_ips[0]]'
    

    Ejemplo de estructura JSON:

    root@kitploit:~
    {
      "findings": [
        {
          "severity": "CRITICAL",
          "file": "/var/cpanel/sessions/raw/:Q3f8Ag2epeBuTaIZ",
          "verdict": "Injected token used successfully (2xx/3xx in access_log)",
          "origin": "address=203.0.113.50,app=whostmgrd,method=badpass",
          "source_ip": "203.0.113.50",
          "user": "root",
          "hasroot": "1",
          "tfa_verified": "0",
          "cp_security_token": "/cpsess04396539398",
          "token_denied": "1",
          "successful_internal_auth_with_timestamp": "9999999999",
          "token_hits": [
            "203.0.113.50 - root [04/30/2026:12:12:01 -0000] \"GET /cpsess04396539398/json-api/version HTTP/1.1\" 200 0 ..."
          ]
        },
        {
          "severity": "MEDIUM",
          "file": "/var/cpanel/sessions/raw/:2TDiaHwh_r8qOH5y",
          "verdict": "Injection landed; token was tried but BLOCKED (all 4xx/5xx)",
          "source_ip": "198.51.100.23",
          "cp_security_token": "/cpsess5637704041",
          "token_hits": [
            "198.51.100.23 - root [04/30/2026:04:08:09 -0000] \"GET /cpsess5637704041/json-api/version HTTP/1.1\" 403 0 ..."
          ]
        },
        {
          "severity": "CRITICAL",
          "file": null,
          "verdict": "Injected cpsess token used with 2xx/3xx after failed login; session expired or purged",
          "source_ip": "203.0.113.99",
          "cp_security_token": "/cpsess8705792557",
          "token_hits": ["..."]
        }
      ],
      "counts": {"critical": 2, "high": 15, "medium": 71, "warning": 0},
      "suspect_ips": ["203.0.113.50", "198.51.100.23", "203.0.113.99"],
      "suspect_ips_omitted": 0,
      "cross_ref": {
        "203.0.113.50": {
          "cpanel_access_log": ["...last 5 lines..."],
          "cpanel_login_log": ["..."]
        }
      },
      "advisory": "https://support.cpanel.net/hc/en-us/articles/40073787579671"
    }
    

    Uso (copia local)

    root@kitploit:~
    git clone https://github.com/AndreiG6/cpanel-cve-2026-41940-ioc.git
    cd cpanel-cve-2026-41940-ioc
    
    # Variante Bash
    bash ioc.sh                # predeterminado (CRÍTICO/ALTO expandido, MEDIO/ADVERTENCIA solo recuentos)
    bash ioc.sh -v             # verboso (expandir todos los hallazgos)
    bash ioc.sh --extended     # verboso + registros más profundos + todas las IPs en referencia cruzada
    
    # Variante Python (misma lógica de detección, más rápida, salida estructurada)
    python3 ioc.py             # predeterminado (mismo comportamiento de colapso que bash)
    python3 ioc.py -v          # verboso
    python3 ioc.py --extended  # verboso + registros más profundos
    python3 ioc.py --json      # JSON estructurado (siempre incluye todos los hallazgos)
    

    Debe ejecutarse como root en el servidor cPanel de destino. La variante Python requiere Python 3.6+ (incluido con CentOS 7 / CloudLinux 7+).

    Códigos de salida

    CódigoSignificado
    0No se encontraron indicadores
    1IOC detectados
    2Error de entorno (no es un servidor cPanel)

    Referencias

    • Aviso de cPanel
    • CVE-2026-41940: Omisión de autenticación mediante inyección de nuevas líneas en el manejo de sesiones de cPanel

    Licencia

    MIT

    Descargar herramienta