Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/damnkrishna/cve-2025-32433-lab
パケットスニッフィングと分析脆弱性スキャナーコンテナセキュリティ脆弱性分析エクスプロイトネットワークセキュリティ侵入検知学習と教育ラボと実践
GitHubdamnkrishna/cve-2025-32433-lab

CVE-2025-32433-LAB

Erlang/OTP SSHサーバーにおけるSSHプロトコルのメッセージ処理の欠陥により、悪意のある攻撃者が有効な認証情報なしで影響を受けるシステムへ不正アクセスし、任意のコマンドを実行する可能性があります

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2025-32433 脆弱性リサーチ&セキュリティラボ

✅ 認証前RCEを確認 — エクスプロイトの実証に成功しました。
📄 技術ブログ (PDF): CVE-2025-32433-Technical-Blog.pdf
📸 視覚的証拠: screenshots/
🔍 概念実証の詳細: docs/PROOF_OF_CONCEPT.md

CVE-2025-32433は、Erlang/OTP SSHデーモンにおけるCVSS 10.0 クリティカルな脆弱性です。 未認証の攻撃者がSSHチャネルを開き、認証を完了する前に任意のコマンドを実行できます — 認証情報は一切不要です。

このラボでは、脆弱性を再現し、エクスプロイトを実行し、検証し、検出メカニズムをテストするための、完全に動作する隔離された環境を提供します — すべてローカルマシン上で行えます。


前提条件

開始する前に、以下がインストールされていることを確認してください:

ツール最小バージョン確認コマンド
Docker Desktop4.x+docker --version
Docker Composev2.20+docker compose version
Python3.10+python --version

また、検出スイートにはPythonのparamikoライブラリも必要です:

pip install paramiko

重要な注意点 — なぜソースからビルドするのか

Docker Hub の erlang:26.2.5 イメージタグは、CVE-2025-32433 の公開後、パッチ適用済みの 26.2.5.11 リリースでサイレントに上書きされました。 Docker Hub から取得すると パッチ適用済みバージョンが手に入り、脆弱なバージョンは得られません。

このラボの lab/Dockerfile は、正規の脆弱なランタイムを保証するため、公式の Erlang GitHub リリース tarball から OTP 26.2.5 を直接コンパイルします。初回ビルドには約 10 分かかります。


ラボのアーキテクチャ

                  ┌──────────────────────────────────────────┐
                  │         Isolated Docker Bridge           │
                  │            (cve-lab-bridge)              │
                  └────┬────────────────────────────┬────────┘
                       │                            │
       ┌───────────────┴─────────────┐┌─────────────┴──────────────┐
       │  target_vulnerable          ││  target_patched             │
       │  OTP 26.2.5 (source-built)  ││  erlang:26.2.5.11           │
       │  Host Port: 127.0.0.1:2222  ││  Host Port: 127.0.0.1:2223  │
       └─────────────────────────────┘└─────────────────────────────┘
                                       │
                        ┌──────────────┴──────────────┐
                        │  attacker                   │
                        │  Python 3 + Scapy/Paramiko  │
                        │  Workdir: /work             │
                        └─────────────────────────────┘
コンテナポートOTPバージョンステータス
cve-2025-32433-vulnerable127.0.0.1:222226.2.5 (ERTS 14.2.5)❌ 脆弱
cve-2025-32433-patched127.0.0.1:222326.2.5.11 (ERTS 14.2.5.15)✅ 修正済み
cve-2025-32433-attacker内部のみPython 3 ツール群攻撃者ツールセット

ステップ 1 — リポジトリのクローン

git clone https://github.com/damnkrishna/CVE-2025-32433-LAB.git
cd CVE-2025-32433-LAB

ステップ 2 — 脆弱なコンテナをビルドする

⏱️ 所要時間は約10分です — C ソースから Erlang/OTP 26.2.5 をコンパイルします。 これは想定どおりの動作です。中断しないでください。

docker compose build --no-cache target_vulnerable

make[1]: Leaving directory '/tmp/otp_src_26.2.5/lib/...' のようなコンパイラ出力が表示されます — これは正常です。出力は次のように終わります:

✔ Image ine_cyber_assignment_job-target_vulnerable Built

ステップ3 — パッチ適用済みコンテナのビルド

docker compose build --no-cache target_patched

ステップ4 — ラボを起動する

docker compose up -d target_vulnerable target_patched

ステップ5 — すべてが実行中であることを確認する

docker compose ps

I'm ready to translate chunk 17 of 69. Please provide the source content you'd like me to translate.

NAME                        STATUS              PORTS
cve-2025-32433-vulnerable   Up (healthy)        127.0.0.1:2222->2222/tcp
cve-2025-32433-patched      Up (healthy)        127.0.0.1:2223->2222/tcp

両方のコンテナが (healthy) と表示されてから続行してください。


ステップ6 — 脆弱なバージョンの確認

コンテナが実際に OTP 26.2.5(修正済みバージョンではない)で動作していることを確認します:

docker exec cve-2025-32433-vulnerable cat /usr/local/otp/lib/erlang/releases/RELEASES

期待される出力 — .15 サフィックスなしで 14.2.5 を表示する必要があります:

[{release,"Erlang/OTP","26","14.2.5",
          [{kernel,"9.2.4",...},

14.2.5.15 が表示される場合 — コンテナイメージが間違っています。--no-cache を付けて再ビルドしてください。


ステップ 7 — 通常の認証済み SSH ログイン(ベースライン)

サーバーが標準的な認証を受け入れることを確認するため、正規のユーザーとして接続します:

ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p 2222 [email protected]

パスワードの入力を求められたら、次を入力します: LabPass2026!Secured

Erlang シェルが起動します:

Eshell V14.2.5 (press Ctrl+G to abort, type help(). for help)
1>

Erlang シェル内でいくつかのコマンドを試してみてください:

ls().
file:write_file("test.txt", "hello").
file:read_file("test.txt").

Erlang シェルを終了するには:

q().

ステップ 8 — ログをライブ監視する(別のターミナルで実行)

エクスプロイトを実行する前に、2つ目の PowerShell ターミナルを開いてサーバーログを tail します:

Get-Content -Path .\logs\target_vulnerable\ssh.log -Wait -Tail 20

このターミナルは開いたままにしてください。接続イベントがリアルタイムで表示されます。


ステップ9 — CVE-2025-32433 エクスプロイトを実行する

これは認証前リモートコード実行の概念実証です。 認証情報は使用されません。

cd attacker_work\exploit
python payload.py

I'm ready to translate chunk 17 of 69. Please provide the source content you'd like me to translate.

[*] Connecting to SSH server...
[+] Received banner: SSH-2.0-Erlang/5.1.4
[*] Sending SSH_MSG_KEXINIT...
[*] Sending SSH_MSG_CHANNEL_OPEN...
[*] Sending SSH_MSG_CHANNEL_REQUEST (pre-auth)...
[✓] Exploit sent! If the server is vulnerable, it should have written to /lab.txt.
[+] Received response: 000003d4...

バナーには SSH-2.0-Erlang/5.1.4(.15 サフィックスなし)が表示され、脆弱なサーバーに到達したことを確認する必要があります。


ステップ 10 — エクスプロイトが成功したことを確認する

docker exec cve-2025-32433-vulnerable cat /lab.txt

I'm ready to translate chunk 17 of 69. Please provide the source content you'd like me to translate.

pwned

pwned が表示された場合 — CVE-2025-32433 の認証前 RCE が確認されたことになります。 このエクスプロイトは、認証情報を一切使わずにコンテナのファイルシステムへ書き込みを行いました。


ステップ 11 — パッチ適用済みコンテナが脆弱でないことを確認する

ポート 2223 のパッチ適用済みコンテナに対して、同じエクスプロイトを実行します:

attacker_work\exploit\payload.py の 6 行目を編集します:

PORT = 2223   # change from 2222 to 2223

エクスプロイトを実行します:

python payload.py

次に、ファイルを確認します:

docker exec cve-2025-32433-patched cat /lab.txt

I'm ready to translate chunk 17 of 69. Please provide the source content you'd like me to translate.

cat: /lab.txt: No such file or directory

パッチ適用済みのコンテナは、認証されていないチャネルリクエストを拒否します。ファイルが書き込まれない = パッチ適用済み。

完了したら、payload.py のポートを 2222 に戻してください。


ステップ 12 — 検出スイートを実行する

リポジトリのルートに戻ります:

cd ..\..

オプション A: バージョンバナースキャナー(SSHバナーでターゲットが脆弱かどうかを確認)

脆弱なターゲットをスキャンします:

python detection\detect_cve_2025_32433.py 127.0.0.1 2222

パッチ適用済みのターゲットをスキャンします:

python detection\detect_cve_2025_32433.py 127.0.0.1 2223

オプション B: ホストプロセスとファイル整合性モニター

Erlang によって生成された予期しない子プロセス(例: RCE を示すシェルプロセス)について、コンテナのプロセステーブルを監視します:

python detection\host_process_monitor.py

実行したままにして、別のターミナルでエクスプロイトを実行します — 異常が検出されます。 停止するには Ctrl+C を押します。

オプション C: マスター4層統合診断スイート

すべての検出層を1つのコマンドで実行します:

python detection\run_all_detections.py

これにより、以下を網羅する完全な診断テーブルが生成されます:

  • レイヤー1: ベースライン認証済みセッションテスト
  • レイヤー2: バージョンバナーの脆弱性スキャン
  • レイヤー3: ネットワークIDSルールのサマリー(Scapy)
  • レイヤー4: ホストプロセスの整合性チェック

ステップ13 — SSHログを表示する

Erlang SSHデーモンは構造化ログをディスクに書き込み、それがホストにマウントされます:

コンテナログファイル
脆弱版./logs/target_vulnerable/ssh.log
パッチ適用版./logs/target_patched/ssh.log

リアルタイムでの追跡:

Get-Content -Path .\logs\target_vulnerable\ssh.log -Wait -Tail 20

エクスプロイト後に注目すべき主要なログ行:

debug: Connection terminated. Unexpected message for unauthenticated user.
       Message: [{ssh_msg_channel_open,...}]
notice: Accept failed on any:2222 for connect from 172.20.0.X:PORT: normal

脆弱なバージョンでは、チャネルリクエストはこのログエントリが書き込まれる前に実行されます。


ステップ14 — ラボの停止

docker compose down
ツールをダウンロード