Аналіз 0day-вразливості системи Microsoft Windows та її потенційних наслідків
Нещодавно випущене Microsoft оновлення безпеки виправило вразливість підвищення привілеїв у ядрі Windows, яка вже використовується. Ця вразливість в основному впливає на ранні версії Windows і не може бути активована на Windows 11. У цій статті буде детально проаналізовано способи експлуатації таких вразливостей в сучасному середовищі безпеки.
Уразливість 0day означає ще не опубліковану та не виправлену безпекову уразливість, яку зловмисники можуть використовувати зловмисно без виявлення, що має величезну руйнівну силу. Виявлена уразливість Windows 0day дозволяє хакерам отримувати повний контроль над системою, наслідки можуть включати крадіжку особистої інформації, збої системи, фінансові втрати, впровадження шкідливого програмного забезпечення тощо. Для користувачів Web3 це може призвести до крадіжки приватних ключів, переміщення цифрових активів. У більш широкому сенсі ця уразливість може навіть вплинути на екосистему Web3, що працює на інфраструктурі Web2.
Аналіз патчу виявив, що проблема полягає в обробці лічильника посилань на об'єкти меню в об'єкті вікна в коді win32k. Раніше код блокував тільки об'єкт вікна, не блокуючи об'єкт меню всередині, що може призвести до неправильного посилання на об'єкт меню.
Щоб скористатися цією вразливістю, ми сконструювали спеціальну багаторівневу вкладену структуру меню та в критичний момент видалили частину посилань на меню. Це дозволяє успішно звільнити об’єкт цільового меню, коли функція xxxRedrawTitle повертає рівень користувача, що призводить до недійсних об’єктів, на які посилаються наступні функції ядра.
У практичному використанні ми головним чином розглядаємо два варіанти: виконання shellcode або використання читання/запису примітивів для зміни адреси токена. Беручи до уваги механізми безпеки високих версій Windows, ми обрали другий варіант. Конкретна реалізація складається з двох етапів: спочатку за допомогою вразливості UAF контролюємо значення cbwndextra, а потім створюємо стабільні примітиви читання/запису.
Ми спроектували пам'ятне розташування, що містить три послідовні об'єкти HWND, шляхом точного контролю за розмірами об'єктів та порядком їх звільнення, успішно реалізували перший запис цільових даних. Потім, використовуючи функції GetMenuBarInfo() та SetClassLongPtr(), ми побудували стабільні примітиви читання та запису, врешті-решт завершили модифікацію системного токена.
Хоча Microsoft переписує код win32k на Rust, щоб повністю вирішити цю проблему, для великої кількості застарілих систем, що використовуються, це все ще є серйозною загрозою безпеці. Цей аналіз вразливостей також демонструє, що належне тестування покриття коду та цілеспрямована перевірка аномальних операцій з пам'яттю будуть важливими шляхами для виявлення подібних вразливостей.
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
21 лайків
Нагородити
21
8
Поділіться
Прокоментувати
0/400
ApeWithAPlan
· 07-08 09:41
Добре, що я вже давно не користуюсь цим маленьким віконцем.
Переглянути оригіналвідповісти на0
AirdropFatigue
· 07-07 11:15
користувачі win10 тремтять
Переглянути оригіналвідповісти на0
MagicBean
· 07-07 03:49
Давним-давно потрібно було перейти на Mac.
Переглянути оригіналвідповісти на0
WhaleWatcher
· 07-07 00:48
Принаймні я ще в безпеці в Windows 11
Переглянути оригіналвідповісти на0
JustHodlIt
· 07-07 00:47
Знову годують, як захоплююче.
Переглянути оригіналвідповісти на0
DegenWhisperer
· 07-07 00:40
Швидко оновіть до Win11 для безпеки
Переглянути оригіналвідповісти на0
HodlVeteran
· 07-07 00:38
Знову відбудеться втеча невдахи з Гаманця
Переглянути оригіналвідповісти на0
RugPullProphet
· 07-07 00:37
Знову щось замислюють, швидше переходьте на win11.
Аналіз вразливості Windows 0day: потенційні загрози безпеці закритого ключа користувачів Web3
Аналіз 0day-вразливості системи Microsoft Windows та її потенційних наслідків
Нещодавно випущене Microsoft оновлення безпеки виправило вразливість підвищення привілеїв у ядрі Windows, яка вже використовується. Ця вразливість в основному впливає на ранні версії Windows і не може бути активована на Windows 11. У цій статті буде детально проаналізовано способи експлуатації таких вразливостей в сучасному середовищі безпеки.
Уразливість 0day означає ще не опубліковану та не виправлену безпекову уразливість, яку зловмисники можуть використовувати зловмисно без виявлення, що має величезну руйнівну силу. Виявлена уразливість Windows 0day дозволяє хакерам отримувати повний контроль над системою, наслідки можуть включати крадіжку особистої інформації, збої системи, фінансові втрати, впровадження шкідливого програмного забезпечення тощо. Для користувачів Web3 це може призвести до крадіжки приватних ключів, переміщення цифрових активів. У більш широкому сенсі ця уразливість може навіть вплинути на екосистему Web3, що працює на інфраструктурі Web2.
Аналіз патчу виявив, що проблема полягає в обробці лічильника посилань на об'єкти меню в об'єкті вікна в коді win32k. Раніше код блокував тільки об'єкт вікна, не блокуючи об'єкт меню всередині, що може призвести до неправильного посилання на об'єкт меню.
Щоб скористатися цією вразливістю, ми сконструювали спеціальну багаторівневу вкладену структуру меню та в критичний момент видалили частину посилань на меню. Це дозволяє успішно звільнити об’єкт цільового меню, коли функція xxxRedrawTitle повертає рівень користувача, що призводить до недійсних об’єктів, на які посилаються наступні функції ядра.
У практичному використанні ми головним чином розглядаємо два варіанти: виконання shellcode або використання читання/запису примітивів для зміни адреси токена. Беручи до уваги механізми безпеки високих версій Windows, ми обрали другий варіант. Конкретна реалізація складається з двох етапів: спочатку за допомогою вразливості UAF контролюємо значення cbwndextra, а потім створюємо стабільні примітиви читання/запису.
Ми спроектували пам'ятне розташування, що містить три послідовні об'єкти HWND, шляхом точного контролю за розмірами об'єктів та порядком їх звільнення, успішно реалізували перший запис цільових даних. Потім, використовуючи функції GetMenuBarInfo() та SetClassLongPtr(), ми побудували стабільні примітиви читання та запису, врешті-решт завершили модифікацію системного токена.
Хоча Microsoft переписує код win32k на Rust, щоб повністю вирішити цю проблему, для великої кількості застарілих систем, що використовуються, це все ще є серйозною загрозою безпеці. Цей аналіз вразливостей також демонструє, що належне тестування покриття коду та цілеспрямована перевірка аномальних операцій з пам'яттю будуть важливими шляхами для виявлення подібних вразливостей.