
Demuestra una vulnerabilidad de escalada de privilegios local en Tencent iOA anterior a 210.9.28693.62001 mediante ataques de enlace simbólico en C:\Windows\Temp, lo que permite la eliminación arbitraria de archivos con privilegios SYSTEM.
Version : before 210.9.28693.62001
Summary: Descubrí una vulnerabilidad en Tencent PC Manager donde los archivos y directorios bajo C:\Windows\Temp se manejan de forma insegura. Un atacante puede aprovechar ataques de enlace simbólico (symlink) para obligar a un proceso con privilegios SYSTEM a eliminar archivos arbitrarios, resultando en una escalada de privilegios local. Específicamente, un proceso llamado LegacyKB_ioa_win.exe se ejecuta periódicamente cuando se usa el componente "ioa". Durante su operación, crea un directorio TencentDownload bajo la carpeta Temp, descarga archivos en él y posteriormente realiza eliminaciones como SYSTEM. Debido a una validación de ruta insuficiente y una lógica de eliminación insegura, este comportamiento puede ser abusado para eliminar archivos elegidos por el atacante con privilegios SYSTEM.
Se observó que el proceso "LegacyKB_*.exe" hará lo siguiente con privilegio SYSTEM :
Cuando una nueva versión o parche está disponible, el componente iOA descarga y ejecuta un Legacy_*.exe desde internet.
Legacy_*.exe verifica la presencia del directorio TencentDownload bajo C:\Windows\Temp; si no existe, lo crea.
Legacy_*.exe crea un subdirectorio nombrado con un prefijo de tilde (ej., ~) dentro de TencentDownload.
Al final, Legacy_.exe usa privilegios SYSTEM para eliminar el subdirectorio ~ dentro de TencentDownload.
Dado que el directorio "C:\Windows\Temp\TencentDownload" podría ser creado por el usuario actual y se le asigna el privilegio "Modify" al usuario actual, el usuario actual podría modificar y leer todo el directorio. Con esta configuración, un usuario sin privilegios puede lograr la eliminación arbitraria de archivos creando un enlace simbólico a una ubicación privilegiada (ej., C:\Windows\System32). Además, un usuario malintencionado podría lograr una escalada de privilegios local a partir de la eliminación arbitraria de archivos/carpetas.
Para realizar LPE mediante eliminación arbitraria de archivos/carpetas , el usuario podría seguir los siguientes pasos:
El usuario crea la carpeta "C:\Windows\Temp\TencentDownload"
El usuario establece un OpLock en la carpeta "C:\Windows\Temp\TencentDownload~*" una vez que observamos que se crea cualquier carpeta con prefijo ~
El proceso "Legacy_.exe" intentará eliminar la carpeta "C:\Windows\Temp\TencentDownload~" con privilegio SYSTEM.
El proceso "Legacy_*.exe" se pausará debido al OpLock
Cuando se activa el OpLock, el usuario mueve el archivo "C:\Windows\Temp\TencentDownload~*" a otro lugar para vaciar la carpeta
El usuario crea un junction "C:\Windows\Temp\TencentDownload" a "\RPC Control"
El usuario crea un enlace simbólico "GLOBAL\GLOBALROOT\RPC Control~*" a la carpeta/archivo destino (ej., C:\Windows\System32\secrets)
El usuario libera el OpLock
El usuario elimina el enlace simbólico
El archivo/carpeta destino (ej., C:\Windows\System32\secrets) sería eliminado
Video PoC :https://drive.google.com/file/d/1RXQgaNBDeopurcP63xmhMXDM7stHaIzO/view?usp=sharing
