
Un PoC simple pour CVE-2022-46169 alias Cacti Injection de commande non authentifiée, une vulnérabilité qui permet à un utilisateur non authentifié d'exécuter du code arbitraire sur un serveur exécutant Cacti des versions 1.2.17 à 1.2.22.
Ceci est une adaptation simple d'un PoC du scénario Cacti de Vulnhub. Vous pouvez le consulter ici
Cacti est un framework robuste et extensible de supervision opérationnelle et de gestion des pannes pour les utilisateurs du monde entier. Une vulnérabilité d'injection de commandes permet à un utilisateur non authentifié d'exécuter du code arbitraire sur un serveur exécutant Cacti des versions 1.2.17 à 1.2.22, si une source de données spécifique a été sélectionnée pour un périphérique surveillé.
Références :
Exécutez la commande suivante pour démarrer un serveur Cacti 1.2.22 :
# Compile environment
docker compose build
# Run environment
docker compose up -d
Après le démarrage du serveur, vous verrez la page de connexion à l'adresse http://localhost:8080.
Connectez-vous ensuite avec admin/admin, suivez les instructions pour initialiser l'application. En fait, il suffit de cliquer sur le bouton "Suivant" encore et encore jusqu'à voir la page de succès.
Avant de pouvoir exploiter cette vulnérabilité, vous devez ajouter un nouveau "Graph" car l'injection de commandes ne se produit pas dans le type de graphique par défaut :

Sélectionnez le type de graphique "Device - Uptime", et cliquez sur le bouton "Create" :

Après avoir terminé l'initialisation ci-dessus, vous endosserez le rôle d'un attaquant. Utilisez simplement le script suivant comme indiqué pour envoyer une requête au serveur Cacti et déclencher l'attaque par injection de commandes :

Bien qu'aucun résultat de commande n'apparaisse dans la réponse, vous pouvez constater que /tmp/test.txt a été créé avec succès.
