
Preuve de concept d'exploit pour CVE-2024-2432 démontrant une élévation de privilèges locale sur Windows via une suppression arbitraire de fichier par attaque de lien symbolique dans le client VPN Palo Alto GlobalProtect.
Sur un système Windows, il a été constaté que GlobalProtect (versions d'application 6.1.1-5 et 6.2.0-89) était vulnérable à une suppression arbitraire de fichier avec des privilèges élevés par attaque de lien symbolique, conduisant à une escalade de privilèges locaux sur la machine locale.
Il a été observé que lorsqu'un utilisateur Windows non privilégié tente de se connecter au VPN avec GlobalProtect, le processus "PanGpHip.exe" effectue les opérations suivantes avec le privilège SYSTEM :
interroge le répertoire "C:\Users\<user>\AppData\Local\Temp\waapi-*"
si un répertoire est découvert, il interroge ensuite le répertoire "C:\Users\<user>\AppData\Local\Temp\waapi-<random>\*"
si des fichiers ou répertoires sont découverts dans "C:\Users\<user>\AppData\Local\Temp\waapi-<random>*", il les supprime
enfin, il supprime le répertoire "C:\Users\<user>\AppData\Local\Temp\waapi-<random>"
remarque : le programme peut interroger des répertoires imbriqués mais échoue à ouvrir un handle sur ceux-ci. On peut donc ignorer ce cas

Étant donné que le répertoire "C:\Users\<user>\AppData\Local\Temp\waapi-<random>" peut être créé par l'utilisateur courant et se voir attribuer le privilège "Modifier" pour cet utilisateur, ce dernier peut modifier l'intégralité du répertoire. Avec cette configuration, un utilisateur non privilégié peut parvenir à une suppression arbitraire de fichier en créant un lien symbolique vers un emplacement privilégié (par exemple, C:\Windows\System32). De plus, un utilisateur malveillant peut réaliser une escalade de privilèges locaux à partir d'une suppression arbitraire de fichier.
Pour effectuer une suppression arbitraire de fichier depuis un utilisateur non privilégié, l'utilisateur peut suivre les étapes ci-dessous :
Méthode 1
L'utilisateur crée le dossier "C:\Users\<user>\AppData\Local\Temp\waapi-1234567"
L'utilisateur crée le fichier "C:\Users\<user>\AppData\Local\Temp\waapi-1234567\12345.txt"
L'utilisateur définit un OpLock sur le fichier "C:\Users\<user>\AppData\Local\Temp\waapi-1234567\12345.txt"
L'utilisateur se connecte au VPN. Le processus "PanGpHip.exe" tentera de supprimer le fichier "C:\Users\<user>\AppData\Local\Temp\waapi-1234567\12345.txt" avec le privilège SYSTEM.
Le processus "PanGpHip.exe" sera mis en pause en raison de l'OpLock
Lorsque l'OpLock est déclenché, l'utilisateur déplace le fichier "C:\Users\<user>\AppData\Local\Temp\waapi-1234567\12345.txt" ailleurs pour vider le dossier
L'utilisateur crée une jonction "C:\Users\<user>\AppData\Local\Temp\waapi-1234567" vers "\RPC Control"
L'utilisateur crée un lien symbolique "GLOBAL\GLOBALROOT\RPC Control\12345.txt" vers le fichier cible (par exemple, C:\Windows\System32\secrets.txt)
L'utilisateur libère l'OpLock
L'utilisateur supprime le lien symbolique
Le fichier cible (par exemple, C:\Windows\System32\secrets.txt) sera supprimé
.\PoC.exe del C:\windows\System32\secrets.txt 1
Méthode 2
.\PoC.exe del C:\windows\System32\secrets.txt 2
Pour effectuer une escalade de privilèges locaux à partir d'une suppression arbitraire de fichier, nous pouvons exploiter Windows Installer comme décrit dans cet article https://www.zerodayinitiative.com/blog/2022/3/16/abusing-arbitrary-file-deletes-to-escalate-privilege-and-other-great-tricks.
Méthode 1
.\PoC.exe pe RollbackScript.rbs 1
Méthode 2
.\PoC.exe pe RollbackScript.rbs 2
cmd.rbs ouvrira une invite de commandes
public_run_bat.rbs exécutera C:\Users\Public\run.bat