
████████████████▀███████████████████████████████████████████████████████████████████ █▄─▄███─▄▄─█─▄▄▄▄█░█░████▄─▄█▀▀▀▀▀██▄─▄▄─█▄─▄█▄─▄███▄─▄▄─█─▄▄▄▄█─▄▄▄─██▀▄─██▄─▀█▄─▄█ ██─██▀█─██─█─██▄─█▄▄░██─▄█─██████████─▄████─███─██▀██─▄█▀█▄▄▄▄─█─███▀██─▀─███─█▄▀─██ ▀▄▄▄▄▄▀▄▄▄▄▀▄▄▄▄▄▀▀▄▄▄▀▄▄▄▀▀▀▀▀▀▀▀▀▀▄▄▄▀▀▀▄▄▄▀▄▄▄▄▄▀▄▄▄▄▄▀▄▄▄▄▄▀▄▄▄▄▄▀▄▄▀▄▄▀▄▄▄▀▀▄▄▀ by Renato Andalik (@andalik)
シンプルで要点を突いた... 練習もスキルも一切不要!
Log4j-FileScan は、CVE-2021-44228、CVE-2021-45046、CVE-2021-45105、CVE-2021-44832 に記載されている脆弱なバージョンの Log4j2 フレームワークを探すために、ファイルシステム全体を徹底的にスキャンする Python 3 製スクリプトです。
スキャンは、ディスク上と Java Archive(JAR)ファイル内の両方で再帰的に実行されます。

スキャン速度を最適化するため、検索は問題に関連するファイルに対してのみ行われます:
Java ARchive のすべてのファイル(zip で圧縮されたファイルも含む):
*.jar、*.war、*.ear、*.zip上記のいずれかの拡張子を持つファイルが見つかった場合、内部ファイルのスキャンが実行されます(すべてメモリ上で処理)。
スクリプトは、次の2つの異なる方法でダウンロードして使用できます:
さらに使いやすくするため、すべてをコンパイルして実行可能なバイナリを用意しました。
お使いのオペレーティングシステム用のバージョンをダウンロードし、コマンドプロンプトを開いて実行するだけです:
Windows: log4j-filescan.exe
重要:PyInstaller によるパッケージング方式(すべてを単一の実行ファイルにまとめる)のため、一部のアンチウイルスが誤検知アラートを生成する可能性があります。その場合は、実行ファイルをアンチウイルスの除外リストに追加してください。
Linux: log4j-filescan
Linux では、コンソールから wget を使用してバイナリを取得することもできます:
wget https://github.com/andalik/log4j-filescan/releases/download/v1.1.1/log4j-filescan -O log4j-filescan
chmod +x log4j-filescan
sudo ./log4j-filescan
Python 3.6+ がインストールされた Linux ディストリビューションでは、以下のいずれかの方法を使用してください:
wget https://github.com/andalik/log4j-filescan/raw/main/log4j-filescan.py
export LC_ALL=$(locale -a | grep UTF-8)
sudo python3 log4j-filescan.py
https://www.python.org/downloads/ から Python 3.6 以降をダウンロードします。
Add Python 3.x to PATH オプションを選択してください。コマンドプロンプトを開き、pip を実行して pyinstaller をインストールします:
pip install pyinstaller
pip install colorama
最新バージョンのスクリプト log4j-filescan.py をダウンロードし、PyInstaller を実行します:
pyinstaller --onefile --hidden-import colorama log4j-filescan.py
Windows 実行ファイルは dist ディレクトリに作成されます:dist\log4j-filescan.exe
Debian 11 の例:
sudo apt update
sudo apt install python3-pip git
pip3 install --user pyinstaller
git clone https://github.com/andalik/log4j-filescan
cd log4j-filescan
~/.local/bin/pyinstaller --onefile log4j-filescan.spec
./dist/log4j-finder --help
$ python3 log4j-filescan.py
ou
$ python3 log4j-filescan.py /caminho/desejado (no Linux)
$ python3 log4j-filescan.py d:\ (no Windows)
$ python3 log4j-filescan.py /caminho/arquivo.jar
$ python3 log4j-filescan.py /caminho/dir1 /caminho/dir2 /caminho/arquivo.jar
$ python3 log4j-filescan.py / --exclude "/caminho/*.war"
$ python3 log4j-filescan.py -v /caminho/desejado
$ python3 log4j-filescan.py -vv /caminho/desejado
c:\ のみで実行されます。Powershell を開き(できれば“管理者として実行”(Run as Administrator))、次のように入力します:
python3 log4j-filescan.py c:\ d:\ e:\
このツールは、C:\ のスキャンを実行し、次に D:\、最後に E:\ のスキャンを実行します。指定したドライブが存在しない場合、ツールはエラーを表示せずにそのドライブを無視します。すべてが画面に記録されます(どのドライブでどの脆弱なファイルが見つかったか)。