Аналіз та використання уразливості 0day у системі Microsoft Windows
Нещодавно випущений безпековий патч Microsoft виправив вразливість підвищення привілеїв у Windows, яку використовують хакери. Ця вразливість в основному впливає на ранні версії системи Windows і не може бути активована в Windows 11.
Ці вразливості існують вже багато років, у цій статті ми розглянемо, як зловмисники можуть продовжувати використовувати такі вразливості на тлі постійного зміцнення сучасних заходів безпеки. Наступний аналіз виконано на основі середовища Windows Server 2016.
0day вразливість - це вразливість, яка ще не була оприлюднена та виправлена, яку хакери можуть зловживати без виявлення, що має величезну руйнівну силу. Виявлена 0day вразливість дозволяє зловмисникам отримати повний контроль над системою Windows, що може призвести до витоку особистої інформації, краху системи, втрати даних та інших серйозних наслідків. Від крадіжки приватного ключа криптовалюти до можливого впливу на безпеку цілої екосистеми Web3.
Аналіз патчів
Аналіз коду патча виявив, що основна проблема, яку було виправлено, полягає у надмірній обробці підрахунку посилань на об'єкт. З ранніх коментарів у вихідному коді видно, що попередній код фіксував лише об'єкт вікна, не закриваючи об'єкт меню у вікні, що могло призвести до неправильного посилання на об'єкт меню.
Відтворення вразливості
Аналіз показав, що передане xxxEnableMenuItem() меню зазвичай було заблоковано в верхній функції, але конкретний захист якого об'єкта меню залишається неясним. Подальший аналіз показав, що меню, яке повертає функція MenuItemState, може бути головним меню вікна, а також підменю або меню більш глибокого рівня.
Ми створили спеціальну багаторівневу структуру меню для активації вразливості, що містить системне меню з конкретними типами ідентифікаторів, і спеціально обробили відносини між меню. Врешті-решт, при поверненні користувацького рівня xxxRedrawTitle вивільняється вказаний об'єкт меню, що призводить до недійсного об'єкта при подальшому посиланні на функцію xxxEnableMenuItem.
Використання вразливостей
Експлуатація вразливостей в основному враховує два напрямки: виконання shell-коду та використання примітивів читання/запису для зміни токена. Після комплексного аналізу ми обрали останній.
Ключові етапи включають:
Використання уразливості UAF для контролю значення cbwndextra
Реалізація стабільних операцій читання та запису
Ми через ретельне проектування розташування пам'яті, використовуючи об'єкти вікна та об'єкти HWNDClass, створили керовані примітиви читання та запису. Використовуючи GetMenuBarInfo() для реалізації довільного читання, SetClassLongPtr() для реалізації довільного запису. В результаті можна реалізувати операції, такі як заміна токена процесу.
https://img-cdn.gateio.im/webp-social/moments-697c5814db02534f63b44c0d1d692f83.webp(
![Numen ексклюзив: уразливість Microsoft 0day може зламати Web3 гру на системному + фізичному рівнях])https://img-cdn.gateio.im/webp-social/moments-b0942592135ac96c6279544a62022329.webp(
Підсумок
Microsoft реконструює код, пов'язаний з win32k, використовуючи Rust, у майбутньому подібні вразливості можуть бути усунені.
Процес використання вразливості відносно простий, в основному залежить від витоку адреси десктопного стека.
Виявлення цієї уразливості, ймовірно, стало можливим завдяки більш досконалому моніторингу покриття коду.
Виявлення аномальних розташувань пам'яті та читання/запису даних вікна допомагає виявити такі вразливості.
![Numen ексклюзив: уразливість Microsoft 0day може зруйнувати Web3 гру на системному+фізичному рівнях])https://img-cdn.gateio.im/webp-social/moments-b06b098af4f07260fdc03a75da160706.webp(
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
Вразливість підвищення привілеїв 0day Windows: безпеці Гаманець шифрування загрожує нова небезпека
Аналіз та використання уразливості 0day у системі Microsoft Windows
Нещодавно випущений безпековий патч Microsoft виправив вразливість підвищення привілеїв у Windows, яку використовують хакери. Ця вразливість в основному впливає на ранні версії системи Windows і не може бути активована в Windows 11.
Ці вразливості існують вже багато років, у цій статті ми розглянемо, як зловмисники можуть продовжувати використовувати такі вразливості на тлі постійного зміцнення сучасних заходів безпеки. Наступний аналіз виконано на основі середовища Windows Server 2016.
0day вразливість - це вразливість, яка ще не була оприлюднена та виправлена, яку хакери можуть зловживати без виявлення, що має величезну руйнівну силу. Виявлена 0day вразливість дозволяє зловмисникам отримати повний контроль над системою Windows, що може призвести до витоку особистої інформації, краху системи, втрати даних та інших серйозних наслідків. Від крадіжки приватного ключа криптовалюти до можливого впливу на безпеку цілої екосистеми Web3.
Аналіз патчів
Аналіз коду патча виявив, що основна проблема, яку було виправлено, полягає у надмірній обробці підрахунку посилань на об'єкт. З ранніх коментарів у вихідному коді видно, що попередній код фіксував лише об'єкт вікна, не закриваючи об'єкт меню у вікні, що могло призвести до неправильного посилання на об'єкт меню.
Відтворення вразливості
Аналіз показав, що передане xxxEnableMenuItem() меню зазвичай було заблоковано в верхній функції, але конкретний захист якого об'єкта меню залишається неясним. Подальший аналіз показав, що меню, яке повертає функція MenuItemState, може бути головним меню вікна, а також підменю або меню більш глибокого рівня.
Ми створили спеціальну багаторівневу структуру меню для активації вразливості, що містить системне меню з конкретними типами ідентифікаторів, і спеціально обробили відносини між меню. Врешті-решт, при поверненні користувацького рівня xxxRedrawTitle вивільняється вказаний об'єкт меню, що призводить до недійсного об'єкта при подальшому посиланні на функцію xxxEnableMenuItem.
Використання вразливостей
Експлуатація вразливостей в основному враховує два напрямки: виконання shell-коду та використання примітивів читання/запису для зміни токена. Після комплексного аналізу ми обрали останній.
Ключові етапи включають:
Ми через ретельне проектування розташування пам'яті, використовуючи об'єкти вікна та об'єкти HWNDClass, створили керовані примітиви читання та запису. Використовуючи GetMenuBarInfo() для реалізації довільного читання, SetClassLongPtr() для реалізації довільного запису. В результаті можна реалізувати операції, такі як заміна токена процесу.
https://img-cdn.gateio.im/webp-social/moments-697c5814db02534f63b44c0d1d692f83.webp(
![Numen ексклюзив: уразливість Microsoft 0day може зламати Web3 гру на системному + фізичному рівнях])https://img-cdn.gateio.im/webp-social/moments-b0942592135ac96c6279544a62022329.webp(
Підсумок
Microsoft реконструює код, пов'язаний з win32k, використовуючи Rust, у майбутньому подібні вразливості можуть бути усунені.
Процес використання вразливості відносно простий, в основному залежить від витоку адреси десктопного стека.
Виявлення цієї уразливості, ймовірно, стало можливим завдяки більш досконалому моніторингу покриття коду.
Виявлення аномальних розташувань пам'яті та читання/запису даних вікна допомагає виявити такі вразливості.
![Numen ексклюзив: уразливість Microsoft 0day може зруйнувати Web3 гру на системному+фізичному рівнях])https://img-cdn.gateio.im/webp-social/moments-b06b098af4f07260fdc03a75da160706.webp(