
CVE-2026-42945에 취약한 Nginx 인스턴스를 IP, CIDR 및 ASN에서 탐지하는 Python 스크립트.
**CVE-2026-42945 (NGINX RIFT)**에 취약한 Nginx 인스턴스를 탐지하는 스캐너입니다.
개별 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을 통해 원천 접두사를 확인하며, fallback으로 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 | 모든 호스트와 상태 포함 |
| 상태 | 의미 |
|---|---|
취약 | 1.30.1 미만의 버전 확인됨 |
안전 | 1.30.1 이상의 버전 확인됨 |
경고 (버전 숨김) | Nginx 감지되었으나 버전 노출되지 않음 — 안전 확인 불가 |
공식 nginx.org 저장소를 사용하여 Nginx를 1.30.1 이상으로 업데이트하세요.
# 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 문서를 참조하세요.
이 스크립트는 자체 인프라 또는 명시적 허가를 받은 경우에만 사용하도록 설계되었습니다.
허가 없는 스캔은 여러 법률을 위반할 수 있으므로 주의하여 사용하십시오.
기능 개선이나 버그에 대한 제안이 있으시면 언제든지 이슈를 열고 Pull Request를 보내주세요.
모든 기여를 환영합니다! 🚀🚀
| 매개변수 | 기본값 | 설명 |
|---|
--workers | 60 | HTTP 스캔을 위한 동시 스레드 수 |
--timeout | 2.0 | HTTP 요청 타임아웃(초) |
--dns-workers | 200 | 역DNS 해석을 위한 동시 스레드 수 |
--dns-timeout | 1.5 | DNS 쿼리 타임아웃(초) |
--no-confirm | — | 시작 전 확인 건너뛰기 (자동화에 유용) |
미확인 | 버전을 해석할 수 없음 |