CVE-2024-2432 Palo Alto GlobalProtect – Privilegieneskalation
Auf Windows-Systemen wurde festgestellt, dass GlobalProtect (App-Version 6.1.1-5 und 6.2.0-89) anfällig für das Löschen beliebiger Dateien mit erhöhten Rechten durch einen symbolischen Link-Angriff war, was zu einer lokalen Privilegieneskalation auf dem lokalen Rechner führt.
Es wurde beobachtet, dass wenn ein Windows-Benutzer ohne ausreichende Rechte versucht, eine VPN-Verbindung mit GlobalProtect herzustellen, der Prozess „PanGpHip.exe“ Folgendes mit SYSTEM-Berechtigung ausführt:
- fragt das Verzeichnis „C:\Users\<user>\AppData\Local\Temp\waapi-*“ ab
- falls ein Verzeichnis entdeckt wird, fragt es weiterhin das Verzeichnis „C:\Users\<user>\AppData\Local\Temp\waapi-<random>\*“ ab
- falls Dateien oder Verzeichnisse in „C:\Users\<user>\AppData\Local\Temp\waapi-<random>*“ entdeckt wurden, entfernt es diese
- abschließend wird das Verzeichnis „C:\Users\<user>\AppData\Local\Temp\waapi-<random>“ entfernt
- Anmerkung: Das Programm kann verschachtelte Verzeichnisse abfragen, es konnte jedoch keinen Handle darauf öffnen. Daher können wir diesen Fall ignorieren.

Da das Verzeichnis „C:\Users\<user>\AppData\Local\Temp\waapi-<random>“ vom aktuellen Benutzer erstellt werden kann und diesem die Berechtigung „Ändern“ zugewiesen wird, kann der aktuelle Benutzer das gesamte Verzeichnis ändern. Mit dieser Konfiguration kann ein unprivilegierter Benutzer das Löschen beliebiger Dateien erreichen, indem er einen symbolischen Link zu einem privilegierten Speicherort (z. B. C:\Windows\System32) erstellt. Darüber hinaus könnte ein böswilliger Benutzer eine lokale Privilegieneskalation durch das Löschen beliebiger Dateien erreichen.
Um als unprivilegierter Benutzer beliebige Dateien löschen zu können, kann der Benutzer die folgenden Schritte ausführen:
Method 1
- Benutzer erstellt Ordner „C:\Users\<user>\AppData\Local\Temp\waapi-1234567“
- Benutzer erstellt Datei „C:\Users\<user>\AppData\Local\Temp\waapi-1234567\12345.txt“
- Benutzer setzt OpLock auf Datei „C:\Users\<user>\AppData\Local\Temp\waapi-1234567\12345.txt“
- Benutzer verbindet VPN. Der Prozess „PanGpHip.exe“ wird versuchen, die Datei „C:\Users\<user>\AppData\Local\Temp\waapi-1234567\12345.txt“ mit SYSTEM-Berechtigung zu entfernen.
- Der Prozess „PanGpHip.exe“ wird aufgrund des OpLocks angehalten.
- Wenn der OpLock ausgelöst wird, verschiebt der Benutzer die Datei „C:\Users\<user>\AppData\Local\Temp\waapi-1234567\12345.txt“ an einen anderen Ort, um den Ordner zu leeren.
- Benutzer erstellt Junction „C:\Users\<user>\AppData\Local\Temp\waapi-1234567“ zu „\RPC Control“
- Benutzer erstellt symbolischen Link „GLOBAL\GLOBALROOT\RPC Control\12345.txt“ zur Zieldatei (z. B. C:\Windows\System32\secrets.txt)
- Benutzer gibt OpLock frei
- Benutzer löscht symbolischen Link
- Die Zieldatei (z. B. C:\Windows\System32\secrets.txt) wird gelöscht
.\PoC.exe del C:\windows\System32\secrets.txt 1
Method 2
- Benutzer erstellt Ordner „C:\Users<user>\AppData\Local\Temp\waapi-1234567“ und „C:\Users\<user>\AppData\Local\Temp\fakedir-1234567“
- Benutzer erstellt Datei „C:\Users<user>\AppData\Local\Temp\fakedir-1234567\11111.txt“ und Benutzer erstellt Datei „C:\Users\<user>\AppData\Local\Temp\fakedir-1234567\12345.txt“
- Benutzer erstellt Junction „C:\Users<user>\AppData\Local\Temp\waapi-1234567“ zu „C:\Users\<user>\AppData\Local\Temp\fakedir-1234567“
- Benutzer setzt OpLock auf Datei „C:\Users\<user>\AppData\Local\Temp\fakedir-1234567\11111.txt“
- Benutzer verbindet VPN. Der Prozess „PanGpHip.exe“ wird versuchen, die Datei „C:\Users\<user>\AppData\Local\Temp\waapi-1234567\11111.txt“ mit SYSTEM-Berechtigung zu entfernen.
- Der Prozess „PanGpHip.exe“ wird aufgrund des OpLocks angehalten.
- Benutzer entfernt die vorhandene Junction und erstellt Junction „C:\Users\<user>\AppData\Local\Temp\waapi-1234567“ zu „\RPC Control“
- Benutzer erstellt symbolischen Link „GLOBAL\GLOBALROOT\RPC Control\12345.txt“ zur Zieldatei (z. B. C:\Windows\System32\secrets.txt)
- Benutzer gibt OpLock frei
- Benutzer löscht symbolischen Link
- Die Zieldatei (z. B. C:\Windows\System32\secrets.txt) wird gelöscht
.\PoC.exe del C:\windows\System32\secrets.txt 2
Um eine lokale Privilegieneskalation durch das Löschen beliebiger Dateien durchzuführen, können wir den Windows Installer wie in diesem Artikel beschrieben nutzen https://www.zerodayinitiative.com/blog/2022/3/16/abusing-arbitrary-file-deletes-to-escalate-privilege-and-other-great-tricks.
Method 1
.\PoC.exe pe RollbackScript.rbs 1
Method 2
.\PoC.exe pe RollbackScript.rbs 2
cmd.rbs startet eine Eingabeaufforderung
public_run_bat.rbs führt C:\Users\Public\run.bat aus
Zeitleiste
- 25.06.2023 – Schwachstelle an Palo Alto gemeldet
- 09.10.2023 – Palo Alto bestätigte die Schwachstelle
- 13.03.2024 – Veröffentlichung
Referenz