CVE-2024-2432 Palo Alto GlobalProtect EoP
Em sistemas Windows, foi descoberto que o GlobalProtect (versão 6.1.1-5 e 6.2.0-89 do aplicativo) estava vulnerável à exclusão arbitrária de arquivos com privilégios elevados por meio de ataque de link simbólico, levando à escalada local de privilégios na máquina local.
Foi observado que, quando um usuário Windows sem privilégios tenta conectar-se à VPN com o GlobalProtect, o processo "PanGpHip.exe" faz o seguinte com privilégio de SYSTEM:
- consulta o diretório "C:\Users\<user>\AppData\Local\Temp\waapi-*"
- se algum diretório for descoberto, ele consulta ainda o diretório "C:\Users\<user>\AppData\Local\Temp\waapi-<random>\*"
- se quaisquer arquivos ou diretórios forem descobertos em "C:\Users\<user>\AppData\Local\Temp\waapi-<random>*", ele os remove
- por fim, remove o diretório "C:\Users\<user>\AppData\Local\Temp\waapi-<random>"
- observação: o programa pode consultar diretórios aninhados, mas falha ao abrir um handle para eles. Portanto, podemos ignorar esse caso

Como o diretório "C:\Users\<user>\AppData\Local\Temp\waapi-<random>" pode ser criado pelo usuário atual e receber o privilégio "Modify" para o usuário atual, o usuário atual pode modificar todo o diretório. Com essa configuração, um usuário sem privilégios é capaz de realizar a exclusão arbitrária de arquivos criando um link simbólico para um local privilegiado (por exemplo, C:\Windows\System32). Além disso, um usuário mal-intencionado pode obter escalada local de privilégios a partir da exclusão arbitrária de arquivos.
Para realizar a exclusão arbitrária de arquivos a partir de um usuário sem privilégios, o usuário pode executar os seguintes passos:
Método 1
- O usuário cria a pasta "C:\Users\<user>\AppData\Local\Temp\waapi-1234567"
- O usuário cria o arquivo "C:\Users\<user>\AppData\Local\Temp\waapi-1234567\12345.txt"
- O usuário define OpLock no arquivo "C:\Users\<user>\AppData\Local\Temp\waapi-1234567\12345.txt"
- O usuário conecta-se à VPN. O processo "PanGpHip.exe" tentará remover o arquivo "C:\Users\<user>\AppData\Local\Temp\waapi-1234567\12345.txt" com privilégio de SYSTEM.
- O processo "PanGpHip.exe" será pausado devido ao OpLock
- Quando o OpLock for acionado, o usuário move o arquivo "C:\Users\<user>\AppData\Local\Temp\waapi-1234567\12345.txt" para outro lugar para esvaziar a pasta
- O usuário cria um junction "C:\Users\<user>\AppData\Local\Temp\waapi-1234567" para "\RPC Control"
- O usuário cria um link simbólico "GLOBAL\GLOBALROOT\RPC Control\12345.txt" para o arquivo de destino (por exemplo, C:\Windows\System32\secrets.txt)
- O usuário libera o OpLock
- O usuário exclui o link simbólico
- O arquivo de destino (por exemplo, C:\Windows\System32\secrets.txt) seria excluído
.\PoC.exe del C:\windows\System32\secrets.txt 1
Método 2
- O usuário cria as pastas "C:\Users<user>\AppData\Local\Temp\waapi-1234567" e "C:\Users\<user>\AppData\Local\Temp\fakedir-1234567"
- O usuário cria os arquivos "C:\Users<user>\AppData\Local\Temp\fakedir-1234567\11111.txt" e "C:\Users\<user>\AppData\Local\Temp\fakedir-1234567\12345.txt"
- O usuário cria um junction "C:\Users<user>\AppData\Local\Temp\waapi-1234567" para "C:\Users\<user>\AppData\Local\Temp\fakedir-1234567"
- O usuário define OpLock no arquivo "C:\Users\<user>\AppData\Local\Temp\fakedir-1234567\11111.txt"
- O usuário conecta-se à VPN. O processo "PanGpHip.exe" tentará remover o arquivo "C:\Users\<user>\AppData\Local\Temp\waapi-1234567\11111.txt" com privilégio de SYSTEM.
- O processo "PanGpHip.exe" será pausado devido ao OpLock
- O usuário remove o junction existente e cria um junction "C:\Users\<user>\AppData\Local\Temp\waapi-1234567" para "\RPC Control"
- O usuário cria um link simbólico "GLOBAL\GLOBALROOT\RPC Control\12345.txt" para o arquivo de destino (por exemplo, C:\Windows\System32\secrets.txt)
- O usuário libera o OpLock
- O usuário exclui o link simbólico
- O arquivo de destino (por exemplo, C:\Windows\System32\secrets.txt) seria excluído
.\PoC.exe del C:\windows\System32\secrets.txt 2
Para realizar a escalada local de privilégios a partir da exclusão arbitrária de arquivos, podemos usar o Windows Installer conforme descrito neste artigo https://www.zerodayinitiative.com/blog/2022/3/16/abusing-arbitrary-file-deletes-to-escalate-privilege-and-other-great-tricks.
Método 1
.\PoC.exe pe RollbackScript.rbs 1
Método 2
.\PoC.exe pe RollbackScript.rbs 2
cmd.rbs abrirá um prompt de comando
public_run_bat.rbs executará C:\Users\Public\run.bat
Cronologia
- 06/25/2023 - Vulnerabilidade reportada à Palo Alto
- 10/09/2023 - Palo Alto confirmou a vulnerabilidade
- 13/03/2024 - Publicação
Referência