用于检测易受 CVE-2026-42945 (NGINX RIFT) 影响的 Nginx 实例的扫描器。
接受单个 IP、CIDR 范围以及 ASN 作为输入。
CVE-2026-42945 影响所有 1.30.1 之前 的 Nginx 版本。
该工具在默认端口上探测 HTTP 和 HTTPS,读取响应头中的 Server 字段,并将每个主机分类为脆弱、安全或可能受影响(版本隐藏)。
结果会记录到日志中,包含一份脆弱主机的列表,以及最终的详细 .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 扫描示例:
| 参数 | 默认值 | 描述 |
|---|---|---|
--workers | 60 | HTTP 扫描的并发线程数 |
--timeout | 2.0 | HTTP 请求超时时间(秒) |
--dns-workers | 200 | 反向 DNS 解析的并发线程数 |
--dns-timeout | 1.5 | DNS 查询超时时间(秒) |
--no-confirm | — | 跳过开始前的确认(用于自动化) |
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 | 确认版本为 1.30.1 或更高 |
AVISO (Versão Oculta) | 检测到 Nginx 但版本未公开——无法确认安全 |
INDETERMINADO | 无法解析版本号 |
将 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 官方文档。
此脚本仅用于您自己的基础设施或已获得明确授权的情况下。
未经授权的扫描可能违反多项法律,请谨慎使用。
此外,如果您对功能改进或 bug 有任何建议,欢迎提交 issue 并发送 Pull Request。
欢迎任何贡献! 🚀🚀