CVE-2024-2432 Palo Alto GlobalProtect EoP
Windows システムにおいて、GlobalProtect(アプリバージョン 6.1.1-5 および 6.2.0-89)が、シンボリックリンク攻撃による昇格特権での任意ファイル削除に対して脆弱であり、ローカルマシン上でのローカル特権昇格につながることが判明しました。
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>" は現在のユーザーが作成でき、現在のユーザーに「Modify」権限が割り当てられるため、現在のユーザーはディレクトリ全体を変更できる。この設定により、非特権ユーザーは特権のある場所(例: 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
- ユーザーはフォルダ "C:\Users<user>\AppData\Local\Temp\waapi-1234567" と "C:\Users\<user>\AppData\Local\Temp\fakedir-1234567" を作成する
- ユーザーはファイル "C:\Users<user>\AppData\Local\Temp\fakedir-1234567\11111.txt" を作成し、ユーザーはファイル "C:\Users\<user>\AppData\Local\Temp\fakedir-1234567\12345.txt" を作成する
- ユーザーはジャンクション "C:\Users<user>\AppData\Local\Temp\waapi-1234567" を "C:\Users\<user>\AppData\Local\Temp\fakedir-1234567" に作成する
- ユーザーはファイル "C:\Users\<user>\AppData\Local\Temp\fakedir-1234567\11111.txt" に OpLock を設定する
- ユーザーは VPN に接続する。プロセス "PanGpHip.exe" は SYSTEM 権限でファイル "C:\Users\<user>\AppData\Local\Temp\waapi-1234567\11111.txt" を削除しようとする。
- プロセス "PanGpHip.exe" は OpLock により一時停止される
- ユーザーは既存のジャンクションを削除し、ジャンクション "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 2
任意ファイル削除からローカル特権昇格を実行するには、この記事 https://www.zerodayinitiative.com/blog/2022/3/16/abusing-arbitrary-file-deletes-to-escalate-privilege-and-other-great-tricks で説明されているように、Windows インストーラーを利用できる。
方法 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 を実行する
タイムライン
- 06/25/2023 - Palo Alto に脆弱性を報告
- 10/09/2023 - Palo Alto が脆弱性を確認
- 13/03/2024 - 公開
参考