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
CVE-2021-44228-playground — Laboratório baseado em Docker para validar a vulnerabilidade Log4Shell (CVE-2021-44228) em aplicações web Java, testar mitigações e simular exploração de RCE via LDAP e injeção JNDI. | Kitploit
Ferramentas/GitHubGitHub/b-abderrahmane/cve-2021-44228-playground
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoAprendizado e EducaçãoLabs e Prática
GitHubb-abderrahmane/cve-2021-44228-playground

CVE-2021-44228-playground

Laboratório baseado em Docker para validar a vulnerabilidade Log4Shell (CVE-2021-44228) em aplicações web Java, testar mitigações e simular exploração de RCE via LDAP e injeção JNDI.

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 →
Compartilhar
Ver Repositório
22há 24 diasAinda não revisado

LOG4SHELL-CVE-2021-44228-Validator

Basic test

Extended test

Sobre

Esta ferramenta permite verificar se uma aplicação web Java simples é vulnerável ao CVE-2021-44228 para uma versão de Java e de Log4J fornecida pelo utilizador. Pode também [opcionalmente] aplicar uma de algumas mitigações pré-definidas. O laboratório de simulação criado por log4shell_validator.py utiliza docker-compose para simular a exploração da vulnerabilidade log4j e obter RCE na máquina vulnerável.

Como funciona

Primeiro, algumas imagens docker precisam de ser construídas. O script ./build_images.sh deve tratar disso.

A simulação de ataque é feita da seguinte forma:

  • Primeiro, uma aplicação web Java simples é iniciada num contentor na porta 8080. Quando esta aplicação recebe chamadas GET em /2021-44228-via-message, regista sempre o campo User-Agent do cabeçalho. O código para esta aplicação está disponível em ./poc_template.
  • Um servidor LDAP falso é iniciado usando marshalsec num contentor separado na porta 1389. (Este contentor encaminhará os pedidos LDAP recebidos para o servidor Nginx)
  • Um servidor web Nginx é iniciado na porta 8888; este contentor aloja o ficheiro .class compilado que queremos executar na nossa aplicação vulnerável.
  • Um contentor curl simples é iniciado, que executa o script ./exploit.sh e envia um payload para a aplicação vulnerável.

Instruções

  • Certifique-se de que python, docker, docker-compose e maven estão disponíveis localmente.
  • Construa o ficheiro jar do marshalsec executando: cd marshalsec/ ;mvn clean package -DskipTests ;cd -
  • Execute ./build-images.sh
  • Execute python log4shell_validator.py --java-version 8 --log4j-version 2.12.1

Exemplos de uso

  • Texto de ajuda do wrapper Python:
root@kitploit:~
~/workspace/CVE-2021-44228-playground$ python log4shell_validator.py --help
usage: log4shell_validator.py [-h] [--java-version JAVA_VERSION] --log4j-version LOG4J_VERSION [--no-cleanup] [--disable-trust-url] [--remove-jndi-lookup-class] [--disable-message-lookup] [--debug]
                              [--exploit-via-thread-context]

log4j-vulnerability-tester

optional arguments:
  -h, --help            show this help message and exit
  --java-version JAVA_VERSION
                        version of java to be used
  --log4j-version LOG4J_VERSION
                        version of log4j to be used
  --no-cleanup          Don't delete used containers.
  --disable-trust-url   Disable the LDAP trustURLCodebase setting on the victim app
  --remove-jndi-lookup-class
                        Remove the JNDI Lookup class from the log4j jar file
  --disable-message-lookup
                        Disable the JNDI message lookup in the victim app's JVM
  --debug               Display all container's logs
  --exploit-via-thread-context
                        By sending the payload to an HTTP handler which makes use of Custom logging with ThreadContext, attempt to bypass the no-message-lookup mitigation

Recursos disponíveis:

Este validador foi testado com várias combinações de Java7/8 e diferentes versões do Log4J2. Para mais exemplos, consulte o pipeline de testes estendidos no separador de ações do GitHub.

Por enquanto, as seguintes mitigações foram implementadas:

  • Desabilitar o trustURLCodebase para LDAP definindo a propriedade 1com.sun.jndi.ldap.object.trustURLCodebase como False.
  • Remover o ficheiro JNDILookup.class do ficheiro jar do log4j.
  • Desabilitar a pesquisa de mensagens fornecendo a seguinte flag para a JVM: -Dlog4j2.formatMsgNoLookups=True

Além disso, foi adicionada uma nova flag para testar um vetor de exploração que pode ignorar a desativação da pesquisa de mensagens: --exploit-via-thread-context

Aviso de responsabilidade

Este software foi criado puramente para fins de investigação e para o desenvolvimento de técnicas de mitigação eficazes, e não se destina a ser utilizado para atacar sistemas, exceto quando explicitamente autorizado. Os mantenedores do projeto não são responsáveis pelo uso indevido do software. Use com responsabilidade.

Baixar ferramenta