Аналіз вразливості Windows 0day: від UAF меню до підвищення привілеїв системи

robot
Генерація анотацій у процесі

Аналіз та використання 0day вразливості Windows-системи від Microsoft

Вступ

У минулому місяці в безпековому патчі Microsoft було виявлено експлуатований вразливість підвищення привілеїв win32k, яка існує лише в ранніх версіях Windows. У цій статті буде проаналізовано, як зловмисники продовжують експлуатувати цю вразливість, незважаючи на постійне вдосконалення сучасних заходів безпеки. Аналітичне середовище - Windows Server 2016.

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

Фон вразливості

Вразливість 0day означає вразливість, яка не була розкрита та виправлена, і може бути зловмисно використана для завдання значної шкоди. Виявлена вразливість 0day у системі Windows дозволяє хакерам отримати повний контроль над системою, наслідки включають, але не обмежуються:

  • Викрадення особистої інформації
  • Збої системи, втрата даних
  • Фінансові втрати
  • Вбудовування шкідливого ПЗ
  • Крипто-ключ був вкрадений
  • Цифрові активи були переміщені

З більшої перспективи, ця уразливість може вплинути на всю екосистему Web3, що працює на основі інфраструктури Web2.

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

Аналіз патчів

Патч виправив проблему з багаторазовою обробкою рахунку посилань на об'єкт. Аналіз ранніх коментарів до коду показав, що оригінальний код блокував тільки об'єкт вікна, не блокуючи об'єкт меню у вікні, що могло призвести до помилкового посилання на об'єкт меню.

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

Аналіз використання вразливостей

Аналіз показав, що у функції xxxEnableMenuItem функція MenuItemState повертає два можливих меню: головне меню вікна або підменю в меню.

Створити спеціальну багаторівневу вкладену структуру меню та налаштувати певні атрибути, щоб обійти перевірку функції. Коли функція xxxRedrawTitle повертає користувацький рівень, видалити посилання між меню та звільнити об'єкт цільового меню. В кінцевому підсумку в функції xxxEnableMenuItem буде посилання на недійсний об'єкт меню.

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

Реалізація експлуатації вразливостей

Загальний підхід

Розгляньте два напрямки використання:

  1. Виконати код shellcode
  2. Використання примітивів читання та запису для зміни адреси токена

Виберіть другий варіант, розділіть процес на дві проблеми:

  • Як використовувати вразливість UAF для контролю значення cbwndextra
  • Як реалізувати стабільні операції читання та запису

![Numen ексклюзив: уразливість 0day Microsoft може зламати Web3 гру на системному + фізичному рівнях](https://img-cdn.gateio.im/webp-social/moments-1cc94ddafacec491507491eef9195858.webp01

) початкові дані запису

Використовуйте об'єкт імені вікна в класі 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, всі інші операції запису використовують об'єкт класу першого вікна.

Резюме

  1. Уразливість win32k може бути усунена в новій версії Windows

  2. Процес експлуатації вразливості відносно простий, в основному залежить від витоку адреси десктопної стеки.

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

  4. Виявлення аномальних операцій читання та запису пам'яті допомагає виявити аналогічні вразливості

![Numen ексклюзив: уразливість 0day Microsoft може зруйнувати Web3 гру на системному + фізичному рівні])https://img-cdn.gateio.im/webp-social/moments-b06b098af4f07260fdc03a75da160706.webp(

TOKEN3.13%
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • 3
  • Репост
  • Поділіться
Прокоментувати
0/400
MidnightTradervip
· 21год тому
Ще одна велика дірка, Windows справді не працює.
Переглянути оригіналвідповісти на0
TokenDustCollectorvip
· 21год тому
Ця вразливість у Microsoft дійсно серйозна, навіть Закритий ключ можуть вкрасти.
Переглянути оригіналвідповісти на0
HalfIsEmptyvip
· 21год тому
Ой, знову перевернулися~
Переглянути оригіналвідповісти на0
  • Закріпити