
Python-скрипт для обнаружения экземпляров Nginx, уязвимых к CVE-2026-42945, по IP-адресам, CIDR-диапазонам и ASN.
Сканер для обнаружения экземпляров Nginx, уязвимых к CVE-2026-42945 (NGINX RIFT).
Принимает отдельные IP-адреса, диапазоны CIDR и ASN в качестве входных данных.
CVE-2026-42945 затрагивает все версии Nginx, предшествующие 1.30.1.
Инструмент проверяет HTTP и HTTPS на стандартных портах, считывает заголовок Server ответа и классифицирует каждый хост как уязвимый, безопасный или потенциально затронутый (скрытая версия).
Результаты сохраняются в журнал, вместе со списком хостов, уязвимых к CVE, и подробным CSV-файлом в конце.
pip install requests packaging urllib3 dnspython
# Отдельный IP
python nginx_scanner.py --ip 93.184.216.34
# Диапазон CIDR
python nginx_scanner.py --cidr 10.0.0.0/24
# Несколько диапазонов CIDR
python nginx_scanner.py --cidr 10.0.0.0/24 192.168.1.0/24
# ASN (исходящие префиксы определяются через RIPE Stat, запасной вариант — bgp.tools)
python nginx_scanner.py --asn AS15169
# Комбинация входных данных
python nginx_scanner.py --asn AS13335 --cidr 10.0.0.0/8 --ip 1.2.3.4
# Из файла (по одному IP, CIDR или ASN в строке)
python nginx_scanner.py --file alvos.txt
Пример сканирования IP:
Пример сканирования CIDR:
Пример сканирования ASN:
DNS-разрешение выполняется пакетно перед HTTP-сканированием с использованием отдельной очереди потоков (
--dns-workers), что предотвращает влияние задержки DNS на производительность сканирования.
Все результаты сохраняются в ./logs/:
| Файл | Содержимое |
|---|---|
nginx_scan_<timestamp>.log | Полный журнал сканирования |
nginx_scan_<timestamp>_vulneraveis.txt | Только уязвимые хосты |
nginx_scan_<timestamp>_resultados.csv | Все хосты со статусом |
| Статус | Значение |
|---|---|
VULNERÁVEL | Подтверждённая версия ниже 1.30.1 |
SEGURO |
Обновите Nginx до версии 1.30.1 или выше, используя официальный репозиторий 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
Для других дистрибутивов обратитесь к официальной документации Nginx.
Этот скрипт предназначен для использования в вашей собственной инфраструктуре или при наличии явного разрешения.
Несанкционированное сканирование может нарушать различные законы, поэтому используйте его с осторожностью.
Кроме того, если у вас есть предложения по улучшению функциональности или вы нашли ошибки, не стесняйтесь открывать issue и отправлять мне Pull Request.
Любой вклад приветствуется! 🚀🚀
| Параметр | По умолчанию | Описание |
|---|
--workers | 60 | Количество одновременных потоков для HTTP-сканирования |
--timeout | 2.0 | Таймаут HTTP-запросов в секундах |
--dns-workers | 200 | Количество одновременных потоков для обратного DNS-разрешения |
--dns-timeout | 1.5 | Таймаут DNS-запросов в секундах |
--no-confirm | — | Пропускает подтверждение перед запуском (полезно в автоматизациях) |
| Подтверждённая версия 1.30.1 или выше |
AVISO (Versão Oculta) | Nginx обнаружен, но версия не раскрыта — не подтверждено, что безопасен |
INDETERMINADO | Не удалось интерпретировать версию |