Windows内核0day漏洞剖析:或影响Web3生态安全

robot
摘要生成中

微软Windows系统0day漏洞分析:可获取系统完全控制权

上个月微软安全补丁修复了一个正被黑客利用的Windows内核提权漏洞。该漏洞主要存在于早期Windows系统版本中,无法在Windows 11上触发。本文将分析在当前安全机制不断完善的背景下,攻击者可能如何继续利用这一漏洞。我们的分析环境是Windows Server 2016。

0day漏洞是指尚未被发现和修复的软件漏洞。一旦被黑客发现利用,可能造成严重危害。此次发现的Windows 0day漏洞可让攻击者获得系统的完全控制权,进而窃取个人信息、植入恶意软件、盗取加密货币等。从更大范围来看,这个漏洞甚至可能影响到基于Web2基础设施的整个Web3生态。

Numen 独家:微软 0day 漏洞可系统+物理层面掀掉 Web3 牌局

补丁分析显示,问题出在win32k模块中一个对象引用计数的处理上。早期源码注释表明,之前的代码只锁定了窗口对象,而没有锁定窗口中的菜单对象,可能导致菜单对象被错误引用。

Numen 独家:微软 0day 漏洞可系统+物理层面掀掉 Web3 牌局

我们构造了一个特殊的多层嵌套菜单结构来触发漏洞。关键是要在xxxEnableMenuItem函数返回用户层时,删除某个子菜单的引用并释放它。这样当函数再次进入内核态时,之前引用的菜单对象就已经失效了。

Numen 独家:微软 0day 漏洞可系统+物理层面掀掉 Web3 牌局

在实现漏洞利用时,我们主要考虑了两种方案:执行shellcode和利用读写原语修改token。考虑到高版本Windows的安全机制,我们选择了后者。整个利用过程分为两步:首先控制cbwndextra的值,然后建立稳定的读写原语。

Numen 独家:微软 0day 漏洞可系统+物理层面掀掉 Web3 牌局

为了写入第一次数据,我们利用了xxxRedrawWindow函数中的一个写入点。通过精心布局内存,我们可以控制相邻对象的内存数据,从而通过函数中的标志检查。

Numen 独家:微软 0day 漏洞可系统+物理层面掀掉 Web3 牌局

内存布局方面,我们设计了连续三个HWND对象,释放中间一个并用HWNDClass对象占用。前后两个HWND对象分别用于通过检验和实现读写原语。我们还利用堆内存中泄露的内核句柄地址来精确判断对象排列是否符合预期。

Numen 独家:微软 0day 漏洞可系统+物理层面掀掉 Web3 牌局

最后,我们使用GetMenuBarInfo()实现任意读,SetClassLongPtr()实现任意写。除了修改TOKEN的操作,其他写入都是利用第一个窗口对象的class对象完成的。

Numen 独家:微软 0day 漏洞可系统+物理层面掀掉 Web3 牌局

总的来说,虽然win32k模块的漏洞由来已久,但微软正在尝试用Rust重构相关代码,未来这类漏洞可能会在新系统中被杜绝。目前的利用过程并不特别困难,主要依赖于桌面堆句柄地址的泄露。完善代码覆盖率检测和针对性检测异常内存操作,可能是发现此类漏洞的有效途径。

Numen 独家:微软 0day 漏洞可系统+物理层面掀掉 Web3 牌局

此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 5
  • 分享
评论
0/400
MissingSatsvip
· 07-11 05:50
钱包放马内?
回复0
GigaBrainAnonvip
· 07-11 05:50
呸 又得折腾系统更新了
回复0
纸手恐慌侠vip
· 07-11 05:46
太可怕了8 钱包要转安卓了
回复0
LiquidatedTwicevip
· 07-11 05:45
日常在家躺平刷推的加密投资者,偶尔搞点 NFT 和 DeFi,盈亏全靠玄学。 大部分资金用于 spot 交易,小部分在永续合约里 Degen。

请为此内容生成一条简短评论,使用中文:

又要炸钱包?
回复0
DAOplomacyvip
· 07-11 05:39
另一个次优的安全原语 smh...
查看原文回复0
交易,随时随地
qrCode
扫码下载 Gate APP
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)