Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
hotpatch-for-apache-log4j2 — Un agente para hacer hotpatch a la vulnerabilidad RCE de log4j de CVE-2021-44228. | Kitploit
Herramientas/GitHubGitHub/corretto/hotpatch-for-apache-log4j2
Herramientas DefensivasAnálisis de VulnerabilidadesExplotaciónSeguridad de Cadena de SuministroRespuesta a Incidentes
GitHubcorretto/hotpatch-for-apache-log4j2

hotpatch-for-apache-log4j2

Un agente para hacer hotpatch a la vulnerabilidad RCE de log4j de CVE-2021-44228.

Ver Repositorio

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
497724hace 3 añosRevisado por Kitploit
Compartir

Log4jHotPatch

Esta es una herramienta que inyecta un agente Java en un proceso JVM en ejecución. El agente intentará parchear el método lookup() de todas las instancias cargadas de org.apache.logging.log4j.core.lookup.JndiLookup para que devuelvan incondicionalmente la cadena "Patched JndiLookup::lookup()". Está diseñada para abordar la vulnerabilidad de ejecución remota de código CVE-2021-44228 en Log4j sin reiniciar el proceso Java. Esta herramienta también abordará la CVE-2021-45046.

Actualmente solo se ha probado con JDK 8, 11, 15 y 17 en Linux!

Compilación

Gradle

Para compilar en Linux, Mac y el subsistema de Windows para Linux

root@kitploit:~
./gradlew build

Para compilar en Windows

root@kitploit:~
.\gradlew.bat build

Dependiendo de la plataforma en la que compiles. Esto generará build/libs/Log4jHotPatch.jar

Maven

Para compilar usando Maven usa

root@kitploit:~
mvn clean package

Esto generará un target/Log4jHotPatch.jar.

Ejecución

JDK 8

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

JDK 11 y más recientes

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

Ejecución del agente estático

Simplemente agrega el agente a tu línea de comandos de Java de la siguiente manera:

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

Pruebas del agente

Hay un conjunto de pruebas que se pueden ejecutar fuera de Gradle o Maven.

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

Problemas conocidos

Si obtienes un error como:

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)

esto significa que tu JVM está rechazando cualquier tipo de ayuda porque se está ejecutando con -XX:+DisableAttachMechanism.

Si obtienes un error como:

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)

esto significa que estás ejecutando como un usuario diferente (incluyendo root) que la JVM objetivo. JDK 8 no puede manejar el parcheo como usuario root (y desencadena un volcado de hilos en la JVM objetivo que es inofensivo). En JDK 11, parchear un proceso no root desde un proceso root funciona bien.

Si obtienes un error como este en el proceso objetivo:

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)

significa que el proceso objetivo tiene instalado un administrador de seguridad. Busca esta opción de línea de comandos en el proceso objetivo:

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

Si encuentras este error, asegúrate de estar usando la última versión de la herramienta

Importante: Si intentaste parchear como el usuario equivocado, es posible que necesites eliminar los archivos .attach_pid<pid> (que se encuentran en /tmp y/o en el directorio de trabajo del proceso de la VM) antes de volver a intentarlo. Estos archivos deben tener la propiedad correcta para que el adjunto tenga éxito.

Descargar herramienta