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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2023-25136-PoC — OpenSSH 9.1p1の認証前ダブルフリー脆弱性(CVE-2023-25136)の最小限のDockerベース再現環境。Python PoCクライアントによるメモリ破損とサービス拒否を示します。 | Kitploit
ツール/GitHubGitHub/lane0218/cve-2023-25136-poc
脆弱性分析エクスプロイトペネトレーションテスト学習と教育バイナリエクスプロイト
GitHublane0218/cve-2023-25136-poc

CVE-2023-25136-PoC

OpenSSH 9.1p1の認証前ダブルフリー脆弱性(CVE-2023-25136)の最小限のDockerベース再現環境。Python PoCクライアントによるメモリ破損とサービス拒否を示します。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2023-25136 脆弱性の再現

このプロジェクトは、OpenSSH 9.1p1 の事前認証 double free メモリ破壊の脆弱性(CVE-2023-25136) を再現し、サーバープロセスのクラッシュ(DoS)を観察するための最小限のローカル実験環境を提供します。

注記:公式および主要な分析では、この脆弱性はデフォルトの安全な構成下では「リモートコード実行への実際の悪用は困難」とされています。本環境は主にメモリエラーとサービス拒否(DoS)の影響をデモンストレーションするためのものです。

環境の説明

  • ターゲット(Target):

    • Docker コンテナ内で動作する OpenSSH 9.1p1 サーバー
    • 特権分離ユーザー sshd を設定済み
    • double free のクラッシュを観察しやすくするため、ビルド時に --with-sandbox=no を使用して seccomp サンドボックスを無効化
    • コンテナ内部でポート 22 をリッスンし、ホストマシン(WSL)上のポート 2222 にマッピング
  • 攻撃機(Attacker):

    • ターゲットと同じホスト / WSL 上に存在
    • Python3 + paramiko で PoC を実行し、特定の SSH クライアント識別子を構築して事前認証ハンドシェイクを開始

ディレクトリ構造:

  • Dockerfile:OpenSSH 9.1p1 の脆弱性環境のイメージを構築
  • poc.py:事前認証段階の double free をトリガーする最小 PoC クライアント

前提条件

本ディレクトリで以下の操作を行う前に、次のことを確認してください:

  • Docker がインストールされていること(WSL2 では Docker Desktop を使用するか、WSL 内に直接 Docker をインストールすることを推奨)
  • Python 3 と pip がインストールされていること

1. ターゲットの構築(Docker 内の OpenSSH 9.1p1)

  1. イメージの構築

本ディレクトリで以下を実行:

root@kitploit:~
docker build -t sshd-9.1p1-vuln .
  1. コンテナの起動
root@kitploit:~
docker run --rm -d --name sshd-vuln -p 2222:22 sshd-9.1p1-vuln

説明:

  • --rm:コンテナ終了時に自動削除
  • --name sshd-vuln:コンテナ名
  • -p 2222:22:コンテナ内のポート 22 をホストのポート 2222 にマッピング
  1. sshd の実行状態の確認
root@kitploit:~
docker ps

以下のような表示が確認できるはずです:

root@kitploit:~
CONTAINER ID   IMAGE              COMMAND               STATUS          PORTS
xxxxxx         sshd-9.1p1-vuln    "/usr/sbin/sshd -D…"  Up ...          0.0.0.0:2222->22/tcp

2. 攻撃機での PoC の使用方法

1. PoC の依存関係のインストール

本ディレクトリで以下を実行:

root@kitploit:~
pip install paramiko

2. PoC スクリプトの説明(poc.py)

poc.py は paramiko.Transport を使用してターゲットの SSH サーバーに能動的に接続し、事前認証段階でクライアント識別子を偽装して double free のトリガーを試みます。

主な特徴:

  • デフォルトターゲット:127.0.0.1:2222(ローカルの Docker コンテナ)
  • デフォルトのクライアント識別子:SSH-2.0-PuTTY_Release_0.64
  • シンプルなコマンドライン引数を提供:
    • -t/--target:ターゲット IP(デフォルト 127.0.0.1)
    • -p/--port:ターゲットポート(デフォルト 2222)
    • -c/--client-id:偽装する SSH クライアント識別子
    • --timeout:タイムアウト時間(秒)
    • -v/--verbose:詳細なエラー情報を出力

3. PoC の実行

コンテナ sshd-vuln が起動していることを確認した上で、本ディレクトリで以下を実行:

root@kitploit:~
python3 poc.py

またはパラメータを明示的に指定:

root@kitploit:~
python3 poc.py -t 127.0.0.1 -p 2222 -v

クライアントの想定される出力例:

root@kitploit:~
==============================================
   CVE-2023-25136 OpenSSH Pre-Auth Double Free
              Minimal PoC Client
==============================================
[2024-xx-xx xx:xx:xx] Target: 127.0.0.1:2222, ClientID: SSH-2.0-PuTTY_Release_0.64
[+] Sending crafted pre-auth handshake...
[-] Authentication failed or connection closed early.
    请在服务端 sshd 日志中查看是否出现 'free(): double free detected' 等信息,以确认是否触发 CVE-2023-25136。

説明:

  • クライアント側で Authentication failed や connection closed が表示されるのは想定された動作です。サーバー側の事前認証サブプロセスが処理中にクラッシュするか、能動的に接続を閉じる可能性があるためです。

3. 期待される結果と検証方法

1. サーバー側(コンテナ)のログ

PoC 実行後、ホストマシンでコンテナのログを確認:

root@kitploit:~
docker logs sshd-vuln

以下のような出力が確認できるはずです:

root@kitploit:~
Server listening on 0.0.0.0 port 22.
Server listening on :: port 22.
Invalid user  from 172.17.0.1 port xxxxx
free(): double free detected in tcache 2

項目の説明:

  • Invalid user:PoC が空のユーザー名を使用するため、OpenSSH が不正なユーザー試行を記録
  • free(): double free detected in tcache 2:glibc が double free を検出して現在の sshd 子プロセスを終了します。これが本実験で観察するメモリ破壊/DoS の現象です

注意:この行を確認できるようにするため、OpenSSH のビルド時に seccomp サンドボックス(--with-sandbox=no)を無効化しています。無効化しない場合、サンドボックスが double free の前に異常な動作を検知して子プロセスを直接終了する可能性があります。

2. 効果の性質

  • 本実験環境では、PoC が 事前認証サブプロセスのクラッシュ(DoS) を安定的にトリガーし、現在の SSH 接続を失敗させます。メインの sshd プロセスは引き続き後続の接続のために新しい子プロセスをフォークします。
  • 事前認証サブプロセスは低権限 + chroot 環境で実行され、デフォルトで複数のセキュリティメカニズムが存在するため、この double free のみに依存してリモートコード実行を実現することは極めて困難であると研究者の間で広く考えられています。
ツールをダウンロード