Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
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-vulnerability — Zeigt, wie die Sicherheitslücke CVE-2021-44228 ausgenutzt wird. | Kitploit
Tools/GitHubGitHub/marceloleite2604/log4j-vulnerability
SchwachstellenanalyseExploitationWebanwendungs-ExploitationCommand and ControlLernen & BildungRemote-Access-ToolPayload-EntwicklungLabs & Praxis
GitHub
marceloleite2604/log4j-vulnerability

log4j-vulnerability

Zeigt, wie die Sicherheitslücke CVE-2021-44228 ausgenutzt wird.

Repository anzeigen
18vor 4 JahrenNoch nicht 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 Schwachstelle

Ein Java-basiertes Projekt, das zeigt, wie die Schwachstelle CVE-2021-44228 ausgenutzt werden kann.

https://user-images.githubusercontent.com/13152452/147803050-458593e9-4b54-4e1f-ba07-802866b9b43e.mp4

Voraussetzungen

  • Ein Linux-basiertes Betriebssystem: Ich habe Ubuntu Desktop 20.10 64 Bit verwendet
  • OpenJDK 17.0.1: Zum Bauen des Exploit-Programms. Neuere Versionen könnten ebenfalls funktionieren.
  • Oracle Java Development Kit (JDK) 1.8.0_181: Dies ist entscheidend dafür, dass der Exploit funktioniert. Es ist nicht nötig, es zu installieren, aber das Projekt benötigt es im Wurzelverzeichnis entpackt. Das JDK findet man auf der Oracle Java SE 8 Archive Downloads (JDK 8u202 und früher) Seite.
  • Apache Maven 3.6.3: Zur Verwaltung von Abhängigkeiten und Erstellung von Jar-Dateien. Neuere Versionen könnten ebenfalls funktionieren.
  • Docker 20.10.12: Zur Verwaltung des Containers, der den auszubeutenden Dienst enthält. Neuere Versionen könnten ebenfalls funktionieren.
  • Docker-compose 1.29.2: Zur Unterstützung der Orchestrierung der Image-Erstellung sowie der Container-Erstellung, -Ausführung und -Entfernung. Neuere Versionen könnten ebenfalls funktionieren.
  • GNU Make 4.3: Dieses Projekt verwendet Makefile zur Überprüfung und Erstellung erforderlicher Dateien. Neuere Versionen könnten ebenfalls funktionieren.
  • OpenBSD Netcat (auch nc): Zur Herstellung der Kommunikation mit dem angegriffenen Server. Dieses Paket kann über den Paketmanager Ihrer Linux-Distribution (wie apt) installiert werden.
  • (Empfohlen) IntelliJ IDEA Community Edition 2021.3.1: Wenn Sie einen Blick unter die Haube dieser Projekte werfen möchten, empfehle ich die Installation dieser IDE. Auch hier könnten neuere Versionen funktionieren.

Ausführung

  1. Klonen Sie dieses Repository auf Ihren lokalen Rechner.
  2. Laden Sie das JDK von der Oracle Java SE 8 Archive Downloads (JDK 8u202 und früher) Seite herunter und entpacken Sie es im Projekt-Wurzelverzeichnis. Belassen Sie es im Verzeichnis jdk1.8.0_181, das bei der Extraktion erstellt wurde.
  3. Führen Sie make all aus, um alle Projekte zu bauen und ein Docker-Image mit dem verwundbaren Dienst zu erstellen.
  4. Öffnen Sie drei Terminals und führen Sie die folgenden Befehle aus:
    1. Erstes Terminal: make start-vulnerable-service, um einen Docker-Container zu starten, der den auszubeutenden Dienst ausführt. Der Dienst ist über Port 8080 der lokalen Maschine erreichbar.
    2. Zweites Terminal: make start-nc, um einen TCP-Listener zu starten, der auf die Verbindung mit dem angegriffenen Server wartet.
    3. Drittes Terminal: make start-exploiter, um das Programm zu starten, das uns bei der Ausnutzung der Schwachstelle hilft.
  5. Nach dem Starten des dritten Terminals zeigt das Exploiter-Programm eine URL zum Zugriff an. Fügen Sie diese in Ihren Browser ein, um die Ausnutzung zu starten.
  6. Wenn alles wie erwartet funktioniert, erhält der Browser keine Antwort und bleibt im Ladezustand hängen.
  7. Überprüfen Sie nun das zweite Terminal (das, in dem make start-nc ausgeführt wurde). Möglicherweise haben Sie eine Nachricht wie Connection received on 172.24.0.2 46638 erhalten (IP-Adresse und TCP-Port können von den hier gezeigten abweichen). Dies bedeutet, dass der Exploit funktioniert hat und wir jetzt eine Shell auf dem Server/Docker-Container haben.
  8. Um sicherzugehen, dass alles wie erwartet verlief, versuchen Sie, den Befehl whoami auszuführen. Sie erhalten möglicherweise root als Ausgabe.
  9. Versuchen Sie nun, cat ../private-directory/my-secret-file.txt auszuführen, um zu sehen, was passiert. 🙂
  10. Wenn Sie mit dem Server fertig sind, drücken Sie STRG+C, um die Verbindung zu schließen.
  11. Sie können auch in den anderen Terminals STRG+C drücken, um die Prozesse zu unterbrechen.

Wie funktioniert es?

Bevor wir das beantworten, werfen wir einen Blick auf die Prozesse, die im Ablauf erstellt werden.

log4-vulnerability processeses

Docker-Container

Dieser Docker-Container stellt einen einfachen HTTP-Dienst bereit, der GET-Anfragen auf dem Pfad /log mit einem input-Parameter empfängt. Sobald er sie erhält, protokolliert er die Eingabe auf der Konsole.

https://user-images.githubusercontent.com/13152452/147826880-8ee10391-bcb7-46d3-8d69-2f7ddb4a7b37.mp4

Um die Schwachstelle auszunutzen, sind einige spezifische Konfigurationen erforderlich:

  • Die Java-Runtime-Umgebung (JRE), die zum Ausführen des Dienstes verwendet wird, ist Version 1.8.0_181. Dies ist notwendig, um das Laden einer Java-Klasse von einem externen Dienst zu ermöglichen.
  • Die Java-Projektabhängigkeiten müssen stark modifiziert werden, um das standardmäßige spring-boot-starter-logging:2.6.1 durch spring-boot-starter-log4j2:2.6.1 zu ersetzen. Letzteres bringt log4j-core:2.14.1 in das Projekt, eine Version, die für CVE-2021-44228 anfällig ist.

dependency-tree

  • Die Dienst-Jar-Datei wurde mit dem Java-Compiler in Version 1.8.0_181 erstellt.

Netcat (nc) Programm

Hier gibt es keine großen Erklärungen oder Anpassungen. Dies ist ein einfaches Programm zum Lesen und Schreiben von Daten über die TCP- und UDP-Protokolle. Wir werden es verwenden, um auf eingehende TCP-Verbindungen auf Port 9001 zu lauschen (etwas anderes wird diese Verbindung für uns auf der Serverseite öffnen. 😉).

Sobald die Verbindung hergestellt ist, werden alle eingehenden Daten auf der Konsole ausgegeben. Auch alle geschriebenen Eingaben werden über diese Verbindung gesendet.

Exploiter

Hier beginnt der Spaß!

Dieses Programm kapselt mehrere Schritte, die zur Ausnutzung der Schwachstelle erforderlich sind. Lassen Sie es uns aufschlüsseln:

Ausführungsargumente

Um dieses Programm auszuführen, müssen wir drei Parameter angeben:

  1. HTTP-Server und Netcat IP-Adresse/Host: Um die Schwachstelle auszunutzen, benötigen wir die IP-Adresse des HTTP-Servers relativ zum verwundbaren Dienst, damit unsere LDAP-Antwort ihn umleiten kann, um die kompilierte Java-Klasse darüber herunterzuladen. Sie wird auch von der Java-Klasse selbst verwendet, um eine TCP-Verbindung mit Netcat zu öffnen (oben erklärt).
  2. HTTP-Server-Port: Der Port, an dem der für das Senden der kompilierten Java-Klasse zuständige HTTP-Server Verbindungen akzeptiert. Er wird auch mit der LDAP-Antwort gesendet, um den Port mitzuteilen, von dem die kompilierte Java-Klasse heruntergeladen wird.
  3. Netcat-Port: Der Port, an dem Netcat auf Verbindungen lauscht. Er wird von der kompilierten Java-Klasse verwendet, um eine TCP-Verbindung mit Netcat zu öffnen.

Exploit Java-Klasse

Sobald das Programm startet, schreibt es einen Java-Code basierend auf einer Vorlage. Diese Vorlage erfordert zwei Argumente: die Netcat-IP-Adresse und den Port.

Tool herunterladen