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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
log4j-finder — ディスク上およびJavaアーカイブ(JAR)ファイル内にある脆弱なLog4j2バージョンを検出します(Log4Shell CVE-2021-44228、CVE-2021-45046、CVE-2021-45105) | Kitploit
ツール/GitHubGitHub/fox-it/log4j-finder
静的分析脆弱性スキャナー脆弱性分析コード分析サプライチェーンセキュリティインシデントレスポンス
GitHubfox-it/log4j-finder

log4j-finder

ディスク上およびJavaアーカイブ(JAR)ファイル内にある脆弱なLog4j2バージョンを検出します(Log4Shell CVE-2021-44228、CVE-2021-45046、CVE-2021-45105)

リポジトリを見る
439963年前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

log4j-finder

Log4Shell(CVE-2021-44228、CVE-2021-45046、CVE-2021-45105)に対して脆弱なLog4j2を検出するためにファイルシステムをスキャンするPython3スクリプトです。ディスク上と(ネストされた)Java Archiveファイル(JAR)内の両方を再帰的にスキャンします。

log4j-finderの結果

仕組み

log4j-finderは、log4j2-core-* パッケージ(log4shell の影響を受ける主要パッケージ)に含まれる特定ファイル(現在は JndiManager.class のみ)の 既知の悪性 と 既知の良性 MD5ハッシュのリストを使用して、ファイルシステム上の log4j2 ライブラリを特定します。これらのファイルをJava Archiveファイル内とファイルシステム上で検索します。そして、このファイルのMD5ハッシュに基づいて log4j2 のバージョンを特定します。

スキャン速度を最適化するため、ファイルシステムを検索し、次のファイル名のみを処理します:

  • ファイル名に Java ARchive ファイル拡張子を持つすべてのファイル(これらのアーカイブ内にネストされているものも含む):
    • *.jar, *.war, *.ear
  • 既知の悪性 と 良性 のハッシュを持つファイル名(上記のアーカイブ内およびネストされた場所も含む):
    • JndiManager.class

ファイルが上記の拡張子のいずれかに一致する場合、スクリプトが 既知の ハッシュを持つファイル名を検索するために、これらのアーカイブ内部を(すべてメモリ上で、展開は一切行わずに)チェックします。また、ネストされたアーカイブの内部も調べます。例えば、WAR ファイル内の JAR ファイルなどです。

このスクリプトは、7z、RAR、TAR、BZ2 などの他のアーカイブファイル拡張子はスキャンしません。したがって、例えば 7z ファイル内に JAR ファイルがある場合、スクリプトはそれを見つけられません。その理由は、Javaが Java ARchive 形式のみをロードできるため、それらだけをスキャンするからです。

未知のMD5ハッシュは UNKNOWN と表示されます。これは、log4j2 以外のJavaパッケージが、このスクリプトが検索するファイル名と同じ名前を使用している場合に発生する可能性があります。特定されたファイルパスに org/apache/logging/log4j への参照が含まれていない場合、それはおそらく log4j2 ではありません。ただし、手動による確認を推奨します。

ダウンロードと実行

以下のいずれかの方法で log4j-finder をインストールできます:

リリースバイナリを使用する

お使いのオペレーティングシステムに合ったバイナリをダウンロードできます:

  • Windows 最新版(署名済み): log4j-finder-signed.exe
    • 署名なしバイナリも利用できますが、PyInstaller 実行可能ファイルであるため、ウイルス対策ソフトに検知される可能性があります。自分で実行可能ファイルを生成することもできます。方法については「log4j-finder 実行可能ファイルの生成」を参照してください。
  • Linux x86_64 最新版: log4j-finder

Linuxの場合、最新リリースをダウンロードして、次のいずれかの方法で実行することもできます:

root@kitploit:~
curl -L https://github.com/fox-it/log4j-finder/releases/latest/download/log4j-finder -o log4j-finder
chmod +x log4j-finder
sudo ./log4j-finder
root@kitploit:~
wget https://github.com/fox-it/log4j-finder/releases/latest/download/log4j-finder -O log4j-finder
chmod +x log4j-finder
sudo ./log4j-finder

Python 3を使用する

Python 3.6+ がインストールされた環境では、次のいずれかの方法も使用できます:

root@kitploit:~
curl -L https://github.com/fox-it/log4j-finder/raw/main/log4j-finder.py -o log4j-finder.py
sudo python3 log4j-finder.py
root@kitploit:~
wget https://github.com/fox-it/log4j-finder/raw/main/log4j-finder.py
sudo python3 log4j-finder.py
root@kitploit:~
git clone https://github.com/fox-it/log4j-finder
cd log4j-finder
sudo python3 log4j-finder.py

log4j-finder 実行可能ファイルの生成

自動生成された実行可能ファイル

このリポジトリには、コミットのたびに PyInstaller を使用して log4j-finder.py スクリプトのWindowsおよびLinuxバイナリを自動生成する GitHub Action があります。これらのワークフロー実行のビルド成果物は、Releases ページに添付するために使用されます。

一部のウイルス対策ベンダーがWindowsバイナリを好まないことは認識しています。その場合は、以下の手順で実行可能ファイルを自分で生成することをお勧めします(現在は署名済みバイナリも提供していることに注意してください)。

Windows実行可能ファイルの生成

  1. Python 3.6 以降がインストールされていない場合は、まず https://www.python.org/downloads/ からダウンロードしてください。

    • Windows 7でバイナリを動作させたい場合は、Python 3.8.10 を選択してください:
      • Python 3.8.10 Windows インストーラ(32ビット) をダウンロード
      • Python 3.8.10 Windows インストーラ(64ビット) をダウンロード
    • インストール時に Add Python 3.x to PATH を選択してください。これにより、以下の手順がはるかに簡単になります。
  2. コマンドプロンプトを開き、pip を使用して pyinstaller パッケージをインストールします:

    root@kitploit:~
    pip install pyinstaller
    
    # In the output you will see where pyinstaller is installed, for example:
    # C:\Users\User\AppData\Roaming\Python\Python310\Scripts
    #
    # Verify using --version
    C:\Users\User\AppData\Roaming\Python\Python310\Scripts\pyinstaller.exe --version
    4.7
    
  3. 必要に応じて、色のサポートを追加するために colorama パッケージをインストールします:

    root@kitploit:~
    pip install colorama
    
  4. 最新版の log4j-finder.py スクリプトをダウンロードし、PyInstallerを実行します:

Windows実行可能ファイルは、dist ディレクトリに生成されます:dist\log4j-finder.exe

Linux実行可能ファイルの生成

Debian 11 での例:

root@kitploit:~
# Install PyInstaller using pip3
sudo apt update
sudo apt install python3-pip git
pip3 install --user pyinstaller

# Git clone and build using PyInstaller
git clone https://github.com/fox-it/log4j-finder
cd log4j-finder
~/.local/bin/pyinstaller --onefile log4j-finder.spec

# Verify that the binary works
./dist/log4j-finder --help

使い方

パスをスキャンする使用例(デフォルトは /):

root@kitploit:~
$ python3 log4j-finder.py /path/to/scan

またはJARファイルを直接指定:

root@kitploit:~
$ python3 log4j-finder.py /path/to/jarfile.jar

または複数のディレクトリやファイル:

root@kitploit:~
$ python3 log4j-finder.py /path/to/dir1 /path/to/dir2 /path/to/jarfile.jar

ファイルまたはディレクトリを除外:

root@kitploit:~
$ python3 log4j-finder.py / --exclude "/*/.dontgohere" --exclude "/home/user/*.war"

Windowsでは、追加の引数を指定しない場合、ルートの c:\ ドライブのみがスキャンされることに注意してください。コマンドラインでスキャンするドライブを指定することをお勧めします(存在しないドライブはスキップされます):

root@kitploit:~
log4j-finder.exe c:\ d:\ e:\ f:\

アクセスできない(権限拒否エラーが発生する)ファイルやディレクトリは表示されません。

より多くの出力を表示したい場合は、詳細を示す -v フラグ、またはデバッグモードの -vv を指定できます(デバッグ目的のみ推奨)。

アプリケーションの引数:

root@kitploit:~
positional arguments:
  PATH                  Directory or file(s) to scan (recursively) (default:
                        ['/'])

optional arguments:
  -h, --help            show this help message and exit
  -v, --verbose         verbose output (-v is info, -vv is debug) (default: 0)
  -n, --no-color        disable color output (default: False)
  -q, --quiet           be more quiet, disables banner and summary (default:
                        False)
  -b, --no-banner       disable banner (default: False)
  -V, --version         show program's version number and exit
  -e PATTERN, --exclude PATTERN
                        exclude files/directories by pattern (can be used
                        multiple times) (default: None)

ファイルは、ディスク上と(ネストされた)Java Archiveファイル内の両方が再帰的にスキャンされます。

ツールをダウンロード
root@kitploit:~
pyinstaller --onefile --hidden-import colorama log4j-finder.py