
Sui sistemi Windows, è stato riscontrato che GlobalProtect (versione app 6.1.1-5 e 6.2.0-89) era vulnerabile all'eliminazione arbitraria di file con privilegi elevati tramite attacco di collegamento simbolico, portando a un'escalation di privilegi locale sulla macchina.
È stato osservato che quando un utente Windows senza privilegi tenta di connettersi alla VPN con GlobalProtect, il processo "PanGpHip.exe" esegue le seguenti operazioni con privilegi SYSTEM:
interroga la directory "C:\Users\<user>\AppData\Local\Temp\waapi-*"
se viene individuata una qualsiasi directory, interroga ulteriormente la directory "C:\Users\<user>\AppData\Local\Temp\waapi-<random>\*"
se vengono individuati file o directory in "C:\Users\<user>\AppData\Local\Temp\waapi-<random>*", li rimuove
infine rimuove la directory "C:\Users\<user>\AppData\Local\Temp\waapi-<random>"
nota a margine: il programma può interrogare directory nidificate ma non riesce ad aprire un handle su di esse. Quindi possiamo ignorare questo caso

Poiché la directory "C:\Users\<user>\AppData\Local\Temp\waapi-<random>" può essere creata dall'utente corrente e a essa viene assegnato il privilegio "Modify" per l'utente corrente, l'utente corrente può modificare l'intera directory. Con questa configurazione, un utente senza privilegi è in grado di ottenere l'eliminazione arbitraria di file creando un collegamento simbolico verso una posizione privilegiata (ad es., C:\Windows\System32). Inoltre, un utente malintenzionato può ottenere un'escalation di privilegi locale a partire dall'eliminazione arbitraria di file.
Per eseguire l'eliminazione arbitraria di file da un utente senza privilegi, l'utente può seguire i seguenti passaggi:
Metodo 1
L'utente crea la cartella "C:\Users\<user>\AppData\Local\Temp\waapi-1234567"
L'utente crea il file "C:\Users\<user>\AppData\Local\Temp\waapi-1234567\12345.txt"
L'utente imposta un OpLock sul file "C:\Users\<user>\AppData\Local\Temp\waapi-1234567\12345.txt"
L'utente si connette alla VPN. Il processo "PanGpHip.exe" tenterà di rimuovere il file "C:\Users\<user>\AppData\Local\Temp\waapi-1234567\12345.txt" con privilegi SYSTEM.
Il processo "PanGpHip.exe" verrà sospeso a causa dell'OpLock
Quando l'OpLock viene attivato, l'utente sposta il file "C:\Users\<user>\AppData\Local\Temp\waapi-1234567\12345.txt" altrove per svuotare la cartella
L'utente crea una giunzione "C:\Users\<user>\AppData\Local\Temp\waapi-1234567" verso "\RPC Control"
L'utente crea un collegamento simbolico "GLOBAL\GLOBALROOT\RPC Control\12345.txt" al file target (ad es., C:\Windows\System32\secrets.txt)
L'utente rilascia l'OpLock
L'utente elimina il collegamento simbolico
Il file target (ad es., C:\Windows\System32\secrets.txt) verrebbe eliminato
.\PoC.exe del C:\windows\System32\secrets.txt 1
Metodo 2
.\PoC.exe del C:\windows\System32\secrets.txt 2
Per eseguire l'escalation di privilegi locale a partire dall'eliminazione arbitraria di file, possiamo sfruttare Windows Installer come descritto in questo articolo https://www.zerodayinitiative.com/blog/2022/3/16/abusing-arbitrary-file-deletes-to-escalate-privilege-and-other-great-tricks.
Metodo 1
.\PoC.exe pe RollbackScript.rbs 1
Metodo 2
.\PoC.exe pe RollbackScript.rbs 2
cmd.rbs avvierà il prompt dei comandi
public_run_bat.rbs eseguirà C:\Users\Public\run.bat