🎉 Gate xStocks 交易开启啦,现货、合约、Alpha齐上线!
📝 在Gate广场发帖,晒出你的交易体验或精彩截图,瓜分$1,000大奖池!
🎁 广场优质创作者5名,每人独享$100合约体验券!
🎉 帖文同步分享到X(推特),浏览量前十再得$50奖励!
参与方式:
1️⃣ 关注 @Gate广场_Official
2️⃣ 带 #Gate xStocks 交易体验# ,原创发帖(不少于20字,仅用活动标签)
3️⃣ 若分享到推特,请将链接提交表单:https://www.gate.com/questionnaire/6854
注:表单可多次提交,发布更多帖文可提升获奖机会!
📅 7月3日16:00—7月9日24:00(UTC+8)
详情:https://www.gate.com/announcements/article/45926
每一条体验,都有机会赢取大奖!快在Gate广场show出你的操作吧!
Windows零日漏洞威胁Web3安全:Web2基础设施漏洞或影响数字资产
微软Windows系统零日漏洞分析:可能危及Web3生态安全
近期微软发布的安全补丁中修复了一个正在被黑客利用的Windows系统提权漏洞。这个漏洞主要存在于早期Windows版本中,无法在Windows 11上触发。本文将分析在当前安全机制不断加强的背景下,攻击者可能如何继续利用这个漏洞。
漏洞背景
这是一个零日漏洞,即未公开披露就已被利用的系统漏洞。通过该漏洞,黑客可获取Windows系统的完全控制权,从而可能导致个人信息泄露、系统崩溃、数据丢失、财务损失等严重后果。对于Web3用户来说,私钥可能被窃取,数字资产面临被转移的风险。从更大范围看,这个漏洞甚至可能影响到基于Web2基础设施运行的整个Web3生态。
漏洞分析
补丁分析显示,这是一个win32k中与窗口对象引用计数相关的问题。通过分析早期源码注释发现,以前的代码只锁定了窗口对象,而没有锁定窗口中的菜单对象,导致菜单对象可能被错误引用。
进一步分析发现,问题出在xxxEnableMenuItem函数中。该函数返回的菜单对象可能是窗口主菜单,也可能是子菜单甚至子子菜单。通过构造特殊的多层嵌套菜单结构,可以在函数返回用户层时释放某个中间菜单对象,从而在后续引用时造成漏洞。
漏洞利用
利用该漏洞的主要思路有两种:
执行shellcode代码。但在高版本Windows中,这种方式面临一些技术难题。
利用读写原语修改token地址。这种方式具有更好的通用性,主要需要解决如何控制cbwndextra值的问题。
最终采用的方案是:
通过控制窗口对象内存布局,利用xxxRedrawWindow函数中的标志位操作写入HWNDClass的cb-extra值。
设计连续的HWND对象内存布局,释放中间对象并用HWNDClass对象占用。
利用堆内存中泄露的内核句柄地址精确控制对象排列。
使用GetMenuBarInfo()实现任意读,SetClassLongPtr()实现任意写。
最终通过修改token地址实现提权。
总结
微软正在用Rust重构win32k相关代码,未来此类漏洞可能会减少。
该漏洞利用过程相对简单,主要依赖桌面堆句柄地址泄露。
发现该漏洞可能依赖于更完善的代码覆盖率检测。
对异常的内存布局和读写操作进行检测,有助于发现类似漏洞。