Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
log4j-finder — Finde anfällige Log4j2-Versionen auf der Festplatte und auch in Java Archive Files (Log4Shell CVE-2021-44228, CVE-2021-45046, CVE-2021-45105) | Kitploit
Tools/GitHubGitHub/fox-it/log4j-finder
Statische AnalyseSchwachstellenscannerSchwachstellenanalyseCode-AnalyseLieferkettensicherheitIncident Response
GitHubfox-it/log4j-finder

log4j-finder

Finde anfällige Log4j2-Versionen auf der Festplatte und auch in Java Archive Files (Log4Shell CVE-2021-44228, CVE-2021-45046, CVE-2021-45105)

Repository anzeigen
4399648vor 3 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

log4j-finder

Ein Python3-Skript, um das Dateisystem zu durchsuchen und Log4j2 zu finden, das anfällig für Log4Shell (CVE-2021-44228 & CVE-2021-45046 & CVE-2021-45105) ist. Es durchsucht rekursiv sowohl die Festplatte als auch (verschachtelte) Java-Archivdateien (JARs).

log4j-finder Ergebnisse

Funktionsweise

log4j-finder identifiziert log4j2-Bibliotheken auf Ihrem Dateisystem mithilfe einer Liste von bekannt schlechten und bekannt guten MD5-Hashes bestimmter Dateien (derzeit nur JndiManager.class), die in log4j2-core-*-Paketen vorhanden sind; dem Hauptpaket, das von log4shell betroffen ist. Es sucht nach diesen Dateien in Java-Archivdateien und auf dem Dateisystem. Die -Version wird dann basierend auf dem MD5-Hash dieser Datei identifiziert.

log4j2

Um die Scan-Geschwindigkeit zu optimieren, durchsucht es das Dateisystem und verarbeitet NUR die folgenden Dateinamen:

  • Alle Dateien mit Java ARchive-Dateierweiterungen im Dateinamen (auch verschachtelt in diesen Archiven):
    • *.jar, *.war, *.ear
  • Dateinamen, für die wir bekannt schlechte und gute Hashes haben (auch innerhalb der obigen Archive und verschachtelt):
    • JndiManager.class

Wenn die Datei mit einer der oben genannten Erweiterungen übereinstimmt, wird in diesen Archiven (alles im Speicher, nichts wird entpackt) nach den Dateinamen gesucht, für die das Skript bekannte Hashes hat. Es sucht auch in verschachtelten Archiven, z. B. einer JAR-Datei in einer WAR-Datei.

Das Skript scannt KEINE anderen Archivdateierweiterungen wie 7z, RAR, TAR, BZ2 usw. Wenn sich also z. B. eine JAR-Datei in einer 7z-Datei befindet, wird das Skript sie nicht finden. Der Grund ist, dass Java nur Java ARchive-Formate laden kann, daher scannen wir nur diese.

Unbekannte MD5-Hashes werden als UNKNOWN angezeigt; dies kann passieren, wenn ein nicht zu log4j2 gehörendes Java-Paket denselben Dateinamen verwendet, nach dem dieses Skript sucht. Es ist höchstwahrscheinlich nicht log4j2, wenn der identifizierte Dateipfad keine Verweise auf org/apache/logging/log4j enthält. Dennoch wird eine manuelle Überprüfung empfohlen.

Herunterladen und Ausführen

Sie können log4j-finder mit einer der folgenden Methoden installieren:

Verwenden des Release-Binaries

Sie können das richtige Binary für Ihr Betriebssystem herunterladen:

  • Windows aktuell (signiert): log4j-finder-signed.exe
    • Nicht signierte Binaries sind ebenfalls verfügbar, können aber Ihr Antivirenprogramm auslösen, da es sich um eine PyInstaller-ausführbare Datei handelt. Sie können die ausführbare Datei auch selbst erstellen, siehe „Generieren von log4j-finder-Executables“ für Anleitungen.
  • Linux x86_64 aktuell: log4j-finder

Wenn Sie Linux verwenden, können Sie das neueste Release auch auf eine der folgenden Arten herunterladen und ausführen:

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

Verwendung von Python 3

Für Distributionen mit installiertem Python 3.6+ funktionieren auch die folgenden Methoden:

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

Generieren von log4j-finder-Executables

Automatisch generierte Executables

Im Repository gibt es eine GitHub Action, die bei jedem Commit automatisch ein Windows- und Linux-Binary des Skripts log4j-finder.py mit PyInstaller erstellt. Die Build-Artefakte dieser Workflow-Läufe werden verwendet, um sie an die Releases-Seite anzuhängen.

Wir sind uns bewusst, dass einige Antivirenanbieter die Windows-Binaries nicht mögen. In diesem Fall empfehlen wir, die ausführbare Datei selbst mit den folgenden Schritten zu erstellen (beachten Sie, dass wir jetzt auch signierte Binaries bereitstellen).

Generieren des Windows-Executables

  1. Wenn Sie Python 3.6 oder höher nicht installiert haben, laden Sie es zunächst von https://www.python.org/downloads/ herunter.

    • Wählen Sie Python 3.8.10, wenn Ihr Binary unter Windows 7 funktionieren soll:
      • Herunterladen Python 3.8.10 Windows-Installer (32-Bit)
      • Herunterladen Python 3.8.10 Windows-Installer (64-Bit)
    • Stellen Sie sicher, dass Sie während der Installation Add Python 3.x to PATH auswählen, das erleichtert die folgenden Schritte erheblich.
  2. Öffnen Sie eine Eingabeaufforderung und verwenden Sie pip, um das Paket pyinstaller zu installieren:

    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. Optional können Sie das Paket colorama installieren, um Farbunterstützung hinzuzufügen:

    root@kitploit:~
    pip install colorama
    
  4. Laden Sie die neueste Version des Skripts log4j-finder.py herunter und führen Sie dann PyInstaller aus:

root@kitploit:~
pyinstaller --onefile --hidden-import colorama log4j-finder.py

Das Windows-Executable befindet sich dann im Verzeichnis dist: dist\log4j-finder.exe

Generieren des Linux-Executables

Beispiel für 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

Verwendung

Beispiel zur Verwendung zum Scannen eines Pfads (Standard: /):

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

Oder direkt eine JAR-Datei:

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

Oder mehrere Verzeichnisse und/oder Dateien:

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

Ausschließen von Dateien oder Verzeichnissen:

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

Beachten Sie, dass es unter Windows nur das Stammverzeichnis c:\ scannt, wenn Sie keine zusätzlichen Argumente angeben. Wir empfehlen, die zu scannenden Laufwerke in der Befehlszeile anzugeben, z. B. (nicht vorhandene Laufwerke werden übersprungen):

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

Dateien oder Verzeichnisse, auf die nicht zugegriffen werden kann (Permission denied-Fehler), werden nicht ausgegeben.

Wenn Sie mehr Ausgabe sehen möchten, können Sie das -v-Flag für ausführliche Ausgabe oder -vv für den Debug-Modus verwenden (nur zu Debugging-Zwecken empfohlen).

Anwendungsargumente:

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)

Dateien werden rekursiv gescannt, sowohl auf der Festplatte als auch in (verschachtelten) Java-Archivdateien.

Tool herunterladen