Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
hotpatch-for-apache-log4j2 — Um agente para aplicar hotpatch no RCE do log4j do CVE-2021-44228. | Kitploit
Ferramentas/GitHubGitHub/corretto/hotpatch-for-apache-log4j2
Ferramentas DefensivasAnálise de VulnerabilidadesExploraçãoSegurança da Cadeia de SuprimentosResposta a Incidentes
GitHubcorretto/hotpatch-for-apache-log4j2

hotpatch-for-apache-log4j2

Um agente para aplicar hotpatch no RCE do log4j do CVE-2021-44228.

Ver Repositório

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
497724há 3 anosRevisado pelo Kitploit
Compartilhar

Log4jHotPatch

Isto é uma ferramenta que injeta um agente Java em um processo JVM em execução. O agente tentará corrigir o método lookup() de todas as instâncias carregadas de org.apache.logging.log4j.core.lookup.JndiLookup para retornar incondicionalmente a string "Patched JndiLookup::lookup()". Foi projetada para abordar a vulnerabilidade de execução remota de código CVE-2021-44228 no Log4j sem reiniciar o processo Java. Esta ferramenta também abordará o CVE-2021-45046.

Atualmente foi testado apenas com JDK 8, 11, 15 e 17 no Linux!

Compilação

Gradle

Para compilar no Linux, Mac e Subsistema Windows para Linux

root@kitploit:~
./gradlew build

Para compilar no Windows

root@kitploit:~
.\gradlew.bat build

Dependendo da plataforma em que você está compilando. Isso gerará build/libs/Log4jHotPatch.jar

Maven

Para compilar usando Maven use

root@kitploit:~
mvn clean package

Isso gerará um target/Log4jHotPatch.jar.

Execução

JDK 8

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

JDK 11 e mais recente

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

Executando o agente estático

Simplesmente adicione o agente à sua linha de comando java da seguinte forma:

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

Testando o agente

Há um conjunto de testes que podem ser executados fora do Gradle ou Maven.

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

Problemas conhecidos

Se você receber um erro 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)

isso significa que sua JVM está recusando qualquer tipo de ajuda porque está executando com -XX:+DisableAttachMechanism.

Se você receber um erro 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)

isso significa que você está executando como um usuário diferente (incluindo root) da JVM alvo. O JDK 8 não pode lidar com correção como usuário root (e aciona um dump de thread na JVM alvo, o que é inofensivo). No JDK 11, corrigir um processo não root a partir de um processo root funciona perfeitamente.

Se você receber um erro como este no processo alvo:

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)

isso significa que o processo alvo possui um gerenciador de segurança instalado. Procure por esta opção de linha de comando no processo alvo:

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

Se você encontrar este erro, certifique-se de estar usando a versão mais recente da ferramenta

Importante: Se você tentou corrigir como o usuário errado, pode ser necessário excluir os arquivos .attach_pid<pid> (encontrados em /tmp e/ou no CWD do processo da VM) antes de tentar novamente. Esses arquivos precisam ter a propriedade correta para que a anexação seja bem-sucedida.

Baixar ferramenta