
Rekursiver Dateiscanner, entwickelt in Python 3, zum Auffinden und Scannen von anfälligen Versionen von Log4j2, einschließlich interner Analyse von JAR-Dateien (CVE-2021-44228, CVE-2021-45046, CVE-2021-45105 und CVE-2021-44832)
████████████████▀███████████████████████████████████████████████████████████████████ █▄─▄███─▄▄─█─▄▄▄▄█░█░████▄─▄█▀▀▀▀▀██▄─▄▄─█▄─▄█▄─▄███▄─▄▄─█─▄▄▄▄█─▄▄▄─██▀▄─██▄─▀█▄─▄█ ██─██▀█─██─█─██▄─█▄▄░██─▄█─██████████─▄████─███─██▀██─▄█▀█▄▄▄▄─█─███▀██─▀─███─█▄▀─██ ▀▄▄▄▄▄▀▄▄▄▄▀▄▄▄▄▄▀▀▄▄▄▀▄▄▄▀▀▀▀▀▀▀▀▀▀▄▄▄▀▀▀▄▄▄▀▄▄▄▄▄▀▄▄▄▄▄▀▄▄▄▄▄▀▄▄▄▄▄▀▄▄▀▄▄▀▄▄▄▀▀▄▄▀ von Renato Andalik (@andalik)
Einfach und direkt auf den Punkt gebracht... Keine Übung nötig, und noch weniger Geschick! Log4j-FileScan ist ein in Python 3 entwickeltes Skript zur vollständigen Durchsuchung eines Dateisystems nach anfälligen Versionen des Log4j2-Frameworks, wie in den CVE-2021-44228, CVE-2021-45046, CVE-2021-45105 und CVE-2021-44832 beschrieben. Die Suche erfolgt rekursiv sowohl auf der Festplatte als auch innerhalb von Java-Archive-Dateien (JARs).

Zur Optimierung der Suchgeschwindigkeit erfolgt die Suche NUR in den für das Problem relevanten Dateien:
Java ARchive (auch in mit zip komprimierten Dateien):
*.jar, *.war, *.ear und *.zipWenn eine Datei mit einer der oben genannten Erweiterungen gefunden wird, erfolgt die Durchsuchung der internen Dateien (alles im Speicher).
Das Skript kann auf zwei verschiedene Arten heruntergeladen und verwendet werden:
Um es noch einfacher zu machen, haben wir alles kompiliert und eine ausführbare Binärdatei bereitgestellt. Einfach die Version für Ihr Betriebssystem herunterladen, die Eingabeaufforderung öffnen und ausführen:
Windows: log4j-filescan.exe WICHTIG: Aufgrund des von PyInstaller bereitgestellten Verpackungsmodells (alles in einer einzigen ausführbaren Datei) können einige Antivirenprogramme einen falsch-positiven Alarm auslösen. Fügen Sie die ausführbare Datei daher einfach zur Ausnahmeliste Ihres Antivirenprogramms hinzu.
Linux: log4j-filescan
Unter Linux können Sie in der Konsole auch wget verwenden, um die Binärdatei zu erhalten:
wget https://github.com/andalik/log4j-filescan/releases/download/v1.1.1/log4j-filescan -O log4j-filescan
chmod +x log4j-filescan
sudo ./log4j-filescan
Für Linux-Distributionen mit installiertem Python 3.6+ verwenden Sie eine der folgenden Methoden:
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
Laden Sie Python 3.6 oder höher von https://www.python.org/downloads/ herunter.
Add Python 3.x to PATH auswählen.Öffnen Sie die Eingabeaufforderung und führen Sie pip aus, um pyinstaller zu installieren:
pip install pyinstaller
pip install colorama
Laden Sie die neueste Version des Skripts log4j-filescan.py herunter und führen Sie PyInstaller aus:
pyinstaller --onefile --hidden-import colorama log4j-filescan.py
Die ausführbare Windows-Datei wird im Verzeichnis dist erstellt: dist\log4j-filescan.exe
Beispiel für 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
oder
$ python3 log4j-filescan.py /gewünschter/pfad (unter Linux)
$ python3 log4j-filescan.py d:\ (unter Windows)
$ python3 log4j-filescan.py /pfad/datei.jar
$ python3 log4j-filescan.py /pfad/verz1 /pfad/verz2 /pfad/datei.jar
$ python3 log4j-filescan.py / --exclude "/pfad/*.war"
$ python3 log4j-filescan.py -v /gewünschter/pfad
$ python3 log4j-filescan.py -vv /gewünschter/pfad
c:\, wenn kein Laufwerk angegeben wird.
Es ist jedoch möglich, alle physischen Laufwerke des Computers für eine einmalige Suche anzugeben.Öffnen Sie Powershell (vorzugsweise mit „Als Administrator ausführen“) und geben Sie Folgendes ein:
python3 log4j-filescan.py c:\ d:\ e:\
Das Tool durchsucht C:, dann D:\ und schließlich E:. Wenn ein Laufwerk nicht existiert, ignoriert das Tool das angegebene Laufwerk einfach, ohne einen Fehler zu melden. Alles wird auf dem Bildschirm protokolliert (welche anfälligen Dateien auf welchem Laufwerk gefunden wurden).