Анализ уязвимости Windows 0day: от UAF в меню до повышения привилегий в системе

robot
Генерация тезисов в процессе

Анализ и использование уязвимости 0day в системе Microsoft Windows

Введение

В прошлом месяце в обновлении безопасности Microsoft был обнаружен уязвимость повышения привилегий win32k, которая используется в дикой природе и существует только в ранних версиях Windows. В этой статье будет проанализировано, как злоумышленники продолжают использовать эту уязвимость на фоне постоянного улучшения современных мер безопасности. Анализ проводился в среде Windows Server 2016.

Numen эксклюзив: уязвимость 0day от Microsoft может разрушить игру Web3 на системном и физическом уровнях

Фон уязвимости

Уязвимость 0day относится к уязвимостям, которые не были раскрыты и исправлены, и могут быть злоупотреблены для причинения значительного ущерба. Обнаруженная уязвимость 0day в системе Windows позволяет хакерам получить полный контроль над системой, последствия могут включать, но не ограничиваются:

  • Кража личной информации
  • Сбой системы, потеря данных
  • Финансовые потери
  • Внедрение вредоносного ПО
  • Закрытый ключ был украден
  • Цифровые активы были переведены

С более широкой точки зрения, эта уязвимость может повлиять на всю экосистему Web3, работающую на инфраструктуре Web2.

Numen эксклюзив: уязвимость 0day Microsoft может потрясти Web3 на системном и физическом уровне

Анализ патчей

Патч исправил проблему многократной обработки подсчета ссылок на объект. Анализ ранних комментариев в исходном коде показывает, что оригинальный код блокировал только объект окна, не блокируя объект меню в окне, что могло привести к неправильной ссылке на объект меню.

Numen эксклюзив: уязвимость 0day Microsoft может разрушить Web3 на системном и физическом уровнях

Анализ эксплуатации уязвимостей

Анализ показывает, что в функции xxxEnableMenuItem функция MenuItemState возвращает два возможных меню: главное меню окна или подменю в меню.

Создайте специальную многослойную вложенную структуру меню и установите определенные свойства, чтобы обойти проверку функций. При возврате функции xxxRedrawTitle на уровень пользователя удалите ссылки между меню и освободите целевой объект меню. В конечном итоге в функции xxxEnableMenuItem будет ссылаться на недействительный объект меню.

Numen эксклюзив: уязвимость 0day от Microsoft может разрушить Web3 на системном и физическом уровнях

Реализация эксплуатации уязвимости

Общая идея

Рассмотрим два направления использования:

  1. Выполнение кода shellcode
  2. Изменение адреса токена с использованием операций чтения и записи

Выберите второй вариант, разделив процесс на две задачи:

  • Как использовать уязвимость UAF для управления значением cbwndextra
  • Как реализовать стабильные операции чтения и записи

Numen эксклюзив: уязвимость 0day от Microsoft может разрушить игру Web3 на системном и физическом уровнях

Начальная запись данных

Используйте объект имени окна из класса WNDClass для освобождения занимаемого объекта меню. Найдите момент, когда можно записать данные в функции xxxRedrawWindow.

В конечном итоге выбор осуществляется путем записи параметра cb-extra класса HWND через операцию AND с флагом 2.

Numen эксклюзив: уязвимость Microsoft 0day может перевернуть Web3 на системном и физическом уровне

стабильная память

Создайте три последовательных объекта HWND, освободите средний объект и используйте объект HWNDClass для его замещения. Передние и задние объекты HWND используются для:

  • Предоставить параметры проверки знаков
  • Предоставление средств для чтения и записи примитивов

Точно определить порядок размещения объектов по утечке адреса дескриптора ядра.

Numen эксклюзив: уязвимость Microsoft 0day может разрушить игру Web3 на системном + физическом уровне

Реализация примитивов чтения и записи

  • Произвольное чтение: GetMenuBarInfo()
  • Произвольная запись: SetClassLongPtr()

Кроме записи TOKEN, все другие операции записи используют объект класса первого окна.

Резюме

  1. Уязвимость win32k может быть устранена в новой версии Windows.

  2. Процесс эксплуатации уязвимости относительно прост, в основном полагается на утечку адреса десктопного кучи.

  3. Обнаружение уязвимостей может зависеть от более полного контроля покрытия кода

  4. Обнаружение аномальных операций чтения и записи памяти помогает выявить аналогичные уязвимости.

Numen эксклюзив: уязвимость 0day от Microsoft может разрушить Web3 на системном и физическом уровне

TOKEN3.56%
Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
  • Награда
  • 3
  • Репост
  • Поделиться
комментарий
0/400
MidnightTradervip
· 22ч назад
Ещё одна большая дыра, Windows действительно не справляется.
Посмотреть ОригиналОтветить0
TokenDustCollectorvip
· 22ч назад
Уязвимость в Microsoft довольно серьезная, Закрытый ключ можно украсть.
Посмотреть ОригиналОтветить0
HalfIsEmptyvip
· 22ч назад
Ай-ай, снова перевернулся~
Посмотреть ОригиналОтветить0
  • Закрепить