Уязвимость 0day в системе Windows вызывает угрозы безопасности Web3. Эксперты анализируют процесс эксплуатации.

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

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

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

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

Уязвимость 0day относится к нераскрытым и неустраненным уязвимостям безопасности, аналогично концепции торговли T+0 на финансовых рынках. Такие уязвимости, если они будут обнаружены, могут быть злоупотреблены без обнаружения, что приведет к значительным разрушениям.

Обнаруженная уязвимость 0day в системе Windows позволяет злоумышленникам получить полный контроль над системой. Это может привести к утечке личной информации, сбоям в системе, потере данных, финансовым убыткам и другим серьезным последствиям. С точки зрения Web3, приватные ключи пользователей могут быть украдены, а цифровые активы - переведены. В более широком смысле, эта уязвимость может повлиять на всю экосистему Web3, работающую на основе инфраструктуры Web2.

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

Анализ уязвимостей

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

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

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

Реализация POC

Мы создали специальную многоуровневую структуру меню, содержащую четыре меню-объекта с определенными отношениями. Тщательно настроив атрибуты и отношения этих меню, можно обойти проверку функции xxxEnableMenuItem и освободить ключевые объекты меню при возврате функции. Таким образом, при последующем обращении к этому объекту будет вызвана уязвимость UAF.

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

Эксплуатация уязвимости ( EXP ) реализована

Общая идея

Мы рассмотрели два способа эксплуатации: выполнение shellcode и использование операций чтения/записи для изменения токена. В конечном итоге был выбран второй способ, поскольку он более осуществим на более поздних версиях Windows. Мы разделили весь процесс эксплуатации на два шага: как управлять значением cbwndextra через UAF и как использовать контролируемый cbwndextra для реализации стабильных операций чтения/записи.

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

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

Мы используем объект имени класса окна WNDClass, чтобы занять память освобожденного объекта меню. Проанализировав различные возможные точки записи, в конечном итоге мы выбрали использование операции AND с флагами объекта в функции xxxRedrawWindow для записи значения cb-extra HWNDClass.

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

макет памяти

Мы разработали макет памяти, состоящий из трех последовательных объектов HWND, при этом средний объект был освобожден и занят объектом HWNDClass. Объекты HWND с обеих сторон используются для обхода обнаружения и реализации окончательных операций чтения и записи. С помощью утекшего адреса дескриптора ядра мы можем точно контролировать расположение этих объектов.

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

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

Любая операция чтения использует функцию GetMenuBarInfo, а любая операция записи - функцию SetClassLongPtr. За исключением записи TOKEN, которая зависит от объекта класса второго окна, все остальные операции записи используют объект класса первого окна, реализуя это через смещение.

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

Резюме

  1. Microsoft пытается переписать код win32k с использованием Rust, в будущем такие уязвимости могут быть полностью устранены в новой системе.

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

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

  4. Что касается обнаружения уязвимостей, помимо внимания к ключевым точкам вызова функций, также следует проверять аномальное распределение памяти и операции чтения и записи данных.

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

TOKEN0.69%
Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
  • Награда
  • 6
  • Поделиться
комментарий
0/400
DeFiGraylingvip
· 4ч назад
Майкрософт на этот раз действительно заиграл по-крупному -_-
Посмотреть ОригиналОтветить0
HackerWhoCaresvip
· 4ч назад
Неудивительно, что мой компьютер так тормозит!
Посмотреть ОригиналОтветить0
ResearchChadButBrokevip
· 4ч назад
Майкрософт на этот раз провалился, да.
Посмотреть ОригиналОтветить0
GasWranglervip
· 4ч назад
технически говоря, этот недостаток в макете памяти крайне не оптимален
Посмотреть ОригиналОтветить0
wagmi_eventuallyvip
· 4ч назад
Я в шоке, это опасно.
Посмотреть ОригиналОтветить0
OneBlockAtATimevip
· 4ч назад
Эйма, в Windows снова обнаружена уязвимость.
Посмотреть ОригиналОтветить0
  • Закрепить