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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2021-44228-playground — JavaアプリのCVE-2021-44228(Log4Shell)を検証し、緩和策をテストし、LDAPおよびHTTPペイロードを介したRCEをシミュレートするDockerベースのラボ。 | Kitploit
ツール/GitHubGitHub/b-abderrahmane/cve-2021-44228-playground
脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテスト学習と教育ラボと実践
GitHubb-abderrahmane/cve-2021-44228-playground

CVE-2021-44228-playground

JavaアプリのCVE-2021-44228(Log4Shell)を検証し、緩和策をテストし、LDAPおよびHTTPペイロードを介したRCEをシミュレートするDockerベースのラボ。

リポジトリを見る
2237日前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

LOG4SHELL-CVE-2021-44228-Validator

Basic test

Extended test

概要

このツールを使用すると、ユーザーが指定したJavaおよびLog4Jのバージョンについて、単純なJava WebアプリケーションがCVE-2021-44228に対して脆弱であるかどうかを検証できます。 また、[オプションで]事前定義されたいくつかの緩和策のいずれかを適用することもできます。 log4shell_validator.pyによって起動されるシミュレーションラボは、docker-composeを使用してlog4jの脆弱性を悪用し、脆弱なマシン上でRCEを獲得することをシミュレートします。

動作の仕組み

まず、いくつかのdockerイメージをビルドする必要があります。./build_images.shスクリプトがその処理を担当します。

攻撃シミュレーションは次のように行われます:

  • まず、単純なJava Webアプリケーションがポート8080のコンテナ上で起動されます。このアプリケーションが/2021-44228-via-messageへのGET呼び出しを受信すると、常にUser-Agentヘッダーフィールドをログに記録します。このアプリケーションのコードはの下で入手できます。
./poc_template
  • 偽のLDAPサーバーが、marshalsecを使用してポート1389の別のコンテナ上で起動されます。(このコンテナは受信したLDAPリクエストをNginxサーバーに転送します)
  • Nginx Webサーバーがポート8888で起動されます。このコンテナは、脆弱なアプリ上で実行したいコンパイル済みの.classファイルをホストします。
  • 単純なcurlコンテナが起動され、このコンテナが./exploit.shスクリプトを実行して、脆弱なアプリにペイロードを送信します。
  • 手順

    • python、docker、docker-compose、mavenがローカルで利用可能であることを確認してください。
    • 次のコマンドを実行してmarshalsec jarファイルをビルドします:cd marshalsec/ ;mvn clean package -DskipTests ;cd -
    • ./build-images.shを実行します
    • python log4shell_validator.py --java-version 8 --log4j-version 2.12.1を実行します

    使用例

    • Pythonラッパーのヘルプテキスト:
    root@kitploit:~
    ~/workspace/CVE-2021-44228-playground$ python log4shell_validator.py --help
    usage: log4shell_validator.py [-h] [--java-version JAVA_VERSION] --log4j-version LOG4J_VERSION [--no-cleanup] [--disable-trust-url] [--remove-jndi-lookup-class] [--disable-message-lookup] [--debug]
                                  [--exploit-via-thread-context]
    
    log4j-vulnerability-tester
    
    optional arguments:
      -h, --help            show this help message and exit
      --java-version JAVA_VERSION
                            version of java to be used
      --log4j-version LOG4J_VERSION
                            version of log4j to be used
      --no-cleanup          Don't delete used containers.
      --disable-trust-url   Disable the LDAP trustURLCodebase setting on the victim app
      --remove-jndi-lookup-class
                            Remove the JNDI Lookup class from the log4j jar file
      --disable-message-lookup
                            Disable the JNDI message lookup in the victim app's JVM
      --debug               Display all container's logs
      --exploit-via-thread-context
                            By sending the payload to an HTTP handler which makes use of Custom logging with ThreadContext, attempt to bypass the no-message-lookup mitigation
    

    利用可能な機能:

    このバリデータは、Java7/8のいくつかの組み合わせと異なるバージョンのLog4J2でテストされています。その他の例については、github actionsタブの拡張テストパイプラインを参照してください。

    現時点では、以下の緩和策が実装されています:

    • プロパティ1com.sun.jndi.ldap.object.trustURLCodebase`をFalseに設定して、LDAPのtrustURLCodebaseを無効にします。
    • log4jのjarファイルからJNDILookup.classファイルを削除します。
    • JVMに次のフラグを指定してメッセージルックアップを無効にします:-Dlog4j2.formatMsgNoLookups=True

    さらに、メッセージルックアップの無効化をバイパスできる悪用ベクターをテストするための新しいフラグが追加されました:--exploit-via-thread-context

    免責事項

    このソフトウェアは、研究および効果的な緩和技術の開発のみを目的として作成されており、明示的に許可された場合を除き、システムへの攻撃に使用することを意図したものではありません。プロジェクトのメンテナーは、ソフトウェアの誤用について責任を負いません。責任を持って使用してください。

    ツールをダウンロード