Google обнаружил неисправленную уязвимость в системе безопасности Windows 8.1
3 минута. читать
Опубликовано
Прочтите нашу страницу раскрытия информации, чтобы узнать, как вы можете помочь MSPoweruser поддержать редакционную команду. Читать далее
Исследователь Google обнаружил неисправленную уязвимость в системе безопасности Windows 8.1. Исследователь Google разместил эту ошибку на странице Google Security Research, и для ее раскрытия требуется 90-дневный срок. Если в течение 90 дней не будет выпущено широко доступное исправление, отчет об ошибке автоматически станет общедоступным. Информации о том, признали ли Microsoft ошибку или работают над ней, нет. Но я считаю безответственным шагом со стороны Google публиковать уязвимости в таких продуктах, как Windows 8, которыми ежедневно пользуются миллионы людей.
Следующая информация была размещена об ошибке,
В обновлении Windows 8.1 системный вызов NtApphelpCacheControl (код фактически находится в ahcache.sys) позволяет кэшировать данные о совместимости приложений для быстрого повторного использования при создании новых процессов. Обычный пользователь может запрашивать кэш, но не может добавлять новые кэшированные записи, поскольку эта операция разрешена только администраторам. Это проверяется в функции AhcVerifyAdminContext.
Эта функция имеет уязвимость, из-за которой она неправильно проверяет токен олицетворения вызывающего объекта, чтобы определить, является ли пользователь администратором. Он считывает маркер олицетворения вызывающего объекта с помощью PsReferenceImpersonationToken, а затем сравнивает SID пользователя в маркере с SID LocalSystem. Он не проверяет уровень олицетворения токена, поэтому можно получить токен идентификации в вашем потоке из локального системного процесса и обойти эту проверку. Для этой цели PoC злоупотребляет службой BITS и COM, чтобы получить токен олицетворения, но, вероятно, есть и другие способы.
Это как раз тот случай, когда нужно найти способ использовать уязвимость. В PoC делается запись в кэше для исполняемого файла с автоматическим повышением прав UAC (скажем, ComputerDefaults.exe) и настраивается кэш так, чтобы он указывал на запись совместимости приложений для regsvr32, что заставляет прокладку RedirectExe перезагружать regsvr32.exe. Однако можно было бы использовать любой исполняемый файл, хитрость заключалась бы в том, чтобы найти подходящую уже существующую конфигурацию совместимости приложений для злоупотребления.
Неясно, уязвима ли Windows 7, поскольку в пути кода для обновления есть проверка привилегий TCB (хотя похоже, что в зависимости от флагов это можно обойти). Не было предпринято никаких усилий, чтобы проверить это в Windows 7. ПРИМЕЧАНИЕ. Это не ошибка в UAC, это просто использование автоматического повышения прав UAC в демонстрационных целях.
PoC был протестирован в обновлении Windows 8.1, как в 32-разрядной, так и в 64-разрядной версиях. Я бы порекомендовал работать на 32-битной версии, чтобы быть уверенным. Для проверки выполните следующие действия:
1) Поместите AppCompatCache.exe и Testdll.dll на диск
2) Убедитесь, что UAC включен, текущий пользователь является администратором с разделенным токеном, а параметр UAC установлен по умолчанию (нет запроса для определенных исполняемых файлов).
3) Запустите AppCompatCache из командной строки с помощью командной строки «AppCompatCache.exe c:windowssystem32ComputerDefaults.exe testdll.dll».
4) В случае успеха калькулятор должен работать от имени администратора. Если это не сработает в первый раз (и вы получите программу ComputerDefaults), повторно запустите эксплойт из 3, иногда при первом запуске возникает проблема с кэшированием/временем.