
Эксплойт-доказательство концепции для CVE-2024-2432, демонстрирующий локальное повышение привилегий в Windows через произвольное удаление файлов с помощью атаки через символические ссылки в клиенте VPN Palo Alto GlobalProtect.
В системе Windows было обнаружено, что GlobalProtect (версии приложения 6.1.1-5 и 6.2.0-89) был уязвим для произвольного удаления файлов с повышенными привилегиями через атаку символической ссылки, что приводит к локальному повышению привилегий на локальной машине.
Было замечено, что когда непривилегированный пользователь Windows пытается подключиться к VPN с помощью GlobalProtect, процесс "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"
Пользователь устанавливает OpLock на файл "C:\Users\<user>\AppData\Local\Temp\waapi-1234567\12345.txt"
Пользователь подключается к VPN. Процесс "PanGpHip.exe" попытается удалить файл "C:\Users\<user>\AppData\Local\Temp\waapi-1234567\12345.txt" с привилегией SYSTEM.
Процесс "PanGpHip.exe" будет приостановлен из-за OpLock
Когда OpLock срабатывает, пользователь перемещает файл "C:\Users\<user>\AppData\Local\Temp\waapi-1234567\12345.txt" в другое место, чтобы опустошить папку
Пользователь создает junction "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, как описано в этой статье 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