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
Log4JShell-Bytecode-Detector — Lokaler Bytecode-Scanner für die Log4JShell-Schwachstelle (CVE-2021-44228) | Kitploit
Tools/GitHubGitHub/codeshield-security
/log4jshell-bytecode-detector
Statische AnalyseSchwachstellenscannerCode-AnalyseBinäranalyseLieferkettensicherheitIncident Response
GitHubcodeshield-security/log4jshell-bytecode-detector

Log4JShell-Bytecode-Detector

Lokaler Bytecode-Scanner für die Log4JShell-Schwachstelle (CVE-2021-44228)

Repository anzeigenWebseite
499vor 4 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

🔍 Log4JShell Bytecode Detector

Log4JShell Bytecode Detector ist ein Open-Source-Tool, das dabei hilft zu erkennen, ob eine Jar-Datei von der kritischen Schwachstelle CVE-2021-44228 betroffen ist. Das Tool scannt die Jar-Datei und vergleicht die Klassen mit einer Reihe von anfälligen Hashes für Klassen innerhalb der Jar-Datei. Die Hashes wurden für Artefakte auf Maven Central vorab berechnet.

WICHTIGES UPDATE: Wir haben die Liste der betroffenen Artefakte auf Maven Central erweitert. Die Liste enthält 18.816 Artefakte. Die Artefakte verwenden entweder log4j-core als deklarierte Abhängigkeit, oder wir haben .class-Dateien innerhalb der Artefakte identifiziert, die zu den betroffenen Versionen von log4j-core passen.

📝 So führst du das Tool aus

  1. Lade die Jar-Datei unter Releases herunter.
  2. Führe java -cp <PFAD_ZUR_HERGELADENEN_JAR> de.codeshield.log4jshell.Log4JDetector <ABSOLUTER_PFAD_ZUR_ZU_PRÜFENDEN_JAR> aus.

Wenn die Jar-Datei betroffen ist, gibt das Tool Informationen auf der Kommandozeile aus:

root@kitploit:~
CVE-2021-44228 found declared as dependency in META-INF/maven/org.apache.logging.log4j/log4j-core/pom.xml
CVE-2021-44228 found in class file org/apache/logging/log4j/core/net/JndiManager$1.class

📝 So führst du das Tool auf einem Live-Server aus (kein Stoppen laufender Java-Instanzen nötig)

  1. Lade die Jar-Datei unter Releases herunter.
  2. Führe java -cp <PFAD_ZUR_HERGELADENEN_JAR> de.codeshield.log4jshell.Log4JProcessDetector aus.
  3. Die Jar-Datei durchsucht den Klassenpfad aller laufenden Java-Prozesse nach anfälligen log4j-Instanzen.

❓ Hintergrund zu CVE-2021-44228

Eine schwerwiegende Schwachstelle zur Remote Code Execution wurde in log4j entdeckt; die Versionen 2.0-beta9 bis 2.14 sind betroffen. Die Schwachstelle wurde als kritisch eingestuft, da sie log4j betrifft, eine der am häufigsten verwendeten Logging-Bibliotheken für Java. Es gibt viele Referenzen und Artikel dazu.

  • Hackernews
  • BSI (nur deutsch)
  • Proof of Concept zur Ausnutzung der Schwachstelle
  • Log4JShell Cheat Sheet

👀 Warum ist das wichtig?

Log4j wird und wurde in fast jedem Java-Projekt zu Logging-Zwecken verwendet. Nun müssen wir verstehen, welche Projekte und Bibliotheken tatsächlich betroffen sind. Aufgrund des Java-Abhängigkeitsmechanismus kann eine Anwendung auch dann betroffen sein, wenn sie die anfällige Bibliotheksversion transitiv enthält. Ein Projekt A enthält eine Bibliothek lib transitiv, wenn eine der direkten Abhängigkeiten B von A eine Abhängigkeit zu lib hat. Ein einfacher Test, um zu prüfen, ob man betroffen ist, kann mit dem Maven-Abhängigkeitsbaum durchgeführt werden:

Beispiel: Führe den Befehl mvn dependency:tree in einem Maven-Projekt aus.

root@kitploit:~
[INFO] exampleProject:mainProject:jar:0.0.1-SNAPSHOT
[INFO] +- exampleProject:lib-using-log4j:jar:0.0.1-SNAPSHOT:compile
[INFO] |  \- org.apache.logging.log4j:log4j-core:jar:2.14.1:compile

Diese Prüfung ist jedoch nur ein erster Hinweis und reicht aus folgenden Gründen nicht aus:

Java-Programme werden häufig:

  • als Fatjar oder Uberjar gepackt: Alle Klassendateien (einschließlich direkter und transitiver Abhängigkeiten) werden in einer einzigen Jar-Datei ausgeliefert. (wie wir es für dieses Software-Artefakt tun)
  • neu verpackt oder neu gebündelt: Die ursprünglichen Paketnamen werden geändert, um Namenskonflikte zu vermeiden (einige Compiler und Paketmechanismen wenden Codetransformationen an)
  • neu kompiliert: Der Quellcode wird mit einem anderen Compiler kompiliert und als neu verpackt, was zu modifiziertem Bytecode führt

Folglich kann jede Bibliothek, die ein Java-Projekt verwendet, die Schwachstelle in dein Projekt einschleusen. Eine eingehende Bytecode-Analyse hilft dabei – genau das veröffentlichen wir als Teil dieses Repositorys.

📕 Das Skript

  1. Extrahiere pom.xml-Dateien aus der .jar-Datei
  2. Prüfe deklarierte Abhängigkeiten gegen eine vorab berechnete Liste betroffener groupId:artifactId:version-Einträge für Artefakte auf Maven Central
  3. Extrahiere .class-Dateien aus der .jar-Datei
  4. Berechne SHA-Hashes der Klassendateien
  5. Gleiche die SHAs mit einer vorab berechneten Liste ab

🛠 Build-Anleitung

Um dieses Tool zu bauen, führe aus:

mvn compile

Zum Erstellen einer ausführbaren jar-Datei verwende:

mvn clean compile assembly:single

💡 Vorab berechnete Hashes anfälliger Klassen

Die Menge an anfälligen Hashes für Klassen wurde über das gesamte Maven Central-Repository vorab berechnet. Die Hashes der Klassen enthalten alle Hashes, die wir mithilfe der Fingerprinting-Technologie als bytecode-ähnlich identifiziert haben.

Die vorab berechneten Informationen enthalten:

  • alle Artefakte, die log4j direkt in einer der anfälligen Versionen enthalten
  • alle Artefakte, die eine Klasse ausliefern, die einen anfälligen Hash von log4j im betroffenen Versionsbereich enthält
  • alle Artefakte, die eine anfällige Klasse von log4j neu bündeln
  • alle Artefakte, die eine neu kompilierte Klasse einer Klasse von log4j im betroffenen Versionsbereich enthalten

Als betroffenen Versionsbereich haben wir [2.0-beta9, 2.15) berücksichtigt. Referenz.

💻 Fingerprinting-Technologie

Dieses Tool verwendet eine neue Bytecode-Fingerprinting-Technologie für Java, die von Andreas Dann entwickelt wurde. Der grundlegende Ablauf ist wie folgt:

  1. Verwende die verfügbaren Fix-Commits Commit1, Commit2 und Commit3, um zu identifizieren, welche Klassen betroffen sind.
  2. Berechne Bytecode-„Fingerprints“ anfälliger Klassen.
  3. Suche nach anderen Klassen auf Maven Central mit demselben „Fingerprint“.

Hinweis: Für eine einfachere Bereitstellung enthält dieses Repository SHA-Hashes der anfälligen Klassen; die Informationen wurden mithilfe von Fingerprinting berechnet.

📌 Haftungsausschluss

Die Liste der Hashes und Maven-Artefakte ist nicht vollständig. Wir werden die Listen regelmäßig aktualisieren.

📯 Mitwirkende

Dieses Tool wurde von den CodeShield-Mitbegründern gemeinsam entwickelt:

  • Andreas Dann [email protected]
  • Johannes Spaeth [email protected]
  • Manuel Benz [email protected]

Feedback ist willkommen!

Wir arbeiten daran, die Liste der betroffenen Artefakte zu erweitern, und sind stets bestrebt, unser Angebot zu verbessern. contribution welcome

Außerdem: ⭐️ dieses Repository, wenn dir unser Scanner geholfen hat!

✍️ Kontakt

Wenn du Unterstützung benötigst oder mehr über unsere Technologie erfahren möchtest, kontaktiere uns unter [email protected].

Dein CodeShield-Team 💚

Tool herunterladen