
在 Windows 系统上,发现 GlobalProtect(App 版本 6.1.1-5 和 6.2.0-89)存在通过符号链接攻击以 SYSTEM 权限进行任意文件删除的漏洞,从而导致本地权限提升。
经观察,当 Windows 非特权用户尝试使用 GlobalProtect 连接 VPN 时,进程 "PanGpHip.exe" 会以 SYSTEM 权限执行以下操作:
查询目录 "C:\Users\<user>\AppData\Local\Temp\waapi-*"
如果发现任何目录,将进一步查询目录 "C:\Users\<user>\AppData\Local\Temp\waapi-<random>\*"
如果在 "C:\Users\<user>\AppData\Local\Temp\waapi-<random>*" 中发现任何文件或目录,则将其删除
最后删除目录 "C:\Users\<user>\AppData\Local\Temp\waapi-<random>"
补充说明:程序可以查询嵌套目录,但未能打开其句柄。因此可忽略此情况

由于目录 "C:\Users\<user>\AppData\Local\Temp\waapi-<random>" 可由当前用户创建,并赋予当前用户 "修改" 权限,因此当前用户可以修改整个目录。在此设置下,非特权用户可通过创建指向特权位置(例如 C:\Windows\System32)的符号链接来实现任意文件删除。此外,恶意用户可通过任意文件删除实现本地权限提升。
要从非特权用户执行任意文件删除,用户可以执行以下步骤:
方法 1
用户创建文件夹 "C:\Users\<user>\AppData\Local\Temp\waapi-1234567"
用户创建文件 "C:\Users\<user>\AppData\Local\Temp\waapi-1234567\12345.txt"
用户在文件 "C:\Users\<user>\AppData\Local\Temp\waapi-1234567\12345.txt" 上设置 OpLock
用户连接 VPN。进程 "PanGpHip.exe" 将尝试以 SYSTEM 权限删除文件 "C:\Users\<user>\AppData\Local\Temp\waapi-1234567\12345.txt"
进程 "PanGpHip.exe" 因 OpLock 而暂停
当 OpLock 被触发时,用户将文件 "C:\Users\<user>\AppData\Local\Temp\waapi-1234567\12345.txt" 移动到其他位置以清空文件夹
用户创建从 "C:\Users\<user>\AppData\Local\Temp\waapi-1234567" 到 "\RPC Control" 的目录交接点
用户创建从 "GLOBAL\GLOBALROOT\RPC Control\12345.txt" 到目标文件(例如 C:\Windows\System32\secrets.txt)的符号链接
用户释放 OpLock
用户删除符号链接
目标文件(例如 C:\Windows\System32\secrets.txt)将被删除
.\PoC.exe del C:\windows\System32\secrets.txt 1
方法 2
.\PoC.exe del C:\windows\System32\secrets.txt 2
要通过任意文件删除实现本地权限提升,我们可以按照这篇文章所述利用 Windows Installer:https://www.zerodayinitiative.com/blog/2022/3/16/abusing-arbitrary-file-deletes-to-escalate-privilege-and-other-great-tricks。
方法 1
.\PoC.exe pe RollbackScript.rbs 1
方法 2
.\PoC.exe pe RollbackScript.rbs 2
cmd.rbs 将启动命令提示符
public_run_bat.rbs 将执行 C:\Users\Public\run.bat