🎉 #Gate Alpha 第三届积分狂欢节 & ES Launchpool# 联合推广任务上线!
本次活动总奖池:1,250 枚 ES
任务目标:推广 Eclipse($ES)Launchpool 和 Alpha 第11期 $ES 专场
📄 详情参考:
Launchpool 公告:https://www.gate.com/zh/announcements/article/46134
Alpha 第11期公告:https://www.gate.com/zh/announcements/article/46137
🧩【任务内容】
请围绕 Launchpool 和 Alpha 第11期 活动进行内容创作,并晒出参与截图。
📸【参与方式】
1️⃣ 带上Tag #Gate Alpha 第三届积分狂欢节 & ES Launchpool# 发帖
2️⃣ 晒出以下任一截图:
Launchpool 质押截图(BTC / ETH / ES)
Alpha 交易页面截图(交易 ES)
3️⃣ 发布图文内容,可参考以下方向(≥60字):
简介 ES/Eclipse 项目亮点、代币机制等基本信息
分享你对 ES 项目的观点、前景判断、挖矿体验等
分析 Launchpool 挖矿 或 Alpha 积分玩法的策略和收益对比
🎁【奖励说明】
评选内容质量最优的 10 位 Launchpool/Gate
Windows系统0day漏洞分析:从win32k提权到Web3安全风险
微软Windows系统0day漏洞分析与利用
近期,微软发布的安全补丁中修复了一个正被积极利用的win32k提权漏洞。该漏洞主要影响早期Windows系统版本,而在Windows 11上似乎无法触发。本文将分析在当前安全环境下,攻击者可能如何继续利用这类漏洞。以下分析基于Windows Server 2016环境完成。
漏洞背景
0day漏洞指未公开且未修复的安全漏洞,类似于金融市场中的T+0交易概念。此类漏洞一旦被恶意利用,可能造成严重危害。本次发现的Windows系统0day漏洞可让攻击者获得系统完全控制权,进而实施信息窃取、系统破坏、恶意软件植入等攻击。从Web3角度看,这可能导致私钥被盗、数字资产被转移,甚至危及基于Web2基础设施的整个Web3生态。
补丁分析
分析补丁代码发现,主要修复了一个对象引用计数处理的问题。结合早期win32k源码注释可知,原代码仅锁定了窗口对象,而未锁定窗口中的菜单对象,可能导致菜单对象被错误引用。
漏洞利用概念验证(PoC)
分析发现,xxxEnableMenuItem函数中的MenuItemState可能返回窗口主菜单或子菜单。我们构造了一个特殊的四层菜单结构,包含以下特征:
触发漏洞时,在xxxRedrawTitle返回用户层时删除菜单C和B的关联,释放菜单C。这导致xxxEnableMenuItem函数后续引用无效的菜单C对象。
漏洞利用(Exp)实现
整体思路
考虑两种可能的利用方向:
执行shellcode:参考早期CVE-2017-0263等漏洞,但在新版Windows中可能面临诸多障碍。
利用读写原语修改token:近年来仍有公开exp可借鉴,主要需解决如何首次控制cbwndextra值的问题。
我们采用第二种方案,将exp拆分为控制cbwndextra值和建立稳定读写原语两个步骤。
首次数据写入
利用窗口类WNDClass的名称对象占用释放的菜单对象内存。在xxxRedrawWindow函数中找到可写入数据的位置,通过控制前一个对象内存数据来满足函数中的标志检查。
稳定内存布局
设计连续三个0x250字节HWND对象的内存布局,释放中间对象并用HWNDClass对象占用。前后HWND对象分别用于通过函数检查和实现读写原语。通过内核句柄地址泄露来精确定位对象排列。
读写原语实现
任意读使用GetMenuBarInfo函数,任意写使用SetClassLongPtr函数。除TOKEN写入外,其他写入操作均通过第一个窗口对象的class对象完成。
结论
微软正在使用Rust重构win32k代码,未来可能彻底解决此类漏洞。
此类漏洞利用主要依赖桌面堆句柄地址泄露,对老旧系统仍构成安全隐患。
该漏洞的发现可能得益于更完善的代码覆盖率检测。
对异常内存布局和窗口数据读写的监测有助于发现类似漏洞。
给文章的评论:
rust就能拯救win了?整笑了