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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-29145-Tester — 이 저장소에는 CVE-2026-29145를 테스트하기 위해 설계된 개념 증명(PoC) 환경이 포함되어 있습니다. | Kitploit
도구/GitHubGitHub/sancliffe/cve-2026-29145-tester
Vulnerability AnalysisExploitationWeb SecurityPenetration TestingAuthenticationLearning & Education
GitHubsancliffe/cve-2026-29145-tester

CVE-2026-29145-Tester

이 저장소에는 CVE-2026-29145를 테스트하기 위해 설계된 개념 증명(PoC) 환경이 포함되어 있습니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-29145 테스트 환경

📌 개요

이 저장소는 CVE-2026-29145를 테스트하기 위해 설계된 개념 증명(PoC) 환경을 포함합니다.

이 취약점은 Apache Tomcat의 상호 TLS(CLIENT_CERT) 구현에서의 인증 우회입니다. OCSP(온라인 인증서 상태 프로토콜)가 소프트 실패(soft-fail) 비활성화로 구성된 경우, Tomcat은 OCSP 확인 실패를 하드 거부(hard denial)로 처리하지 못할 수 있습니다. 이로 인해 OCSP 응답자가 연결 불가능하거나 오류를 반환하면 잠재적으로 폐기되었거나 검증되지 않은 인증서를 가진 클라이언트가 인증을 우회할 수 있습니다.

🛡️ 취약점 세부 정보

속성값
CVE IDCVE-2026-29145
CVSS 점수9.1 (치명적) - CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
공격 벡터네트워크
필요 권한없음
영향인증 우회

취약점 발생 전제 조건

  • ✓ Tomcat에서 CLIENT_CERT 인증 활성화
  • ✓ OCSP 폐기 확인 활성화
  • ✓ 소프트 실패 옵션 비활성화(하드 실패 모드)
  • ✓ 연결 불가능하거나 실패하는 OCSP 응답자

🚀 시작하기

사전 요구 사항

  • Docker 및 Docker Compose: 취약한 Tomcat 컨테이너 실행용
  • OpenSSL: PKI(공개 키 인프라) 생성용 - 일반적으로 Linux/macOS에 사전 설치됨
  • Python 3.7+: 테스트 스크립트 및 모의 응답자 실행용
  • curl (선택 사항): 수동 테스트용
  • PowerShell (Windows 전용): .ps1 스크립트 사용 시

1. 자동화된 전체 테스트 주기 (권장)

run_test.sh 스크립트는 정리, 인증서 생성, 모든 테스트 시나리오(취약, 성공, 패치) 실행 등 전체 프로세스를 자동화합니다.

root@kitploit:~
# 프로젝트 디렉토리로 이동
cd CVE-2026-29145-Tester

# 스크립트 실행 권한 부여
chmod +x cleanup.sh setup_certs.sh run_test.sh

# Python 종속성 설치 (poc_exploit.py에 필요한 경우)
pip install -r requirements.txt

# 전체 테스트 스위트 실행
./run_test.sh

2. 인증서 생성

Linux/macOS:

root@kitploit:~
./setup_certs.sh

Windows (PowerShell):

root@kitploit:~
.\setup_certs.ps1

이 작업이 수행하는 것:

  • 루트 CA(인증 기관) 생성
  • Tomcat용 서버 인증서 생성
  • http://localhost:8888을 가리키는 OCSP 확장이 포함된 클라이언트 인증서 생성
  • 모든 인증서가 성공적으로 생성되었는지 검증

예상 출력:

root@kitploit:~
[INFO] CVE-2026-29145 테스트 환경용 인증서 생성 시작
[INFO] OpenSSL 발견: OpenSSL 3.0.x (...)
[INFO] certs 디렉토리 생성됨
[INFO] 루트 CA 생성 중...
[INFO] 서버 인증서 생성 중...
[INFO] OCSP 확장이 포함된 클라이언트 인증서 생성 중...
[INFO] 인증서 설정이 성공적으로 완료되었습니다!

3. 취약한 환경 시작

root@kitploit:~
docker-compose up -d

이 작업이 수행하는 것:

  • 포트 8888에서 OCSP 모의 응답자 시작(HTTP 500으로 실패 시뮬레이션)
  • CLIENT_CERT 인증으로 포트 8443에서 취약한 Tomcat 10.1.52 시작
  • 서비스 통신용 내부 Docker 네트워크 생성
  • 두 서비스 모두에 대한 상태 확인 설정

컨테이너 실행 확인:

root@kitploit:~
docker-compose ps

4. 익스플로잇 테스트 실행

root@kitploit:~
python poc_exploit.py

예상 출력:

취약한 시스템:

root@kitploit:~
[INFO] https://localhost:8443/protected-resource에 연결 시도 중...
[WARNING] 취약함: OCSP 확인 실패에도 불구하고 액세스 허용됨.
[WARNING] 응답 미리보기: <html>...

패치된 시스템:

root@kitploit:~
[INFO] https://localhost:8443/protected-resource에 연결 시도 중...
[INFO] 취약하지 않음: 액세스 거부됨 (인증 작동 중).

🧪 테스트 시나리오

시나리오OCSP 상태예상 (패치됨)결과 (취약)참고
정상 작동온라인 및 유효200 OK ✓200 OK ✓OCSP 확인 성공, 액세스 허용
소프트 실패오프라인/시간 초과403 Forbidden ✓200 OK ✗우회 - OCSP 응답자 연결 불가
하드 폐기온라인 및 폐기됨403 Forbidden ✓403 Forbidden ✓인증서가 명시적으로 폐기됨
잘못된 인증서잘못된 체인403 Forbidden ✓403 Forbidden ✓체인 검증 실패

다양한 테스트 시나리오 실행

테스트 1: 기본 (OCSP 응답자 실패)

root@kitploit:~
# 컨테이너 실행 유지
python poc_exploit.py

테스트 2: OCSP 응답자 중지 (시간 초과 시뮬레이션)

root@kitploit:~
docker-compose pause ocsp-responder
python poc_exploit.py
docker-compose unpause ocsp-responder

테스트 3: curl을 사용한 수동 테스트

root@kitploit:~
curl -v \
  --cert certs/client-cert.pem \
  --key certs/client-key.pem \
  --cacert certs/ca-chain.pem \
  https://localhost:8443/protected-resource

🛠️ 프로젝트 구조

root@kitploit:~
CVE-2026-29145-Tester/
├── README.md                    # 이 파일
├── setup_certs.sh              # 인증서 생성 스크립트 - Bash (Linux/macOS)
├── setup_certs.ps1             # 인증서 생성 스크립트 - PowerShell (Windows)
├── cleanup.sh                  # 정리 및 초기화 스크립트 - Bash (Linux/macOS)
├── cleanup.ps1                 # 정리 및 초기화 스크립트 - PowerShell (Windows)
├── run_test.sh                 # 자동화된 전체 테스트 주기 스크립트
├── docker-compose.yml          # Docker 서비스 오케스트레이션
├── requirements.txt            # Python 종속성
├── poc_exploit.py              # 주요 테스트 스크립트 (로깅 및 오류 처리 포함)
├── simple_proxy_fail.py        # 모의 OCSP 응답자 (상세 로깅 포함)
├── .gitignore                  # 인증서 및 로그용 Git 무시 규칙
├── certs/                      # 생성된 인증서 (setup_certs 스크립트로 생성)
│   ├── ca-chain.pem           # 루트 CA 인증서
│   ├── ca-key.pem             # 루트 CA 개인 키
│   ├── server-cert.pem        # Tomcat 서버 인증서
│   ├── server-key.pem         # Tomcat 서버 개인 키
│   ├── client-cert.pem        # 테스트 클라이언트 인증서
│   └── client-key.pem         # 테스트 클라이언트 개인 키
├── tomcat/
│   └── server.xml             # 취약한 Tomcat 구성
└── logs/                       # Tomcat 로그 (런타임 시 생성)

📋 구성 세부 정보

Server.xml 구성 (취약)

tomcat/server.xml 파일은 다음을 구성합니다:

root@kitploit:~
<SSLHostConfig 
    hostName="localhost"
    certificateVerification="required"
    caCertificateFile="conf/certs/ca-chain.pem">
    
    <OpenSSLConf>
        <ConfCommand name="OCSP" value="on"/>
    </OpenSSLConf>
</SSLHostConfig>

주요 설정:

  • certificateVerification="required" - CLIENT_CERT 인증 강제
  • OCSP on - OCSP 폐기 확인 활성화
  • 소프트 실패 재정의 없음 - 하드 실패 모드 사용 (취약)

OCSP 응답자 구성

모의 OCSP 응답자(simple_proxy_fail.py):

  • localhost:8888에서 수신 대기
  • 항상 HTTP 500(서버 오류) 반환
  • 모든 수신 OCSP 요청 기록
  • 연결 불가능/실패하는 OCSP 서비스 시뮬레이션

🔧 문제 해결

일반적인 문제 및 해결 방법

❌ 오류: "OpenSSL이 설치되지 않음"

root@kitploit:~
# macOS
brew install openssl

# Ubuntu/Debian
sudo apt-get install openssl

# CentOS/RHEL
sudo yum install openssl

❌ 오류: "인증서 파일 누락"

원인: 인증서 생성이 실패했거나 실행되지 않았습니다.

root@kitploit:~
# 정리 후 재생성
rm -rf certs
./setup_certs.sh

❌ 오류: 포트 8443에서 "연결 거부"

원인: Tomcat 컨테이너가 실행 중이 아니거나 준비되지 않았습니다.

root@kitploit:~
# 컨테이너 상태 확인
docker-compose ps

# 로그 확인
docker-compose logs vulnerable-tomcat

# 두 서비스가 모두 실행 중이고 정상인지 확인
docker-compose up -d
sleep 10  # 서비스 시작 대기

❌ 오류: "연결 시간 초과"

원인: Tomcat 시작이 너무 오래 걸리거나 네트워크 문제가 있습니다.

root@kitploit:~
# Tomcat 시작 로그 확인
docker-compose logs vulnerable-tomcat

# 시간 초과 증가 및 재시도
timeout 30 docker-compose logs -f vulnerable-tomcat  # 시작 모니터링

❌ 오류: "docker-compose: 명령을 찾을 수 없음"

원인: Docker Compose가 설치되지 않았거나 PATH에 없습니다.

root@kitploit:~
# Docker Compose 설치 (독립 실행형 사용 시)
sudo curl -L "https://github.com/docker/compose/releases/download/v2.x.x/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

# 또는 docker compose 사용 (Docker Desktop에 통합된 V2)
docker compose up -d

❌ 오류: "SSL: CERTIFICATE_VERIFY_FAILED"

원인: 인증서 검증 실패.

root@kitploit:~
# 인증서 파일 존재 확인
ls -la certs/

# 인증서 유효성 확인
openssl x509 -in certs/client-cert.pem -noout -text

❌ 오류: "requests.exceptions.SSLError"

원인: SSL 핸드셰이크 실패 - 하드 실패가 올바르게 작동하고 있음을 나타낼 수 있습니다.

해결 방법: 이는 실제로 긍정적인 신호입니다! 하드 실패가 OCSP 실패 시 액세스를 차단하고 있습니다.

root@kitploit:~
# OCSP 응답자가 실행 중인지 확인
docker-compose ps ocsp-responder

# 상세 오류 보기
python poc_exploit.py  # 이미 상세 로깅 제공

❌ 오류: "주소 이미 사용 중"

원인: 포트 8443 또는 8888이 이미 사용 중입니다.

root@kitploit:~
# 포트를 사용하는 프로세스 찾기
lsof -i :8443
lsof -i :8888

# 프로세스 종료 또는 docker-compose.yml에서 다른 포트 사용

디버깅 및 로그

상세 로그 보기

root@kitploit:~
# Tomcat 로그
docker-compose logs -f vulnerable-tomcat

# OCSP 응답자 로그
docker-compose logs -f ocsp-responder

# Python 스크립트 디버깅
python poc_exploit.py  # 이미 상세 로깅 포함

실시간 이벤트 모니터링

root@kitploit:~
# 터미널을 열고 실행
docker-compose logs -f

# 다른 터미널에서 테스트 실행
python poc_exploit.py

네트워크 디버깅

root@kitploit:~
# OCSP 응답자 연결 테스트
curl http://localhost:8888/

# Tomcat 컨테이너 내부에서 OCSP 응답자 테스트
docker exec vulnerable-tomcat curl http://ocsp-responder:8888/

# SSL 핸드셰이크 테스트
openssl s_client -connect localhost:8443 \
  -cert certs/client-cert.pem \
  -key certs/client-key.pem \
  -CAfile certs/ca-chain.pem

🧹 정리

모든 컨테이너, 볼륨, 인증서 및 로그를 제거하려면:

Linux/macOS:

root@kitploit:~
./cleanup.sh

Windows (PowerShell):

root@kitploit:~
.\cleanup.ps1

이 작업이 수행하는 것:

  • 모든 Docker 컨테이너 중지 및 제거
  • 생성된 certs/ 디렉토리 제거
  • logs/ 디렉토리 제거
  • Python 캐시 파일 정리

정리 확인:

root@kitploit:~
docker-compose ps  # 아무것도 표시되지 않아야 함
ls -la certs/      # 존재하지 않아야 함

⚖️ 면책 조항

이 프로젝트는 교육 및 승인된 보안 테스트 목적으로만 사용됩니다.

  • ⚠️ 소유하거나 명시적 서면 허가를 받은 시스템에만 사용하십시오
  • ⚠️ 승인 없이 시스템에 이러한 도구를 사용하는 것은 불법이며 비윤리적입니다
  • ⚠️ 저자는 이 소프트웨어의 오용에 대해 책임을 지지 않습니다
  • ⚠️ 프로덕션 시스템에서 테스트하기 전에 항상 적절한 백업이 있는지 확인하십시오

📝 수정 조치

이 취약점을 완화하려면 Apache Tomcat을 다음 버전으로 업그레이드하십시오:

버전 시리즈최소 수정 버전
11.0.x11.0.20 이상
10.1.x10.1.53 이상
9.0.x9.0.116 이상

업그레이드 단계:

root@kitploit:~
# 예: docker-compose.yml을 패치된 버전으로 업데이트
# 변경: image: tomcat:10.1.52-jdk17
# 대상: image: tomcat:10.1.53-jdk17

docker-compose down
docker-compose up -d

🔗 참조

  • CVE-2026-29145 세부 정보
  • Apache Tomcat 문서
  • OCSP (RFC 6960)
  • 상호 TLS (mTLS) 개요

📬 지원

문제, 질문 또는 기여 사항이 있으면 이슈를 열거나 풀 리퀘스트를 제출하십시오.


마지막 업데이트: 2026년 4월
상태: 테스트 및 문서화 완료

도구 다운로드