
Demonstra uma vulnerabilidade de escalada de privilégio local no Tencent iOA antes de 210.9.28693.62001 via ataques de symlink em C:\Windows\Temp, permitindo exclusão arbitrária de arquivos com privilégios de SYSTEM.
Versão : anterior a 210.9.28693.62001
Resumo: Descobri uma vulnerabilidade no Tencent PC Manager em que arquivos e diretórios sob C:\Windows\Temp são tratados de forma insegura. Um atacante pode explorar ataques de link simbólico (symlink) para forçar um processo com privilégios de SYSTEM a excluir arquivos arbitrários, resultando em elevação de privilégio local. Especificamente, um processo chamado LegacyKB_ioa_win.exe é iniciado periodicamente ao usar o componente “ioa”. Durante a operação, ele cria um diretório TencentDownload na pasta Temp, baixa arquivos nele e, subsequentemente, realiza exclusões como SYSTEM. Devido à validação insuficiente de caminho e à lógica de exclusão insegura, esse comportamento pode ser abusado para excluir arquivos escolhidos pelo atacante com privilégios de SYSTEM.
Foi observado que o processo "LegacyKB_*.exe" fará o seguinte com privilégio de SYSTEM :
Quando uma nova versão ou hotfix está disponível, o componente iOA baixa e executa um Legacy_*.exe da internet.
O Legacy_*.exe verifica a presença do diretório TencentDownload em C:\Windows\Temp; se não existir, ele o cria.
O Legacy_*.exe cria um subdiretório nomeado com um prefixo de til (ex.: ~) dentro de TencentDownload.
Ao final, o Legacy_.exe usa privilégios de SYSTEM para excluir o subdiretório ~ dentro de TencentDownload.
Como o diretório "C:\Windows\Temp\TencentDownload" pode ser criado pelo usuário atual e receber privilégio de "Modify" para o usuário atual, o usuário atual pode modificar e ler todo o diretório. Com essa configuração, um usuário sem privilégios pode conseguir exclusão arbitrária de arquivos criando um link simbólico para um local privilegiado (ex.: C:\Windows\System32). Além disso, um usuário mal-intencionado pode alcançar elevação de privilégio local a partir da exclusão arbitrária de arquivos/pastas.
Para realizar LPE por exclusão arbitrária de arquivo/pasta, o usuário pode executar os seguintes passos:
O usuário cria a pasta "C:\Windows\Temp\TencentDownload"
O usuário define OpLock na pasta "C:\Windows\Temp\TencentDownload~*" assim que observarmos a criação de qualquer pasta com prefixo ~
O processo "Legacy_.exe" tentará remover a pasta "C:\Windows\Temp\TencentDownload~" com privilégio de SYSTEM.
O processo "Legacy_*.exe" será pausado devido ao OpLock.
Quando o OpLock é acionado, o usuário move o arquivo "C:\Windows\Temp\TencentDownload~*" para outro lugar para esvaziar a pasta.
O usuário cria uma junção "C:\Windows\Temp\TencentDownload" para "\RPC Control".
O usuário cria um link simbólico "GLOBAL\GLOBALROOT\RPC Control~*" para a pasta/arquivo de destino (ex.: C:\Windows\System32\secrets).
O usuário libera o OpLock.
O usuário exclui o link simbólico.
O arquivo/pasta de destino (ex.: C:\Windows\System32\secrets) seria excluído.
Vídeo PoC: https://drive.google.com/file/d/1RXQgaNBDeopurcP63xmhMXDM7stHaIzO/view?usp=sharing
