Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
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
log4jcheck — Prüft eine Liste von URLs auf die Log4j-Sicherheitslücke CVE-2021-44228 | Kitploit
Tools/GitHubGitHub/olafhaalstra/log4jcheck
SchwachstellenscannerWeb-SchwachstellenscannerExploitationInformationsbeschaffungWebsicherheitPenetrationstests
GitHubolafhaalstra/log4jcheck

log4jcheck

Prüft eine Liste von URLs auf die Log4j-Sicherheitslücke CVE-2021-44228

Repository anzeigen
513vor 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 CVE-2021-44228 Prüfer

Multithreaded prüft eine Liste von URLs mit POST- und GET-Anfragen in Kombination mit Parametern.

Stark inspiriert von der NortwaveSecurity-Version.

Einrichtung

URLs zum Prüfen

Die Liste der zu prüfenden URLs sollte im folgenden Format (csv) vorliegen:

root@kitploit:~
description,URL,method,parameters
production,example.com/login,POST,"username,password"
staging,example.com/search,GET,"q"
development,example.com/,GETNP,""

Dies wird anschließend eine POST-Anfrage an example.com/login ausführen, wobei der folgende rohe Body gesendet wird:

username={jndi:ldap...}&password={jndi:ldap...}

Ebenso wird die folgende GET-Anfrage ausgeführt: example.com/search?q={jndi:ldap...}.

Alternativ kann GETNP (GET ohne Parameter) angegeben werden, um die URL mit dem angehängten Payload als GET aufzurufen: example.com/new/{jndi:ldap...}.

Zusätzlich wird der Payload auch in die Header User-Agent, Referer, X-Forwarded-For, Authentication eingefügt, um die Trefferwahrscheinlichkeit zu erhöhen.

Wenn Sie URLs sowohl für GET, POST als auch GETNP prüfen möchten, duplizieren Sie bitte den Eintrag in der CSV.

Canary-Token

Für die Einrichtung ohne Vorkonfigurationen können Sie https://canarytokens.org/generate verwenden und ein Log4Shell-CanaryToken erstellen:

Canary Tokens

Alternativ können Sie Ihren eigenen DNS-Server einrichten.

Ausführen des Skripts

Install dependencies by using pip install-r requirements.txt. Bearbeiten Sie das Skript, um die folgende Zeile auf Ihr bevorzugtes Canary-Token zu ändern:

root@kitploit:~
usage: log4jcheck.py [-h] -f FILE -u URL [-w WAIT] [-t TIMEOUT] [-p PREFIX] [-q THREADS] [-d DONE]

optional arguments:
  -h, --help            show this help message and exit
  -f FILE, --file FILE  The CSV filename containing the URLs
  -u URL, --url URL     DNS subdomain URL on which th callback is performed
  -w WAIT, --wait WAIT  Number of seconds to wait before next request (default: 1)
  -t TIMEOUT, --timeout TIMEOUT
                        HTTP timeout in seconds to use (default: 5)
  -p PREFIX, --prefix PREFIX
                        Type of prefix, see prefixes_injects for options. (default: 0, options 0-3)
  -q THREADS, --threads THREADS
                        Number of threads to distribute the work
  -d DONE, --done DONE  File where we can keep track of items that are done

Erstellen Sie den Ordner: /run/logs für die Log-Ausgabe. Hier können Sie den Fortschritt verfolgen, es wird nichts auf stdout ausgegeben.

Nun kann das Skript ausgeführt werden, wobei das Skript auf die zuvor erstellte CSV mit den zu prüfenden URLs verweist.

root@kitploit:~
python3 .\log4jcheck.py --file .\urls-example.csv --threads 2 --url "L4J.ujz5sgvgo7xuvn03ft9qrws5w.canarytokens.com/a" -w 0 -t 1

Überprüfen Sie, ob das Token nach Abschluss des Skripts ausgelöst wurde. Sie können korrelieren, welche Anwendung ausgelöst hat, basierend auf der generierten UUID4 in Kombination mit dem injizierten Parameter, z.B.: 40852c3b-2d6b-4bd5-a91f-4416aa730619-username.

Testen

Getestet gegen log4shell-vulnerable-app. Ändern Sie MainControll.java wie folgt:

root@kitploit:~
package fr.christophetd.log4shell.vulnerableapp;


import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

@RestController
public class MainController {

    private static final Logger logger = LogManager.getLogger("HelloWorld");

    @GetMapping("/")
    public String index(@RequestHeader("X-Api-Version") String apiVersion) {
        logger.info("Received a request for API version " + apiVersion);
        return "Hello, world!";
    }

    @GetMapping("/test")
    public String testGet(@RequestParam String test) {
        logger.info("Received a request for test " + test);
        return "Test world!";
    }

    @PostMapping("/test")
    public String test(@RequestBody String test) {
        logger.info("Received a request for test " + test);
        return "Test world!";
    }

}

Kompilieren und ausführen:

root@kitploit:~
gradle bootJar --no-daemon
java -jar .\build\libs\log4shell-vulnerable-app-0.0.1-SNAPSHOT.jar

Führen Sie log4jcheck mit der folgenden urls.csv-Datei aus:

root@kitploit:~
description,URL,method,parameters
test,http://localhost:8080/test,POST,"test"
test,http://localhost:8080/test,GET,"test"

Die folgenden Informationen sollten im Canary-Token-Log erscheinen: Log input

Abdeckung:

Die folgenden HTTP-Header werden abgedeckt:

  • X-Api-Version
  • User-Agent
  • Referer
  • X-Druid-Comment
  • Origin
  • Location
  • X-Forwarded-For
  • Cookie
  • X-Requested-With
  • X-Forwarded-Host
  • Accept

Für jede Injektion sind die folgenden JNDI-Präfixe möglich:

  • 0: jndi:dns
  • 1: jndi:${lower:l}${lower:d}ap
  • 2: jndi:rmi
  • 3: jndi:ldap

HAFTUNGSAUSSCHLUSS

Beachten Sie, dass das Skript nur Prüfungen durchführt für: User Agent und alle Parameter, die Sie für die POST- oder GET-Anfrage angeben. Dies kann zu falsch negativen Ergebnissen führen, wenn andere Header, übersehene Eingabefelder usw. angezielt werden müssen, um die Schwachstelle auszulösen. Sie können gerne zusätzliche Prüfungen zum Skript hinzufügen.

Lizenz

Log4jcheck ist quelloffene Software, lizenziert unter der MIT-Lizenz.

Tool herunterladen