Анализ серьезной уязвимости системы Microsoft Windows: может угрожать безопасности экосистемы Web3
В прошлом месяце в обновлении безопасности, выпущенном Microsoft, была исправлена уязвимость повышения привилегий в Windows, которая использовалась хакерами. Эта уязвимость в основном затрагивает ранние версии системы Windows, в то время как Windows 11, похоже, не затронута.
В данной статье будет проанализировано, как злоумышленники продолжают использовать такие уязвимости на фоне постоянного усиления мер безопасности. Наш анализ основан на Windows Server 2016.
Фон уязвимости
Это уязвимость 0day, то есть уязвимость, которая еще не была обнародована и исправлена. Хакеры могут использовать ее для атак, не зная об этом пользователей, и это может привести к серьезным последствиям.
Через эту уязвимость на уровне операционной системы Windows, хакеры могут получить полный контроль над системой. Это может привести к утечке личной информации, сбоям систем, потере данных, финансовым потерям и другим серьезным последствиям. Для пользователей Web3 это может означать кражу приватных ключей и цифровых активов. С более широкой точки зрения, эта уязвимость может даже повлиять на всю экосистему Web3, основанную на инфраструктуре Web2.
Анализ патчей
Анализируя код патча, проблема, похоже, заключается в том, что счетчик ссылок на один объект был обработан больше раз, чем необходимо. Просматривая ранние комментарии к исходному коду, мы обнаружили, что ранее код блокировал только объект окна, но не блокировал объект меню в окне, что могло привести к неправильной ссылке на объект меню.
Воспроизведение уязвимости
Анализируя контекст функции уязвимости, мы обнаружили, что меню, переданное в xxxEnableMenuItem(), обычно уже заблокировано в верхней функции, и здесь остается вопрос, какой именно объект меню необходимо защитить.
Дальнейший анализ показывает, что в функции MenuItemState в xxxEnableMenuItem возвращается два возможных меню: главное меню окна или подменю (, даже подподменю ).
Мы создали специальную четырехуровневую структуру меню для активации уязвимостей, эти меню должны соответствовать определенным условиям, чтобы пройти проверку в функции. Ключевым моментом является то, что при возврате пользовательского уровня из xxxRedrawTitle необходимо удалить некоторые ссылки между меню, освободив определенные объекты меню. Таким образом, в момент возврата функции xxxEnableMenuItem объекты меню, на которые ссылаются, уже будут недействительными.
Использование уязвимости
При разработке эксплойта (exp) мы в основном рассматривали два варианта:
Выполнение кода shellcode: см. ранние аналогичные уязвимости, но в новой версии Windows могут возникнуть некоторые препятствия.
Использование примитивов чтения и записи для изменения адреса токена: этот метод по-прежнему имеет открытые примеры для справки, имеет хорошую универсальность в отношении компоновки памяти на рабочем столе и примитивов чтения и записи.
Мы выбрали второй вариант, разделив весь процесс эксплуатации на два этапа: как использовать уязвимость UAF для управления значением cbwndextra и как стабильно реализовать операции чтения и записи.
Ключевым моментом является нахождение позиции в адресной структуре, которую мы можем построить, где можно записывать данные произвольным образом. В конечном итоге мы выбрали реализацию через операцию AND с флагом в функции xxxRedrawWindow.
https://img-cdn.gateio.im/webp-social/moments-697c5814db02534f63b44c0d1d692f83.webp(
Мы также точно определяем, расположены ли объекты, как ожидалось, через утечку адреса дескриптора ядра. В отношении примитивов чтения и записи мы используем GetMenuBarInfo)( для произвольного чтения и SetClassLongPtr)( для произвольной записи.
![Numen эксклюзив: уязвимость Microsoft 0day может повлиять на систему и физический уровень в Web3])https://img-cdn.gateio.im/webp-social/moments-b0942592135ac96c6279544a62022329.webp(
Заключение
Microsoft пытается переписать код, связанный с win32k, на Rust, и в будущем такие уязвимости могут быть устранены в новой системе.
Процесс эксплуатации таких уязвимостей относительно прост, в основном полагается на утечку адреса десктопного кучи. Если эту проблему не решить полностью, устаревшие системы будут продолжать сталкиваться с угрозами безопасности.
Обнаружение этой уязвимости, возможно, стало результатом более совершенных технологий проверки покрытия кода.
В отношении обнаружения уязвимостей, помимо мониторинга ключевых функций, также следует обращать внимание на аномальные макеты памяти и поведение чтения и записи данных.
![Numen Эксклюзив: уязвимость 0day от Microsoft может разрушить Web3 игру на системном + физическом уровнях])https://img-cdn.gateio.im/webp-social/moments-b06b098af4f07260fdc03a75da160706.webp(
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
11 Лайков
Награда
11
7
Репост
Поделиться
комментарий
0/400
SelfSovereignSteve
· 08-14 15:57
Используйте Linux, в чем проблема?
Посмотреть ОригиналОтветить0
rug_connoisseur
· 08-13 09:13
Еще одна уязвимость в Windows, уже привыкли!
Посмотреть ОригиналОтветить0
rekt_but_not_broke
· 08-12 05:14
Заработок не терпит отлагательств, сначала нужно защитить Кошелек!
Посмотреть ОригиналОтветить0
MetaLord420
· 08-12 05:02
Игроки на Windows всё ещё осмеливаются касаться web3?!
Посмотреть ОригиналОтветить0
SighingCashier
· 08-12 05:00
Старая система выдает эту ошибку, её давно следовало заменить.
Посмотреть ОригиналОтветить0
ForkMaster
· 08-12 04:59
разыгрывайте людей как лохов неудачники? бегите в уязвимости для майнинга.
Уязвимости в системе Windows угрожают безопасности экосистемы Web3. Эксперты Глубина анализируют механизмы использования.
Анализ серьезной уязвимости системы Microsoft Windows: может угрожать безопасности экосистемы Web3
В прошлом месяце в обновлении безопасности, выпущенном Microsoft, была исправлена уязвимость повышения привилегий в Windows, которая использовалась хакерами. Эта уязвимость в основном затрагивает ранние версии системы Windows, в то время как Windows 11, похоже, не затронута.
В данной статье будет проанализировано, как злоумышленники продолжают использовать такие уязвимости на фоне постоянного усиления мер безопасности. Наш анализ основан на Windows Server 2016.
Фон уязвимости
Это уязвимость 0day, то есть уязвимость, которая еще не была обнародована и исправлена. Хакеры могут использовать ее для атак, не зная об этом пользователей, и это может привести к серьезным последствиям.
Через эту уязвимость на уровне операционной системы Windows, хакеры могут получить полный контроль над системой. Это может привести к утечке личной информации, сбоям систем, потере данных, финансовым потерям и другим серьезным последствиям. Для пользователей Web3 это может означать кражу приватных ключей и цифровых активов. С более широкой точки зрения, эта уязвимость может даже повлиять на всю экосистему Web3, основанную на инфраструктуре Web2.
Анализ патчей
Анализируя код патча, проблема, похоже, заключается в том, что счетчик ссылок на один объект был обработан больше раз, чем необходимо. Просматривая ранние комментарии к исходному коду, мы обнаружили, что ранее код блокировал только объект окна, но не блокировал объект меню в окне, что могло привести к неправильной ссылке на объект меню.
Воспроизведение уязвимости
Анализируя контекст функции уязвимости, мы обнаружили, что меню, переданное в xxxEnableMenuItem(), обычно уже заблокировано в верхней функции, и здесь остается вопрос, какой именно объект меню необходимо защитить.
Дальнейший анализ показывает, что в функции MenuItemState в xxxEnableMenuItem возвращается два возможных меню: главное меню окна или подменю (, даже подподменю ).
Мы создали специальную четырехуровневую структуру меню для активации уязвимостей, эти меню должны соответствовать определенным условиям, чтобы пройти проверку в функции. Ключевым моментом является то, что при возврате пользовательского уровня из xxxRedrawTitle необходимо удалить некоторые ссылки между меню, освободив определенные объекты меню. Таким образом, в момент возврата функции xxxEnableMenuItem объекты меню, на которые ссылаются, уже будут недействительными.
Использование уязвимости
При разработке эксплойта (exp) мы в основном рассматривали два варианта:
Выполнение кода shellcode: см. ранние аналогичные уязвимости, но в новой версии Windows могут возникнуть некоторые препятствия.
Использование примитивов чтения и записи для изменения адреса токена: этот метод по-прежнему имеет открытые примеры для справки, имеет хорошую универсальность в отношении компоновки памяти на рабочем столе и примитивов чтения и записи.
Мы выбрали второй вариант, разделив весь процесс эксплуатации на два этапа: как использовать уязвимость UAF для управления значением cbwndextra и как стабильно реализовать операции чтения и записи.
Ключевым моментом является нахождение позиции в адресной структуре, которую мы можем построить, где можно записывать данные произвольным образом. В конечном итоге мы выбрали реализацию через операцию AND с флагом в функции xxxRedrawWindow.
https://img-cdn.gateio.im/webp-social/moments-697c5814db02534f63b44c0d1d692f83.webp(
Мы также точно определяем, расположены ли объекты, как ожидалось, через утечку адреса дескриптора ядра. В отношении примитивов чтения и записи мы используем GetMenuBarInfo)( для произвольного чтения и SetClassLongPtr)( для произвольной записи.
![Numen эксклюзив: уязвимость Microsoft 0day может повлиять на систему и физический уровень в Web3])https://img-cdn.gateio.im/webp-social/moments-b0942592135ac96c6279544a62022329.webp(
Заключение
Microsoft пытается переписать код, связанный с win32k, на Rust, и в будущем такие уязвимости могут быть устранены в новой системе.
Процесс эксплуатации таких уязвимостей относительно прост, в основном полагается на утечку адреса десктопного кучи. Если эту проблему не решить полностью, устаревшие системы будут продолжать сталкиваться с угрозами безопасности.
Обнаружение этой уязвимости, возможно, стало результатом более совершенных технологий проверки покрытия кода.
В отношении обнаружения уязвимостей, помимо мониторинга ключевых функций, также следует обращать внимание на аномальные макеты памяти и поведение чтения и записи данных.
![Numen Эксклюзив: уязвимость 0day от Microsoft может разрушить Web3 игру на системном + физическом уровнях])https://img-cdn.gateio.im/webp-social/moments-b06b098af4f07260fdc03a75da160706.webp(