
Script Python pour la détection d'instances Nginx vulnérables au CVE-2026-42945 dans les IPs, CIDRs et ASNs.
Scanner pour la détection d'instances Nginx vulnérables au CVE-2026-42945 (NGINX RIFT).
Accepte des IPs individuelles, des plages CIDR et des ASN en entrée.
La CVE-2026-42945 affecte toutes les versions de Nginx antérieures à la 1.30.1.
L'outil sonde HTTP et HTTPS sur les ports par défaut, lit l'en-tête Server de la réponse et classe chaque hôte comme vulnérable, sûr ou potentiellement affecté (version cachée).
Les résultats sont enregistrés dans un journal, avec une liste des hôtes vulnérables à la CVE et, à la fin, un fichier .CSV détaillé.
pip install requests packaging urllib3 dnspython
# IP individuel
python nginx_scanner.py --ip 93.184.216.34
# Plage CIDR
python nginx_scanner.py --cidr 10.0.0.0/24
# Plusieurs CIDR
python nginx_scanner.py --cidr 10.0.0.0/24 192.168.1.0/24
# ASN (préfixes origines résolus via RIPE Stat, repli sur bgp.tools)
python nginx_scanner.py --asn AS15169
# Combinaison d'entrées
python nginx_scanner.py --asn AS13335 --cidr 10.0.0.0/8 --ip 1.2.3.4
# À partir d'un fichier (un IP, CIDR ou ASN par ligne)
python nginx_scanner.py --file alvos.txt
Exemple de SCAN IP :
Exemple de SCAN CIDR :
Exemple de SCAN ASN :
| Paramètre | Défaut | Description |
|---|---|---|
--workers | 60 | Nombre de threads simultanées pour le scan HTTP |
--timeout | 2.0 | Timeout des requêtes HTTP en secondes |
--dns-workers | 200 | Nombre de threads simultanées pour la résolution DNS inverse |
--dns-timeout | 1.5 | Timeout des requêtes DNS en secondes |
--no-confirm | — | Saute la confirmation avant de démarrer (utile en automatisation) |
La résolution DNS est exécutée en lot avant le scan HTTP, en utilisant une file dédiée de threads (
--dns-workers), évitant ainsi que la latence DNS n'affecte les performances du balayage.
Tous les résultats sont enregistrés dans ./logs/ :
| Fichier | Contenu |
|---|---|
nginx_scan_<timestamp>.log | Journal complet du balayage |
nginx_scan_<timestamp>_vulneraveis.txt | Uniquement les hôtes vulnérables |
nginx_scan_<timestamp>_resultados.csv | Tous les hôtes avec statut |
| Statut | Signification |
|---|---|
VULNERÁVEL | Version confirmée inférieure à 1.30.1 |
SEGURO | Version confirmée à 1.30.1 ou supérieure |
AVISO (Versão Oculta) | Nginx détecté mais version non exposée — non confirmé sûr |
INDETERMINADO | Version n'a pas pu être interprétée |
Mettez à jour Nginx vers la version 1.30.1 ou supérieure en utilisant le dépôt officiel 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
Pour d'autres distributions, consultez la documentation officielle de Nginx.
Ce script est destiné à une utilisation sur votre propre infrastructure ou avec une autorisation explicite.
Le balayage non autorisé peut violer diverses législations, alors utilisez-le avec prudence.
Sinon, si vous avez des suggestions d'amélioration des fonctionnalités ou des bugs, n'hésitez pas à ouvrir une issue et à m'envoyer une Pull Request.
Toute contribution est la bienvenue ! 🚀🚀