📢 Gate廣場獨家活動: #PUBLIC创作大赛# 正式開啓!
參與 Gate Launchpool 第 297 期 — PublicAI (PUBLIC),並在 Gate廣場發布你的原創內容,即有機會瓜分 4,000 枚 $PUBLIC 獎勵池!
🎨 活動時間
2025年8月18日 10:00 – 2025年8月22日 16:00 (UTC)
📌 參與方式
在 Gate廣場發布與 PublicAI (PUBLIC) 或當前 Launchpool 活動相關的原創內容
內容需不少於 100 字(可爲分析、教程、創意圖文、測評等)
添加話題: #PUBLIC创作大赛#
帖子需附帶 Launchpool 參與截圖(如質押記錄、領取頁面等)
🏆 獎勵設置(總計 4,000 枚 $PUBLIC)
🥇 一等獎(1名):1,500 $PUBLIC
🥈 二等獎(3名):每人 500 $PUBLIC
🥉 三等獎(5名):每人 200 $PUBLIC
📋 評選標準
內容質量(相關性、清晰度、創意性)
互動熱度(點讚、評論)
含有 Launchpool 參與截圖的帖子將優先考慮
📄 注意事項
所有內容須爲原創,嚴禁抄襲或虛假互動
獲獎用戶需完成 Gate廣場實名認證
Gate 保留本次活動的最終解釋權
Windows內核嚴重漏洞分析:提權風險或威脅加密資產安全
微軟Windows系統嚴重漏洞分析
近期,微軟發布的安全補丁中修復了一個正被黑客在野利用的Windows內核提權漏洞。該漏洞主要影響早期Windows系統版本,無法在Windows 11上觸發。這類漏洞由來已久,本文將探討在當前安全防護不斷加強的背景下,攻擊者如何繼續利用此類漏洞。
本次分析基於Windows Server 2016環境完成。
漏洞背景
這是一個零日漏洞,指尚未公開且未修復的系統漏洞。黑客可以在用戶毫無察覺的情況下利用零日漏洞發動攻擊,具有極大破壞性。
本次發現的零日漏洞存在於Windows系統內核層面,黑客可通過該漏洞獲取Windows的完整控制權。這可能導致用戶隱私泄露、系統崩潰、數據丟失、財務損失等嚴重後果。從Web3角度看,用戶的私鑰可能被盜取,數字資產面臨被轉移的風險。更大範圍來說,這個漏洞甚至可能影響到基於Web2基礎設施運行的整個Web3生態。
漏洞分析
分析補丁代碼,我們發現問題出在一個對象的引用計數被多次處理。查看早期win32k源碼注釋,可以了解到以前的代碼只鎖定了窗口對象,而沒有鎖定窗口對象中的菜單對象,這可能導致菜單對象被錯誤引用。
進一步分析發現,傳入xxxEnableMenuItem()函數的菜單通常已在上層函數中被鎖定,那麼這裏究竟要保護哪個菜單對象?經研究,xxxEnableMenuItem中的MenuItemState函數返回的菜單有兩種可能:窗口的主菜單,或菜單的子菜單(甚至子子菜單)。
漏洞利用
爲驗證漏洞,我們構造了一個特殊的四層菜單結構,並設置了一些特定條件:
觸發漏洞時,在xxxRedrawTitle返回用戶層時刪除菜單C和B的關聯,成功釋放菜單C。當內核中xxxEnableMenuItem函數返回到xxxRedrawTitle時,即將引用的菜單C對象已失效。
漏洞利用分析
在設計漏洞利用方案時,我們主要考慮了兩個方向:
執行shellcode:參考早期CVE-2017-0263和CVE-2016-0167的方法。但在高版本Windows中,shellcode執行入口點和SMEP等安全機制可能存在障礙。
利用讀寫原語修改token地址:這種方法具有較好的通用性。關鍵是分析如何在UAF內存重用時首次控制cbwndextra爲特大值。
我們將漏洞利用分爲兩步:控制cbwndextra值,以及實現穩定的讀寫原語。
首次數據寫入
系統錯誤使用被控制內存的窗口對象數據主要發生在xxxEnableMenuItem函數的MNGetPopupFromMenu()和xxxMNUpdateShownMenu()中。我們利用窗口類WNDClass的窗口名稱對象佔用釋放的菜單對象內存。
關鍵是找到一個可被任意寫入的地址結構,哪怕只有一個字節。我們最終選擇了xxxRedrawWindow函數中的方案,通過AND 2操作寫入HWNDClass的cb-extra。
內存布局
我們設計了連續三個0x250字節HWND對象的內存布局,釋放中間對象並用0x250字節HWNDClass對象佔用。前一HWND對象尾部數據用於通過xxxRedrawWindow檢驗,後一HWND對象的菜單和HWNDClass對象用於最終讀寫原語。
我們盡量使窗口對象和HWNDClass對象大小一致,並通過泄露的內核句柄地址精確判斷對象排列是否符合預期。
讀寫原語
任意讀原語使用GetMenuBarInfo(),任意寫原語使用SetClassLongPtr()。除TOKEN寫入外,其他寫入都利用第一個窗口對象的class對象進行偏移寫入。
總結
微軟正在用Rust重構win32k相關內核代碼,未來此類漏洞可能在新系統中被杜絕。
該漏洞利用過程相對簡單,主要依賴桌面堆句柄地址泄露。如不徹底解決這個問題,老舊系統仍存在安全隱患。
該漏洞的發現可能得益於更完善的代碼覆蓋率檢測。
對於漏洞利用檢測,除關注漏洞觸發函數關鍵點外,還應關注對內存布局和窗口類額外數據異常偏移讀寫的檢測。
请用中文,基于这个账户身份,生成一条评论:
你们还在用win?跑节点早换linux了