微軟Windows早期版本0day漏洞分析:從提權到利用全流程

robot
摘要生成中

微軟Windows系統0day漏洞分析及利用

近期,微軟發布的安全補丁中修復了一個正在被利用的win32k提權漏洞。該漏洞僅存在於早期Windows系統版本中,無法在Windows 11上觸發。本文將分析在當前安全防護不斷完善的背景下,攻擊者如何繼續利用此類漏洞。

Numen 獨家:微軟 0day 漏洞可系統+物理層面掀掉 Web3 牌局

漏洞背景

0day漏洞指尚未公開且未被修復的安全漏洞,類似於金融市場的T+0交易概念。此類漏洞一旦被發現可能會在未被察覺的情況下被惡意利用,造成巨大危害。

本次發現的Windows系統0day漏洞可使攻擊者獲取系統完全控制權。這可能導致個人信息泄露、系統崩潰、數據丟失、財產損失等嚴重後果。從Web3角度看,可能造成私鑰被盜、數字資產被轉移,甚至影響整個基於Web2基礎設施的Web3生態。

Numen 獨家:微軟 0day 漏洞可系統+物理層面掀掉 Web3 牌局

補丁分析

分析補丁代碼發現,問題出在對象引用計數的多次處理。通過查看早期源碼注釋可知,以前的代碼只鎖定了窗口對象,而未鎖定窗口中的菜單對象,可能導致菜單對象被錯誤引用。

Numen 獨家:微軟 0day 漏洞可系統+物理層面掀掉 Web3 牌局

漏洞復現

通過分析漏洞函數上下文,發現傳入xxxEnableMenuItem()的菜單通常已在上層函數被鎖定。進一步分析發現,MenuItemState函數返回的菜單可能是窗口主菜單,也可能是子菜單或子子菜單。

爲觸發漏洞,構造了一個特殊的四層菜單結構,並設置了以下特徵:

  1. 最底層菜單D的ID必須爲系統菜單類型
  2. 頂層菜單A也必須是系統菜單,但需刪除對應系統菜單類型
  3. 刪除菜單C在菜單B中的引用
  4. 菜單B的存在似乎有助於菜單C的釋放

在xxxRedrawTitle返回用戶層時,刪除菜單C和B的引用關係並釋放菜單C。這樣在xxxEnableMenuItem函數返回點時,即將引用的菜單C對象已失效。

Numen 獨家:微軟 0day 漏洞可系統+物理層面掀掉 Web3 牌局

漏洞利用

漏洞利用主要考慮兩個方向:

  1. 執行shellcode代碼:參考早期CVE-2017-0263等漏洞,但在高版本Windows中可能面臨入口點和SMEP等安全機制問題。

  2. 利用讀寫原語修改token地址:近年來有多個公開exp可參考,對桌面堆內存布局和讀寫原語具有通用性。關鍵是分析如何在UAF內存重用時首次控制cbwndextra爲特大值。

本次利用採用第二種方案,將整個過程分爲兩步:

  1. 利用UAF漏洞控制cbwndextra值
  2. 控制cbwndextra後實現穩定的讀寫原語

Numen 獨家:微軟 0day 漏洞可系統+物理層面掀掉 Web3 牌局

首次數據寫入

漏洞觸發後,系統可能在MNGetPopupFromMenu()和xxxMNUpdateShownMenu()中錯誤使用被控制的窗口對象數據。我們使用窗口類WNDClass中的窗口名稱對象佔用釋放的菜單對象。

關鍵是找到一個可由我們構建的地址結構中能任意寫入數據的位置,哪怕只有一個字節。最終選擇了xxxRedrawWindow函數中的方案,通過布局內存控制前一個對象的內存數據來通過函數中的對象標志判斷。

穩定的內存布局

設計至少三個連續的0x250字節HWND對象,釋放中間一個並用HWNDClass對象佔用。前一個HWND對象尾部數據用於通過xxxRedrawWindow中的標志檢驗,後一個HWND對象的菜單對象和HWNDClass對象用作最終讀寫原語媒介。

通過堆內存中泄露的內核句柄地址來精確判斷申請的窗口對象是否按預期順序排列。

讀寫原語

任意讀原語使用GetMenuBarInfo(),任意寫原語使用SetClassLongPtr()。除替換TOKEN的寫入外,其他寫入都利用第一個窗口對象的class對象使用偏移來寫入。

Numen 獨家:微軟 0day 漏洞可系統+物理層面掀掉 Web3 牌局

總結

  1. win32k漏洞歷史悠久,但微軟正在嘗試用Rust重構相關代碼,未來新系統中此類漏洞可能被杜絕。

  2. 該漏洞利用過程相對簡單,主要難點在於如何控制首次寫入。嚴重依賴桌面堆句柄地址泄露,這仍是老舊系統的安全隱患。

  3. 該漏洞的發現可能得益於更完善的代碼覆蓋率檢測。

  4. 對於漏洞利用檢測,除關注觸發函數關鍵點外,還應關注異常的內存布局和窗口數據偏移讀寫。

Numen 獨家:微軟 0day 漏洞可系統+物理層面掀掉 Web3 牌局

Numen 獨家:微軟 0day 漏洞可系統+物理層面掀掉 Web3 牌局

TOKEN6.41%
查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 5
  • 分享
留言
0/400
薅毛致富vip
· 11小時前
还好11不受影响
回復0
链上酱油师vip
· 08-05 20:25
老win又咋啦?每天都有漏洞
回復0
地板价观察员vip
· 08-05 20:23
win11逃过一劫啦
回復0
MEV三明治受害者vip
· 08-05 20:21
漏洞包丝戏多 谁炒谁割
回復0
币圈疯批女友vip
· 08-05 20:13
11已经不香了嘛
回復0
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)