Аналіз та використання 0day вразливості Windows-системи від Microsoft
Вступ
У минулому місяці в безпековому патчі Microsoft було виявлено експлуатований вразливість підвищення привілеїв win32k, яка існує лише в ранніх версіях Windows. У цій статті буде проаналізовано, як зловмисники продовжують експлуатувати цю вразливість, незважаючи на постійне вдосконалення сучасних заходів безпеки. Аналітичне середовище - Windows Server 2016.
Фон вразливості
Вразливість 0day означає вразливість, яка не була розкрита та виправлена, і може бути зловмисно використана для завдання значної шкоди. Виявлена вразливість 0day у системі Windows дозволяє хакерам отримати повний контроль над системою, наслідки включають, але не обмежуються:
Викрадення особистої інформації
Збої системи, втрата даних
Фінансові втрати
Вбудовування шкідливого ПЗ
Крипто-ключ був вкрадений
Цифрові активи були переміщені
З більшої перспективи, ця уразливість може вплинути на всю екосистему Web3, що працює на основі інфраструктури Web2.
Аналіз патчів
Патч виправив проблему з багаторазовою обробкою рахунку посилань на об'єкт. Аналіз ранніх коментарів до коду показав, що оригінальний код блокував тільки об'єкт вікна, не блокуючи об'єкт меню у вікні, що могло призвести до помилкового посилання на об'єкт меню.
Аналіз використання вразливостей
Аналіз показав, що у функції xxxEnableMenuItem функція MenuItemState повертає два можливих меню: головне меню вікна або підменю в меню.
Створити спеціальну багаторівневу вкладену структуру меню та налаштувати певні атрибути, щоб обійти перевірку функції. Коли функція xxxRedrawTitle повертає користувацький рівень, видалити посилання між меню та звільнити об'єкт цільового меню. В кінцевому підсумку в функції xxxEnableMenuItem буде посилання на недійсний об'єкт меню.
Реалізація експлуатації вразливостей
Загальний підхід
Розгляньте два напрямки використання:
Виконати код shellcode
Використання примітивів читання та запису для зміни адреси токена
Виберіть другий варіант, розділіть процес на дві проблеми:
Як використовувати вразливість UAF для контролю значення cbwndextra
Як реалізувати стабільні операції читання та запису
 початкові дані запису
Використовуйте об'єкт імені вікна в класі WNDClass для звільнення зайнятого об'єкта меню. Знайдіть можливість запису даних у функції xxxRedrawWindow.
Остаточний вибір запису параметра cb-extra HWNDClass через операцію AND 2 за допомогою прапорця.
![Numen ексклюзив: уразливість 0day від Microsoft може зняти Web3 гру на системному+фізичному рівнях]###https://img-cdn.gateio.im/webp-social/moments-697c5814db02534f63b44c0d1d692f83.webp(
) стабільна пам'ять
Спроектуйте три послідовні об'єкти HWND, звільніть середній об'єкт і займіть його об'єктом HWNDClass. Передні та задні об'єкти HWND використовуються відповідно для:
Надати параметри перевірки знаків
Надання засобів читання та запису оригінальних мов.
Точне визначення порядку розташування об'єктів за допомогою адреси дескриптора ядра, що витекла.
![Numen ексклюзив: уразливість Microsoft 0day може знищити Web3 гру на системному + фізичному рівнях]###https://img-cdn.gateio.im/webp-social/moments-b0942592135ac96c6279544a62022329.webp(
) реалізація читання та запису примітивів
Будь-яке читання: GetMenuBarInfo###(
Будь-який запис: SetClassLongPtr)(
Крім запису TOKEN, всі інші операції запису використовують об'єкт класу першого вікна.
Резюме
Уразливість win32k може бути усунена в новій версії Windows
Процес експлуатації вразливості відносно простий, в основному залежить від витоку адреси десктопної стеки.
Виявлення вразливостей може залежати від більш досконалого контролю покриття коду
Виявлення аномальних операцій читання та запису пам'яті допомагає виявити аналогічні вразливості
![Numen ексклюзив: уразливість 0day Microsoft може зруйнувати Web3 гру на системному + фізичному рівні])https://img-cdn.gateio.im/webp-social/moments-b06b098af4f07260fdc03a75da160706.webp(
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
13 лайків
Нагородити
13
3
Репост
Поділіться
Прокоментувати
0/400
MidnightTrader
· 17год тому
Ще одна велика дірка, Windows справді не працює.
Переглянути оригіналвідповісти на0
TokenDustCollector
· 17год тому
Ця вразливість у Microsoft дійсно серйозна, навіть Закритий ключ можуть вкрасти.
Аналіз вразливості Windows 0day: від UAF меню до підвищення привілеїв системи
Аналіз та використання 0day вразливості Windows-системи від Microsoft
Вступ
У минулому місяці в безпековому патчі Microsoft було виявлено експлуатований вразливість підвищення привілеїв win32k, яка існує лише в ранніх версіях Windows. У цій статті буде проаналізовано, як зловмисники продовжують експлуатувати цю вразливість, незважаючи на постійне вдосконалення сучасних заходів безпеки. Аналітичне середовище - Windows Server 2016.
Фон вразливості
Вразливість 0day означає вразливість, яка не була розкрита та виправлена, і може бути зловмисно використана для завдання значної шкоди. Виявлена вразливість 0day у системі Windows дозволяє хакерам отримати повний контроль над системою, наслідки включають, але не обмежуються:
З більшої перспективи, ця уразливість може вплинути на всю екосистему Web3, що працює на основі інфраструктури Web2.
Аналіз патчів
Патч виправив проблему з багаторазовою обробкою рахунку посилань на об'єкт. Аналіз ранніх коментарів до коду показав, що оригінальний код блокував тільки об'єкт вікна, не блокуючи об'єкт меню у вікні, що могло призвести до помилкового посилання на об'єкт меню.
Аналіз використання вразливостей
Аналіз показав, що у функції xxxEnableMenuItem функція MenuItemState повертає два можливих меню: головне меню вікна або підменю в меню.
Створити спеціальну багаторівневу вкладену структуру меню та налаштувати певні атрибути, щоб обійти перевірку функції. Коли функція xxxRedrawTitle повертає користувацький рівень, видалити посилання між меню та звільнити об'єкт цільового меню. В кінцевому підсумку в функції xxxEnableMenuItem буде посилання на недійсний об'єкт меню.
Реалізація експлуатації вразливостей
Загальний підхід
Розгляньте два напрямки використання:
Виберіть другий варіант, розділіть процес на дві проблеми:
 початкові дані запису
Використовуйте об'єкт імені вікна в класі WNDClass для звільнення зайнятого об'єкта меню. Знайдіть можливість запису даних у функції xxxRedrawWindow.
Остаточний вибір запису параметра cb-extra HWNDClass через операцію AND 2 за допомогою прапорця.
![Numen ексклюзив: уразливість 0day від Microsoft може зняти Web3 гру на системному+фізичному рівнях]###https://img-cdn.gateio.im/webp-social/moments-697c5814db02534f63b44c0d1d692f83.webp(
) стабільна пам'ять
Спроектуйте три послідовні об'єкти HWND, звільніть середній об'єкт і займіть його об'єктом HWNDClass. Передні та задні об'єкти HWND використовуються відповідно для:
Точне визначення порядку розташування об'єктів за допомогою адреси дескриптора ядра, що витекла.
![Numen ексклюзив: уразливість Microsoft 0day може знищити Web3 гру на системному + фізичному рівнях]###https://img-cdn.gateio.im/webp-social/moments-b0942592135ac96c6279544a62022329.webp(
) реалізація читання та запису примітивів
Крім запису TOKEN, всі інші операції запису використовують об'єкт класу першого вікна.
Резюме
Уразливість win32k може бути усунена в новій версії Windows
Процес експлуатації вразливості відносно простий, в основному залежить від витоку адреси десктопної стеки.
Виявлення вразливостей може залежати від більш досконалого контролю покриття коду
Виявлення аномальних операцій читання та запису пам'яті допомагає виявити аналогічні вразливості
![Numen ексклюзив: уразливість 0day Microsoft може зруйнувати Web3 гру на системному + фізичному рівні])https://img-cdn.gateio.im/webp-social/moments-b06b098af4f07260fdc03a75da160706.webp(