
CVE-2026-42945 - NGINX Rift Toolkit
CVE-2026-42945(nginx의 치명적인 RCE 취약점)를 스캔, 패치, 테스트하기 위한 종합 툴킷
이 툴킷은 CVE-2026-42945(nginx 메인라인 1.26.3 미만, 안정판 1.24.1 미만에 영향을 미치는 치명적인 원격 코드 실행(RCE) 취약점)를 스캔, 패치, 테스트하기 위한 포괄적인 도구를 제공합니다.
이 취약점은 힙 스프레이 기법을 사용하여 ASLR이 비활성화된 상태에서 잘못된 HTTP/2 헤더 구문 분석을 악용합니다.
서브넷 또는 단일 호스트를 스캔하여 취약한 nginx 설치를 식별합니다.
기능:
취약한 nginx 인스턴스를 최신 보안 버전으로 자동 패치합니다.
기능:
힙 스프레이 기법을 통해 CVE-2026-42945 취약점을 테스트합니다.
기능:
paramiko (>= 3.0.0) - SSH 클라이언트 라이브러리
rich (>= 13.0.0) - 터미널 포맷팅 및 진행 바
git clone https://github.com/gagaltotal/CVE-2026-42945-NGINX-Rift-Toolkit
cd CVE-2026-42945-NGINX-Rift-Toolkit
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

nginx_scanner.py)python3 nginx_scanner.py --subnet 192.168.1.0/24 --user root --key ~/.ssh/id_rsa
python3 nginx_scanner.py --subnet 192.168.1.10 --user root --key ~/.ssh/id_rsa
python3 nginx_scanner.py --subnet 10.0.0.0/30 --user admin --password "password"
python3 nginx_scanner.py --subnet 192.168.1.0/24 --port 2222 --user root --key ~/.ssh/id_rsa
python3 nginx_scanner.py --subnet 192.168.1.0/24 --user root --key ~/.ssh/id_rsa --output report.html
--subnet SUBNET CIDR 형식의 대상 서브넷(필수)
--user USER SSH 사용자 이름(기본값: root)
--password PASSWORD SSH 비밀번호
--key KEY_PATH SSH 개인 키 경로
--port PORT SSH 포트(기본값: 22)
--timeout TIMEOUT 연결 타임아웃(초, 기본값: 5)
--output FILE 출력 리포트 파일(HTML/JSON)
--workers WORKERS 동시 스레드 수(기본값: 20)
nginx_patcher.py)
python3 nginx_patcher.py --subnet 192.168.1.0/24 --user root --key ~/.ssh/id_rsa
python3 nginx_patcher.py --subnet 192.168.1.0/24 --user root --key ~/.ssh/id_rsa --dry-run
python3 nginx_patcher.py --subnet 192.168.1.0/24 --target-version 1.26.3 --user root --key ~/.ssh/id_rsa
python3 nginx_patcher.py --subnet 10.0.0.0/30 --port 2222 --user admin --password "password"
--subnet SUBNET CIDR 형식의 대상 서브넷(필수)
--user USER SSH 사용자 이름(기본값: root)
--password PASSWORD SSH 비밀번호
--key KEY_PATH SSH 개인 키 경로
--port PORT SSH 포트(기본값: 22)
--timeout TIMEOUT 연결 타임아웃(초, 기본값: 30)
--target-version VERSION 패치할 nginx 버전(기본값: 최신)
--dry-run 실행하지 않고 패치될 내용만 표시
--workers WORKERS 동시 스레드 수(기본값: 10)
exploit.py)
python3 exploit.py --target 192.168.1.100 --port 80
python3 exploit.py --target 192.168.1.100 --port 80 --command "cat /etc/passwd"
python3 exploit.py --target 192.168.1.100 --port 80 --spray 50
python3 exploit.py --target 192.168.1.100 --port 80 --verbose
--target HOST 대상 호스트 IP 또는 도메인(필수)
--port PORT 대상 포트(기본값: 80)
--command CMD 실행할 명령
--spray NUM 힙 스프레이 시도 횟수(기본값: 20)
--timeout TIMEOUT 연결 타임아웃(초, 기본값: 5)
--tries NUM 익스플로잇 시도 횟수(기본값: 10)
--verbose 상세 출력 활성화
# 1단계: 취약한 인스턴스에 대해 네트워크 스캔
python3 nginx_scanner.py --subnet 10.0.0.0/24 --user admin --key ~/.ssh/key --output scan_results.html
# 2단계: scan_results.html에서 스캔 결과 검토
# 3단계: 취약한 인스턴스 패치
python3 nginx_patcher.py --subnet 10.0.0.0/24 --user admin --key ~/.ssh/key
# 4단계: 스캐너를 다시 실행하여 패치가 적용되었는지 확인
python3 nginx_scanner.py --subnet 10.0.0.0/24 --user admin --key ~/.ssh/key
# 1단계: 패치될 내용을 미리 보기 위해 드라이 런 실행
python3 nginx_patcher.py --subnet 192.168.1.0/24 --user root --key ~/.ssh/id_rsa --dry-run
# 2단계: 패치 적용
python3 nginx_patcher.py --subnet 192.168.1.0/24 --user root --key ~/.ssh/id_rsa
# 1단계: 먼저 시스템이 취약한지 확인
python3 exploit.py --target 10.0.0.50 --port 80 --verbose
# 2단계: 성공한 경우 즉시 패치 권장
python3 nginx_patcher.py --subnet 10.0.0.50 --user root --key ~/.ssh/id_rsa
python3 nginx_scanner.py --subnet 10.0.0.0/24 --user root --key ~/.ssh/id_rsa
python3 nginx_scanner.py --subnet 10.0.0.0/24 --user root --password "password"
python3 nginx_scanner.py --subnet 10.0.0.0/24 --user root --key ~/.ssh/id_rsa --port 2222
chmod 600 ~/.ssh/id_rsa--dry-run 사용스캐너는 여러 형식으로 상세 리포트를 생성합니다.
| 형식 | 설명 |
|---|---|
| HTML 리포트 | 취약점 요약, 영향을 받은 호스트, 버전 세부 정보가 포함된 브라우저에서 볼 수 있는 리포트 |
| JSON 리포트 | 전체 기술 세부 정보가 포함된 기계가 읽을 수 있는 형식 |
| 콘솔 출력 | 색상 코드 결과와 함께 실시간 진행 상황 |
모든 작업은 감사 규정 준수를 위해 타임스탬프와 함께 기록됩니다. 자세한 실행 정보는 콘솔 출력을 확인하세요.
기여는 환영합니다! 기여하려면:
git checkout -b feature/improvement).git commit -am 'Add improvement').git push origin feature/improvement).이 툴킷은 승인된 보안 테스트 및 취약점 평가 용도로만 제공됩니다. 컴퓨터 시스템에 대한 무단 접근은 불법입니다. 사용자는 이 툴킷을 사용하기 전에 적절한 승인을 받았는지 확인할 책임이 있습니다.
gagaltotal - GitHub
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.
마지막 업데이트: 2026-05-20
| 속성 | 값 |
|---|
| 취약점 ID | CVE-2026-42945 |
| 유형 | 원격 코드 실행(RCE) |
| CVSS 점수 | 9.8(치명적) |
| 영향 받는 버전 | < 1.26.3(메인라인) / < 1.24.1(안정판) |
| 수정된 버전 | 1.26.3+ |
| 공격 벡터 | 잘못된 HTTP/2 헤더 구문 분석 |
| 전제 조건 | 대상 시스템에서 ASLR 비활성화 |
| 고려 사항 | 세부 사항 |
|---|
| SSH 키 관리 | SSH 키를 안전하게 보관하고 저장소에 절대 커밋하지 않음 |
| 네트워크 접근 | 프로덕션 사용 시 적절한 네트워크 분할 확인 |
| 테스트 환경 | 항상 비프로덕션 환경에서 먼저 테스트 |
| 로깅 | 모든 작업은 감사 추적을 위해 상세 로그 생성 |
| ASLR 상태 | 익스플로잇 도구는 대상에서 ASLR이 비활성화되어야 함 |
| 드라이 런 모드 | 적용 전 변경 사항을 미리 보려면 --dry-run 플래그 사용 |
| 백업 | 패치 전 항상 nginx 설정 백업 |