Вразливості системи Windows загрожують безпеці активів Web3 Закритий ключ може бути вкрадений

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

Уразливість системи Windows від Microsoft може призвести до ризиків безпеки Web3

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

Використання таких вразливостей має давню історію. На фоні постійного вдосконалення нових заходів безпеки, ми сподіваємося проаналізувати, як зловмисники можуть продовжувати експлуатувати цю вразливість. Процес аналізу виконувався в середовищі Windows Server 2016.

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

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

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

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

При реалізації концепції підтвердження (PoC), ми виявили, що передане xxxEnableMenuItem() меню зазвичай вже заблоковано у верхньому функціоналі, неясно, який об'єкт меню потрібно захистити. Подальший аналіз показав, що меню, яке повертає функція MenuItemState, може бути основним меню вікна, а також підменю або навіть підпідменю.

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

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

Під час розробки експлуатації (Exp) ми в основному розглядали два варіанти: виконання shellcode та використання операцій читання/запису для зміни адреси токена. Враховуючи доцільність, ми вибрали останній варіант. Увесь процес експлуатації можна розділити на два етапи: як використати вразливість UAF для контролю значення cbwndextra та як реалізувати стабільні операції читання/запису.

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

Ми через ретельно спроектовану розкладку пам'яті використовуємо об'єкт імені вікна класу WNDClass, що займає звільнений об'єкт меню. Через специфічні операції в функції xxxRedrawWindow ми реалізували перше записування даних.

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

Для досягнення стабільного розташування пам'яті ми спроектували три послідовні об'єкти HWND, звільняючи середній і використовуючи об'єкт HWNDClass. Передні та задні об'єкти HWND використовуються для перевірки та реалізації операцій читання/запису. Ми також точно визначаємо, чи відповідає розташування об'єктів очікуванням, через витік адреси дескриптора ядра.

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

У реалізації читання та запису примітивів ми використовуємо GetMenuBarInfo)( для випадкового читання, SetClassLongPtr)( для випадкового запису. Крім операції заміни TOKEN, інші записи здійснюються за допомогою класу першого об'єкта вікна через зміщення.

![Numen ексклюзив: вразливість Microsoft 0day може знищити 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(

TOKEN-1.34%
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • 8
  • Репост
  • Поділіться
Прокоментувати
0/400
RunWhenCutvip
· 08-08 14:14
Незабаром оновлення патчу
Переглянути оригіналвідповісти на0
LiquidityWizardvip
· 08-08 03:20
Система не оновлюється, чекай на смерть.
Переглянути оригіналвідповісти на0
BlockchainTalkervip
· 08-07 08:27
Будьте особливо обережні зараз.
Переглянути оригіналвідповісти на0
FlyingLeekvip
· 08-06 06:24
Оновіть систему для безпеки
Переглянути оригіналвідповісти на0
ImpermanentSagevip
· 08-05 14:49
Швидко оновлюйте, не ледарюйте
Переглянути оригіналвідповісти на0
SelfCustodyIssuesvip
· 08-05 14:48
Швидко оновіть систему
Переглянути оригіналвідповісти на0
TopBuyerBottomSellervip
· 08-05 14:42
Якомога швидше оновіть до системи 11
Переглянути оригіналвідповісти на0
FarmHoppervip
· 08-05 14:36
Швидко піднімемо систему, брате.
Переглянути оригіналвідповісти на0
  • Закріпити