
eine schnelle Prüfung, ob Ihr Server anfällig für CVE-2021-44228 ist
Wenn Sie die untenstehenden Download-Cradles für Windows/Linux verwenden möchten, überprüfen Sie bitte vorher die Skripte. Code aus dem Internet zu laden und auszuführen, hat uns ja zu Log4Shell geführt – oder? ;-)
Das Skript log4j_checker_beta.sh führt eine schnelle Überprüfung durch, ob Ihr Server möglicherweise von CVE-2021-44228 (der Log4j-Sicherheitslücke) betroffen ist.
Es gibt keinen 100%igen Beweis, dass Sie nicht verwundbar sind, aber es gibt einen Hinweis darauf, ob es möglich ist, dass Sie verwundbar sein könnten.
wget https://raw.githubusercontent.com/rubo77/log4j_checker_beta/main/log4j_checker_beta.sh -q -O - |bash
Wenn Sie nur die Warnungen sehen möchten, verwenden Sie
wget https://raw.githubusercontent.com/rubo77/log4j_checker_beta/main/log4j_checker_beta.sh -q -O - | bash | grep '\[WARNING\]'
Stellen Sie sicher, dass Ihre locate-Datenbank vor der Ausführung mit folgendem Befehl aktualisiert ist:
sudo updatedb
Das Skript kann .class-Dateien auf der ersten Ebene von JAR/WAR/EAR-Archiven testen, um zu sehen, ob sie mit bekannten SHA256-Hashes von verwundbaren Class-Dateien aus log4j übereinstimmen.
Sie müssen eine Textdatei mit SHA256-Hashes im HEX-Format bereitstellen, eine pro Zeile, alles nach dem ersten wird ignoriert.
Die URL kann in der Variable download_file gesetzt werden. Andernfalls funktioniert diese Funktion nicht.
Die Informationen von Lunasec.io zu Hashes von verwundbaren binären Java-.class-Dateien:
Siehe auch deren Blog: https://www.lunasec.io/docs/blog/log4j-zero-day-mitigation-guide/
Wir haben eine SHA256_HASHES_URL im Skript enthalten, die auf die Datei hashes-pre-cve.txt in diesem Repository verweist. Sie können aber auch Ihre eigene URL als ersten Parameter an das Skript übergeben oder eine lokale Datei verwenden, z.B. speichern Sie Ihre Datei als hashes-pre-cve_local.txt und rufen Sie dann:
./log4j_checker_beta.sh hashes-pre-cve_local.txt
Die Befehle locate und unzip müssen installiert sein. unzip wird benötigt, um die JAR-Dateien zu inspizieren.
Zur Installation auf Debian- und Ubuntu-Systemen:
sudo apt install unzip locate
sudo updatedb
Sie können das folgende Snippet verwenden:
IEX (New-Object Net.Webclient).downloadstring("https://raw.githubusercontent.com/anlx-sw/log4j_checker_beta/main/get-vulnerablejars.ps1")
um direkt nach potenziell verwundbaren JAR-Dateien unter Windows zu suchen. Oder Sie können dieses Skript herunterladen und die Ausgabe auf eine beschreibbare Dateifreigabe umleiten. Dies hat bei mir für Powershell 2.0 auf Windows Server 2012 noch funktioniert.
Fehlerbehandlung oder zusätzliche Funktionen wurden bewusst nicht hinzugefügt, um das Skript kurz, einfach und kompatibel mit Powershell 2.0 und älteren Windows-Versionen zu halten. Dieses Skript sucht lediglich nach JAR-Dateien und durchsucht sie nach der Zeichenkette "JndiLookup.class", die auf eine verwundbare Bibliothek hinweist. Verwenden Sie Ihr bevorzugtes Tool, um es mit Administratorrechten auszuführen (oder verwenden Sie es einfach manuell).
Alternativ, falls Sie Powershell nicht verwenden können, können Sie dieses Snippet für die Eingabeaufforderung verwenden, um das aktuelle Laufwerk nach JAR-Dateien mit "JndiLookup.class" zu durchsuchen. Nachdem Sie diese Zeile mit Administratorrechten ausgeführt haben, überprüfen Sie die Datei c:\log4j-vuln.txt auf verwundbare Dateien.
cd \ && for /r %f in (*.jar) do (find /i /c "JndiLookup.class" "%f" 1>nul && echo "%f" >> "c:\log4j-vuln.txt")