Спецпроекты

Безопасность Пользователю Техника Маркет

ПК Lenovo можно взломать за 10 минут. Компания отказалась чинить «дыру»

В предустанавливаемой утилите Lenovo, которая использовалась с 2011 г. по 2018 г., найдена уязвимость, позволяющая повышать привилегии пользователя. Lenovo не стала патчить брешь, а просто порекомендовала пользователям перейти на другие утилиты.

Уязвимость в LSC

В программном решении Lenovo Solution Centre (LSC), которое предустановлено на многие ПК Lenovo, найдена уязвимость повышения привилегий, позволяющая взломать устройство за 10 минут. Брешь была найдена исследователями из проекта Pen Test Partners. Она получила номер CVE-2019-6177.

LSC — это утилита, которая осуществляет диагностику и мониторинг состояния ПК Lenovo под управлением Windows. Она предустанавливается на ПК вендора с 2011 г. Официально поддержка LSC была прекращена в ноябре 2018 г., перед этим в октябре был выпущен последний релиз.

Исследователи из Pen Test Partners сообщили Lenovo об уязвимости в мае 2019 г. Компания не стала закрывать дыру, вместо этого порекомендовав пользователям удалить LSC и перейти на решения Lenovo Vantage или Lenovo Diagnostics. Как заметили исследователи, она также задним числом изменила срок окончания поддержки LSC на апрель 2018 г.

Суть проблемы

Уязвимость позволяет осуществить перезапись списка избирательного управления доступом (DACL). Это значит, что процесс Lenovo с высокими привилегиями перезаписывает привилегии файла, которым может управлять пользователь с низкими привилегиями. Таким образом высокопривилегированный процесс предоставляет всем пользователям в системе полный контроль над этим файлом.

При данном сценарии пользователь с низкими привилегиями должен записать файл жесткой ссылки в контролируемую локацию. Жесткая ссылка — это псевдофайл, который на самом деле указывает на любой другой файл в системе, который пользователь с низкими привилегиями не может контролировать.

Lenovo не будет закрывать уязвимость в распространенной утилите

Когда процесс запускается, он меняет привилегии файла с жесткой ссылкой на разрешительные, что позволяет пользователю с низкими привилегиями получить полный контроль над файлом. Это может быть использовано для выполнения произвольного кода в системе с привилегиями администратора или SYSTEM.

Когда LSC устанавливается, он добавляет задачу \Lenovo\Lenovo Solution Center Launcher, которая запускается с самыми высокими привилегиями. Задача запускает бинарный файл LSC.Services.UpdateStatusService.exe через 10 минут после события входа. Этот файл перезаписывает DACL всех файлов в каталоге C:\ProgramData\Lenovo\LSC\log\, чтобы предоставить членам группы «Аутентифицированные пользователи» полный доступ. При этом аутентифицированным пользователем является каждый, и таким образом каждый получает доступ к этим файлам.

Как это эксплуатировать

Чтобы проэксплуатировать уязвимость, нужно создать в C:\ProgramData\Lenovo\LSC\log\ жесткую ссылку, которая указывает на файл, чьи привилегии должны быть переписаны. Это можно сделать с помощью скриптов CreateHardlink.exe от Джеймса Форшоу (James Forshaw) из Google Project Zero или Native-HardLink PowerShell от FuzzySecurity.

Созданный файл может иметь любое название. Жесткая ссылка может указывать, например, на системный файл hosts, доступ к которому есть только у администратора. После этого надо выйти из системы, снова зайти, и через 10 минут DACL файла hosts будет переписан.

Чтобы превратить уязвимость в настоящее оружие, можно, например, перезаписать DACL библиотеки DLL, которая загружается процессом, выполняющимся как SYSTEM или с высокой степенью целостности. Затем нужно перезаписать библиотеку с помощью какого-нибудь шелл-кода и запустить процесс.

Валерия Шмырова

Короткая ссылка