Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/sancliffe/cve-2026-29145-tester
脆弱性分析エクスプロイトウェブセキュリティペネトレーションテスト認証学習と教育
GitHubsancliffe/cve-2026-29145-tester

CVE-2026-29145-Tester

このリポジトリには、CVE-2026-29145をテストするために設計された概念実証(PoC)環境が含まれています。

リポジトリを見る
4ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

CVE-2026-29145 テスト環境

📌 概要

このリポジトリには、CVE-2026-29145 をテストするために設計された概念実証(PoC)環境が含まれています。

この脆弱性は、Apache Tomcat の相互TLS(CLIENT_CERT)実装における認証バイパスです。OCSP(オンライン証明書状態プロトコル)がソフトフェイル無効で構成されている場合、Tomcat は OCSP チェックの失敗をハード拒否として扱わない可能性があります。これにより、OCSP レスポンダが到達不能またはエラーを返す場合、失効済みまたは未検証の証明書を持つクライアントが認証をバイパスできる可能性があります。

🛡️ 脆弱性の詳細

プロパティ値
CVE IDCVE-2026-29145
CVSS スコア9.1(Critical)- 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)の概要

📬 サポート

問題、質問、または貢献については、issue を開くか、プルリクエストを送信してください。


最終更新: 2026年4月
ステータス: テストとドキュメント完了

ツールをダウンロード