Вчера Microsoft выпустила исправление, которое устраняло возможность получения привилегий администратора через Microsoft Utility Manager. Сегодня раскрываются подробности обнаруженной уязвимости.
Нажимая комбинацию клавиш '<windows key>+U', пользователь может запустить Windows Utility Manager. Процесс "utility manager", запущенный процессом Winlogon, запускается с 'system' привилегиями в рабочем столе пользователя.
Utility manager может быть также запущен перед входом в систему, нажимая <windows key>+U.
Главное окно Utility Manager управление ListView, которое отображает доступные средства достижимости (accessibility). WindWindows сообщения, посланные этому управлению, должным образом не проверяются, что позволяет атакующему выполнять множество опасных взаимодействий с процессом Utility Manager.
Несколько интересных сообщений в этом контексте
- LVM_SORTITEMS и LVM_SORTITEMSEX, которые инструктируют управление "сортировать" содержание, основываясь на функции обратного вызова (callback function), адрес которой определен в сообщении.
Изменяя текст окна, и затем посылая LVM_SORTITEMS сообщение в список управления, возможно заставить процесс Utility Manager выполнить код, представленный низко привилегированным пользователем. Этот код будет выполнен с привилегиями local 'system' учетной записи.
Необходимый код эксплоита функционально эквивалентен предыдущему 'shatter' коду, с единственным существенным различием, являющимся в использовании
LVM_SORTITEMS сообщения, вместо WM_TIMER сообщения.
Уязвимость обнаружена в Windows 2000 SP3.