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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Log4JShell-Bytecode-Detector — ローカルバイトコードスキャナ for the Log4JShell Vulnerability (CVE-2021-44228) | Kitploit
ツール/GitHubGitHub/codeshield-security/log4jshell-bytecode-detector
静的分析脆弱性スキャナーコード分析バイナリ解析サプライチェーンセキュリティインシデントレスポンス
GitHubcodeshield-security/log4jshell-bytecode-detector

Log4JShell-Bytecode-Detector

ローカルバイトコードスキャナ for the Log4JShell Vulnerability (CVE-2021-44228)

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
リポジトリを見るウェブサイト
4994年前Kitploit レビュー済み

🔍 Log4JShell Bytecode Detector

Log4jShell Bytecode Detector は、jar ファイルが重大な CVE-2021-44228 の影響を受けているかどうかを特定するのに役立つオープンソースツールです。このツールは jar ファイルをスキャンし、jar ファイル内のクラスを、脆弱性のあるクラスのハッシュセットと比較します。ハッシュは Maven Central 上のアーティファクト用に事前計算されています。

重要なお知らせ: Maven Central 上の影響を受けるアーティファクトのリストを拡張しました。このリストには 18.816 個のアーティファクトが含まれます。これらのアーティファクトは、宣言された依存関係として log4j-core を使用しているか、影響を受けるバージョンの log4j-core に一致する .class ファイルがアーティファクト内に存在することを確認済みです。

📝 実行方法

  1. リリースからjar ファイルをダウンロードします。
  2. java -cp <PATH_TO_DOWNLOADED_JAR> de.codeshield.log4jshell.Log4JDetector <ABSOLUTE_PATH_TO_JAR_TO_CHECK> を実行します。

jar が影響を受けている場合、ツールはコマンドラインに情報を出力します:

root@kitploit:~
CVE-2021-44228 found declared as dependency in META-INF/maven/org.apache.logging.log4j/log4j-core/pom.xml
CVE-2021-44228 found in class file org/apache/logging/log4j/core/net/JndiManager$1.class

📝 稼働中のサーバーで実行する方法 (実行中の Java インスタンスを停止する必要はありません)

  1. リリースからjar ファイルをダウンロードします。
  2. java -cp <PATH_TO_DOWNLOADED_JAR> de.codeshield.log4jshell.Log4JProcessDetector を実行します。
  3. この jar は、実行中のすべての Java プロセスのクラスパスをスキャンし、脆弱性のある log4j インスタンスを探します。

❓ CVE-2021-44228 の背景

log4j に深刻なリモートコード実行の脆弱性が発見され、バージョン 2.0-beta9 から 2.14 が影響を受けます。この脆弱性は、Java で最も使用されているロギングライブラリのひとつである log4j に影響を与えたため、クリティカルと分類されています。参考資料や記事は数多く存在します。

  • Hackernews
  • BSI (ドイツ語のみ)
  • 脆弱性を悪用するための Proof of Concept
  • Log4JShell チートシート

👀 なぜ重要か?

log4j は、ほとんどすべての Java プロジェクトでロギング目的に使用されてきました。現在、どのプロジェクトやライブラリが実際に影響を受けるのかを理解する必要があります。Java の依存関係メカニズムにより、アプリケーションは脆弱性のあるライブラリバージョンを transitively (推移的) に含む場合にも影響を受ける可能性があります。プロジェクト A の直接依存関係 B のいずれかが lib への依存関係を持つ場合、プロジェクト A はライブラリ lib を transitively に含むことになります。影響を受けているかどうかを確認する簡単なテストは、maven 依存関係ツリーを使用して行えます。

例: Maven プロジェクトで mvn dependency:tree コマンドを実行します。

root@kitploit:~
[INFO] exampleProject:mainProject:jar:0.0.1-SNAPSHOT
[INFO] +- exampleProject:lib-using-log4j:jar:0.0.1-SNAPSHOT:compile
[INFO] |  \- org.apache.logging.log4j:log4j-core:jar:2.14.1:compile

ただし、この確認は最初の兆候にすぎず、以下の理由により十分ではありません:

Java プログラムは頻繁に:

  • fatjar または uberjar としてパッケージ化される: すべてのクラスファイル (直接依存関係と推移的依存関係を含む) が単一の jar ファイルに格納されます。(このソフトウェアアーティファクトでも行っているように)
  • 再パッケージ化または再バンドルされる: 名前の競合を避けるために元のパッケージ名が変更されます (一部のコンパイラやパッケージメカニズムはコード変換を適用します)
  • 再コンパイルされる: ソースコードが異なるコンパイラでコンパイルされ、新しいものとしてパッケージ化されるため、バイトコードが変更されます

その結果、Java プロジェクトが使用している あらゆる ライブラリが、プロジェクトに脆弱性を含める可能性があります。詳細なバイトコード分析が役立ちます。これは、このリポジトリの一部として公開しているものです。

📕 スクリプト

  1. .jar から pom.xml ファイルを抽出する
  2. 宣言された依存関係を、Maven Central でホストされているアーティファクトの影響を受ける groupId:artifactId:version リストの事前計算済みリストと照合する
  3. .jar から .class ファイルを抽出する
  4. クラスファイルの SHA ハッシュを計算する
  5. SHA を事前計算済みリストと照合する

🛠 ビルド手順

このツールをビルドするには、次を実行します

mvn compile

実行可能な jar を組み立てるには、次を使用します

mvn clean compile assembly:single

💡 脆弱性のあるクラスの事前計算済みハッシュ

脆弱性のあるクラスのハッシュセットは、Maven Central リポジトリ全体に対して事前計算されています。クラスのハッシュには、Fingerprinting 技術を使用してバイトコードが類似していると特定されたすべてのハッシュが含まれます。

事前計算された情報には以下が含まれます:

  • 脆弱性のあるバージョンのいずれかで log4j を直接含むすべてのアーティファクト
  • 影響を受けるバージョン範囲内の log4j の脆弱性のあるハッシュを含むクラスを同梱するすべてのアーティファクト
  • log4j の脆弱性のあるクラスを再バンドルするすべてのアーティファクト
  • 影響を受けるバージョン範囲内の log4j のクラスを再コンパイルしたクラスを持つすべてのアーティファクト

影響を受けるバージョン範囲として、[2.0-beta9, 2.15) を対象としました。参考

💻 フィンガープリンティング技術

このツールは、Andreas Dann によって発明された Java 向けの新しいバイトコードフィンガープリンティング技術を使用しています。基本的な流れは次のとおりです。

  1. 利用可能な修正コミット Commit1、Commit2、Commit3 を使用して、どのクラスが影響を受けるかを特定します。
  2. 脆弱性のあるクラスのバイトコード "フィンガープリント" を計算します。
  3. MavenCentral 上で同じ "フィンガープリント" を持つ他のクラスを検索します。

注: 展開をより簡単にするために、このリポジトリには脆弱性のあるクラスの SHA ハッシュが同梱されています。この情報は Fingerprinting を使用して計算されています

📌 免責事項

ハッシュと Maven アーティファクトのリストは完全ではありません。定期的にリストを更新します。

📯 貢献者

このツールは CodeShield の共同創業者によって共同制作されました

  • Andreas Dann [email protected]
  • Johannes Spaeth [email protected]
  • Manuel Benz [email protected]

フィードバックをお待ちしています!

影響を受けるアーティファクトのリストの拡張に取り組んでおり、常に提供内容の改善を目指しています。contribution welcome

また、このスキャナが役に立った場合は、このリポジトリに ⭐️ をお願いします!

✍️ 連絡先

サポートが必要な場合、または私たちの技術について知りたい場合は、[email protected] までご連絡ください。

CodeShield チーム 💚

ツールをダウンロード