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
hotpatch-for-apache-log4j2 — Ein Agent zum Hotpatchen der log4j-RCE aus CVE-2021-44228. | Kitploit
Tools/GitHubGitHub/corretto/hotpatch-for-apache-log4j2
DefensivwerkzeugeSchwachstellenanalyseExploitationLieferkettensicherheitIncident Response
GitHubcorretto/hotpatch-for-apache-log4j2

hotpatch-for-apache-log4j2

Ein Agent zum Hotpatchen der log4j-RCE aus CVE-2021-44228.

Repository anzeigen

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
49772vor 3 JahrenVon Kitploit geprüft

Log4jHotPatch

Dies ist ein Tool, das einen Java-Agenten in einen laufenden JVM-Prozess injiziert. Der Agent versucht, die lookup()-Methode aller geladenen org.apache.logging.log4j.core.lookup.JndiLookup-Instanzen zu patchen, sodass sie bedingungslos den String "Patched JndiLookup::lookup()" zurückgibt. Es wurde entwickelt, um die CVE-2021-44228-Schwachstelle zur Remote-Codeausführung in Log4j zu beheben, ohne den Java-Prozess neu zu starten. Dieses Tool behebt auch CVE-2021-45046.

Dies wurde derzeit nur mit JDK 8, 11, 15 und 17 unter Linux getestet!

Erstellen

Gradle

Zum Erstellen unter Linux, Mac und Windows-Subsystem für Linux

root@kitploit:~
./gradlew build

Zum Erstellen unter Windows

root@kitploit:~
.\gradlew.bat build

Abhängig von der Plattform, auf der Sie erstellen. Dies erzeugt build/libs/Log4jHotPatch.jar

Maven

Zum Erstellen mit Maven verwenden

root@kitploit:~
mvn clean package

Dies erzeugt eine target/Log4jHotPatch.jar.

Ausführen

JDK 8

root@kitploit:~
java -cp <java-home>/lib/tools.jar:Log4jHotPatch.jar Log4jHotPatch <java-pid>

JDK 11 und neuer

root@kitploit:~
java -jar Log4jHotPatch.jar <java-pid>

Den statischen Agenten ausführen

Fügen Sie den Agenten einfach wie folgt zu Ihrer Java-Befehlszeile hinzu:

root@kitploit:~
java -classpath <class-path> -javaagent:Log4jHotPatch.jar <main-class> <arguments>

Den Agenten testen

Es gibt eine Reihe von Tests, die außerhalb von Gradle oder Maven ausgeführt werden können.

root@kitploit:~
build-tools/bin/run_tests.sh Log4jHotPatch.jar <JDK_ROOT>

Bekannte Probleme

Wenn Sie einen Fehler wie diesen erhalten:

root@kitploit:~
Exception in thread "main" com.sun.tools.attach.AttachNotSupportedException: The VM does not support the attach mechanism
	at jdk.attach/sun.tools.attach.HotSpotAttachProvider.testAttachable(HotSpotAttachProvider.java:153)
	at jdk.attach/sun.tools.attach.AttachProviderImpl.attachVirtualMachine(AttachProviderImpl.java:56)
	at jdk.attach/com.sun.tools.attach.VirtualMachine.attach(VirtualMachine.java:207)
	at Log4jHotPatch.loadInstrumentationAgent(Log4jHotPatch.java:115)
	at Log4jHotPatch.main(Log4jHotPatch.java:139)

bedeutet dies, dass Ihre JVM jegliche Hilfe verweigert, weil sie mit -XX:+DisableAttachMechanism ausgeführt wird.

Wenn Sie einen Fehler wie diesen erhalten:

root@kitploit:~
com.sun.tools.attach.AttachNotSupportedException: Unable to open socket file: target process not responding or HotSpot VM not loaded
	at sun.tools.attach.LinuxVirtualMachine.<init>(LinuxVirtualMachine.java:106)
	at sun.tools.attach.LinuxAttachProvider.attachVirtualMachine(LinuxAttachProvider.java:63)
	at com.sun.tools.attach.VirtualMachine.attach(VirtualMachine.java:208)
	at Log4jHotPatch.loadInstrumentationAgent(Log4jHotPatch.java:182)
	at Log4jHotPatch.main(Log4jHotPatch.java:259)

bedeutet dies, dass Sie als ein anderer Benutzer (einschließlich root) ausgeführt werden als die Ziel-JVM. JDK 8 kann das Patchen als Root-Benutzer nicht verarbeiten (und löst einen Thread-Dump in der Ziel-JVM aus, der harmlos ist). In JDK 11 funktioniert das Patchen eines Nicht-Root-Prozesses von einem Root-Prozess aus einwandfrei.

Wenn Sie einen Fehler wie diesen im Zielprozess erhalten:

root@kitploit:~
Exception in thread "Attach Listener" java.lang.ExceptionInInitializerError
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:386)
        at sun.instrument.InstrumentationImpl.loadClassAndCallAgentmain(InstrumentationImpl.java:411)
Caused by: java.security.AccessControlException: access denied ("java.util.PropertyPermission" "log4jFixerAgentVersion" "write")
        at java.security.AccessControlContext.checkPermission(AccessControlContext.java:472)
        at java.security.AccessController.checkPermission(AccessController.java:886)
        at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
        at java.lang.System.setProperty(System.java:794)
        at Log4jHotPatch.<clinit>(Log4jHotPatch.java:66)

bedeutet dies, dass der Zielprozess einen Security Manager installiert hat. Suchen Sie nach dieser Befehlszeilenoption im Zielprozess:

root@kitploit:~
-Djava.security.policy=/local/apollo/.../apollo-security.policy

Wenn Sie auf diesen Fehler stoßen, stellen Sie sicher, dass Sie die neueste Version des Tools verwenden

Wichtig: Wenn Sie versucht haben, als falscher Benutzer zu patchen, müssen Sie möglicherweise .attach_pid<pid>-Dateien löschen (zu finden in /tmp und/oder dem Arbeitsverzeichnis des VM-Prozesses), bevor Sie es erneut versuchen. Diese Dateien müssen den richtigen Besitzer haben, damit das Anhängen erfolgreich ist.

Tool herunterladen