Уязвимость системы Windows от Microsoft может привести к рискам безопасности Web3
В выпущенном в прошлом месяце обновлении безопасности от Microsoft содержится уязвимость повышения привилегий win32k, которая сейчас используется. Эта уязвимость, похоже, существует только в ранних версиях Windows и не может быть вызвана в Windows 11.
Эксплуатация такого рода уязвимостей существует давно. На фоне постоянного совершенствования новых мер безопасности мы надеемся проанализировать, как злоумышленники могут продолжать использовать эту уязвимость. Процесс анализа в данной статье был завершен в среде Windows Server 2016.
Этот нулевой уязвимость не была опубликована и исправлена, может быть использована злоумышленниками незаметно и обладает высокой разрушительной силой. С помощью этой уязвимости хакеры могут получить полный контроль над системой Windows. Это может привести к кражам личной информации, сбоям системы, потере данных, финансовым потерям, внедрению вредоносного ПО и другим серьезным последствиям. Для пользователей Web3 приватные ключи могут быть украдены, цифровые активы могут быть переведены. С более широкой точки зрения, эта уязвимость может даже повлиять на всю экосистему Web3, работающую на инфраструктуре Web2.
Анализируя патч, мы обнаружили, что проблема заключается в том, что счетчик ссылок объекта был обработан на один раз больше. win32k - это более старая кодовая база, ранние комментарии в исходном коде показывают, что предыдущий код блокировал только объект окна, не блокируя объект меню в объекте окна, что могло привести к неправильной ссылке на объект меню.
При реализации концептуального доказательства (PoC) мы обнаружили, что переданный xxxEnableMenuItem() меню обычно уже заблокирован в верхнем уровне функции, неясно, какой объект меню здесь необходимо защитить. Дальнейший анализ показывает, что меню, возвращаемое функцией MenuItemState, может быть основным меню окна, а также подменю или даже подподменю.
Чтобы вызвать уязвимость, мы создали специальную четырехуровневую структуру меню и установили некоторые специфические условия для прохождения проверки функции xxxEnableMenuItem. Когда xxxRedrawTitle возвращает уровень пользователя, мы удаляем ссылочные отношения меню C и B, успешно освобождая меню C. В конечном итоге, когда функция xxxEnableMenuItem возвращается к xxxRedrawTitle, объект меню C, на который собираются сослаться, уже недействителен.
При разработке эксплуатации уязвимости (Exp) мы в первую очередь рассматривали два варианта: выполнение shellcode и использование операций чтения/записи для изменения адреса токена. Учитывая осуществимость, мы выбрали последний вариант. Весь процесс эксплуатации можно разделить на два этапа: как использовать уязвимость UAF для управления значением cbwndextra и как реализовать стабильные операции чтения/записи.
Мы тщательно спроектировали размещение памяти и использовали объект имени окна в классе окна WNDClass для захвата освобожденного объекта меню. С помощью специфических операций в функции xxxRedrawWindow мы осуществили первую запись данных.
https://img-cdn.gateio.im/webp-social/moments-697c5814db02534f63b44c0d1d692f83.webp(
В реализации чтения и записи примитивов мы используем GetMenuBarInfo)( для произвольного чтения и SetClassLongPtr)( для произвольной записи. За исключением операции замены TOKEN, все остальные записи выполняются с использованием объекта класса первого окна через смещение.
![Numen Эксклюзив: уязвимость 0day от Microsoft может разрушить игру Web3 на системном и физическом уровнях])https://img-cdn.gateio.im/webp-social/moments-b0942592135ac96c6279544a62022329.webp(
Хотя уязвимость win32k существует давно, Microsoft пытается переписать соответствующий код ядра на Rust, и в будущем такие уязвимости могут быть устранены в новых системах. Процесс эксплуатации этой уязвимости относительно прост, основная сложность заключается в том, как контролировать первую запись. Эта уязвимость сильно зависит от утечки адреса дескриптора кучи рабочего стола, что по-прежнему представляет собой угрозу безопасности для устаревших систем.
Мы предполагаем, что обнаружение уязвимости могло быть связано с более совершенным контролем охвата кода. Что касается обнаружения эксплуатации уязвимостей, помимо мониторинга ключевых точек, целенаправленный контроль за аномальными распределениями памяти и чтением/записью данных в окнах также может помочь в выявлении таких уязвимостей.
![Numen эксклюзив: уязвимость 0day Microsoft может разрушить Web3 на системном и физическом уровнях])https://img-cdn.gateio.im/webp-social/moments-b06b098af4f07260fdc03a75da160706.webp(
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
20 Лайков
Награда
20
8
Репост
Поделиться
комментарий
0/400
RunWhenCut
· 08-08 14:14
Скоро обновим патч.
Посмотреть ОригиналОтветить0
LiquidityWizard
· 08-08 03:20
Система не обновится — ждите смерти.
Посмотреть ОригиналОтветить0
BlockchainTalker
· 08-07 08:27
Будьте особенно осторожны сейчас.
Посмотреть ОригиналОтветить0
FlyingLeek
· 08-06 06:24
Обновите систему для обеспечения безопасности
Посмотреть ОригиналОтветить0
ImpermanentSage
· 08-05 14:49
Поторопитесь с обновлением, не ленитесь
Посмотреть ОригиналОтветить0
SelfCustodyIssues
· 08-05 14:48
Скорее обновите систему
Посмотреть ОригиналОтветить0
TopBuyerBottomSeller
· 08-05 14:42
Убедитесь, что вы обновили до 11 системы как можно скорее.
Уязвимости системы Windows угрожают безопасности активов Web3. Закрытый ключ может быть украден.
Уязвимость системы Windows от Microsoft может привести к рискам безопасности Web3
В выпущенном в прошлом месяце обновлении безопасности от Microsoft содержится уязвимость повышения привилегий win32k, которая сейчас используется. Эта уязвимость, похоже, существует только в ранних версиях Windows и не может быть вызвана в Windows 11.
Эксплуатация такого рода уязвимостей существует давно. На фоне постоянного совершенствования новых мер безопасности мы надеемся проанализировать, как злоумышленники могут продолжать использовать эту уязвимость. Процесс анализа в данной статье был завершен в среде Windows Server 2016.
Этот нулевой уязвимость не была опубликована и исправлена, может быть использована злоумышленниками незаметно и обладает высокой разрушительной силой. С помощью этой уязвимости хакеры могут получить полный контроль над системой Windows. Это может привести к кражам личной информации, сбоям системы, потере данных, финансовым потерям, внедрению вредоносного ПО и другим серьезным последствиям. Для пользователей Web3 приватные ключи могут быть украдены, цифровые активы могут быть переведены. С более широкой точки зрения, эта уязвимость может даже повлиять на всю экосистему Web3, работающую на инфраструктуре Web2.
Анализируя патч, мы обнаружили, что проблема заключается в том, что счетчик ссылок объекта был обработан на один раз больше. win32k - это более старая кодовая база, ранние комментарии в исходном коде показывают, что предыдущий код блокировал только объект окна, не блокируя объект меню в объекте окна, что могло привести к неправильной ссылке на объект меню.
При реализации концептуального доказательства (PoC) мы обнаружили, что переданный xxxEnableMenuItem() меню обычно уже заблокирован в верхнем уровне функции, неясно, какой объект меню здесь необходимо защитить. Дальнейший анализ показывает, что меню, возвращаемое функцией MenuItemState, может быть основным меню окна, а также подменю или даже подподменю.
Чтобы вызвать уязвимость, мы создали специальную четырехуровневую структуру меню и установили некоторые специфические условия для прохождения проверки функции xxxEnableMenuItem. Когда xxxRedrawTitle возвращает уровень пользователя, мы удаляем ссылочные отношения меню C и B, успешно освобождая меню C. В конечном итоге, когда функция xxxEnableMenuItem возвращается к xxxRedrawTitle, объект меню C, на который собираются сослаться, уже недействителен.
При разработке эксплуатации уязвимости (Exp) мы в первую очередь рассматривали два варианта: выполнение shellcode и использование операций чтения/записи для изменения адреса токена. Учитывая осуществимость, мы выбрали последний вариант. Весь процесс эксплуатации можно разделить на два этапа: как использовать уязвимость UAF для управления значением cbwndextra и как реализовать стабильные операции чтения/записи.
Мы тщательно спроектировали размещение памяти и использовали объект имени окна в классе окна WNDClass для захвата освобожденного объекта меню. С помощью специфических операций в функции xxxRedrawWindow мы осуществили первую запись данных.
https://img-cdn.gateio.im/webp-social/moments-697c5814db02534f63b44c0d1d692f83.webp(
В реализации чтения и записи примитивов мы используем GetMenuBarInfo)( для произвольного чтения и SetClassLongPtr)( для произвольной записи. За исключением операции замены TOKEN, все остальные записи выполняются с использованием объекта класса первого окна через смещение.
![Numen Эксклюзив: уязвимость 0day от Microsoft может разрушить игру Web3 на системном и физическом уровнях])https://img-cdn.gateio.im/webp-social/moments-b0942592135ac96c6279544a62022329.webp(
Хотя уязвимость win32k существует давно, Microsoft пытается переписать соответствующий код ядра на Rust, и в будущем такие уязвимости могут быть устранены в новых системах. Процесс эксплуатации этой уязвимости относительно прост, основная сложность заключается в том, как контролировать первую запись. Эта уязвимость сильно зависит от утечки адреса дескриптора кучи рабочего стола, что по-прежнему представляет собой угрозу безопасности для устаревших систем.
Мы предполагаем, что обнаружение уязвимости могло быть связано с более совершенным контролем охвата кода. Что касается обнаружения эксплуатации уязвимостей, помимо мониторинга ключевых точек, целенаправленный контроль за аномальными распределениями памяти и чтением/записью данных в окнах также может помочь в выявлении таких уязвимостей.
![Numen эксклюзив: уязвимость 0day Microsoft может разрушить Web3 на системном и физическом уровнях])https://img-cdn.gateio.im/webp-social/moments-b06b098af4f07260fdc03a75da160706.webp(