
Script Python para la detección de instancias de Nginx vulnerables a CVE-2026-42945 en IPs, CIDRs y ASNs.
Escáner para detección de instancias Nginx vulnerables al CVE-2026-42945 (NGINX RIFT).
Acepta IPs individuales, rangos CIDR y ASNs como entrada.
El CVE-2026-42945 afecta a todas las versiones de Nginx anteriores a la 1.30.1.
La herramienta sondea HTTP y HTTPS en los puertos predeterminados, lee el encabezado Server de la respuesta y clasifica cada host como vulnerable, seguro o potencialmente afectado (versión oculta).
Los resultados se guardan en un log, con una lista de los hosts vulnerables al CVE y, al final, un archivo .CSV detallado.
pip install requests packaging urllib3 dnspython
# IP individual
python nginx_scanner.py --ip 93.184.216.34
# Faixa CIDR
python nginx_scanner.py --cidr 10.0.0.0/24
# Múltiplos CIDRs
python nginx_scanner.py --cidr 10.0.0.0/24 192.168.1.0/24
# ASN (prefixos originados resolvidos via RIPE Stat, fallback para bgp.tools)
python nginx_scanner.py --asn AS15169
# Combinação de entradas
python nginx_scanner.py --asn AS13335 --cidr 10.0.0.0/8 --ip 1.2.3.4
# A partir de um arquivo (um IP, CIDR ou ASN por linha)
python nginx_scanner.py --file alvos.txt
Ejemplo de SCAN IP:
Ejemplo de SCAN CIDR:
Ejemplo de SCAN ASN:
| Parámetro | Valor por defecto | Descripción |
|---|---|---|
--workers | 60 | Número de hilos simultáneos para el escaneo HTTP |
--timeout | 2.0 | Tiempo de espera (timeout) de las solicitudes HTTP en segundos |
--dns-workers | 200 | Número de hilos simultáneos para la resolución DNS inversa |
--dns-timeout | 1.5 | Tiempo de espera (timeout) de las consultas DNS en segundos |
--no-confirm | — | Omite la confirmación antes de iniciar (útil en automatizaciones) |
La resolución DNS se ejecuta por lotes antes del escaneo HTTP, utilizando una cola dedicada de hilos (
--dns-workers), evitando que la latencia del DNS afecte el rendimiento del escaneo.
Todos los resultados se guardan en ./logs/:
| Archivo | Contenido |
|---|---|
nginx_scan_<timestamp>.log | Registro (log) completo del escaneo |
nginx_scan_<timestamp>_vulneraveis.txt | Solo hosts vulnerables |
nginx_scan_<timestamp>_resultados.csv | Todos los hosts con estado |
| Estado | Significado |
|---|---|
VULNERÁVEL | Versión confirmada inferior a 1.30.1 |
SEGURO | Versión confirmada en 1.30.1 o superior |
AVISO (Versão Oculta) | Nginx detectado pero versión no expuesta — no confirmado como seguro |
INDETERMINADO | No se pudo interpretar la versión |
Actualice Nginx a la versión 1.30.1 o superior utilizando el repositorio oficial de nginx.org.
# Ubuntu / Debian
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/mainline/ubuntu $(lsb_release -cs) nginx" \
| tee /etc/apt/sources.list.d/nginx.list
echo -e "Package: *\nPin: origin nginx.org\nPin-Priority: 900" \
| tee /etc/apt/preferences.d/99nginx
apt update && apt install --only-upgrade nginx
nginx -v
Para otras distribuciones, consulte la documentación oficial de Nginx.
Este script está destinado al uso en tu propia infraestructura o bajo autorización explícita.
El escaneo no autorizado puede violar diversas legislaciones, así que úsalo con precaución.
Por lo demás, si tienes alguna sugerencia de mejora de las funcionalidades o bugs, no dudes en abrir una issue y enviarme un Pull Request.
¡Toda contribución es bienvenida! 🚀🚀