2021-12-18 “震网”三代和二代漏洞技术分析
“震网”三代和二代漏洞技术分析
2017年6月份微软补丁发布了一个针对Windows系统处理LNK文件过程中发生的远程代码执行漏洞,通用漏洞编号CVE-2017-8464。
当存在该漏洞的电脑被插上存在漏洞文件的U盘时,不需要任何额外操作,漏洞攻击程序就可以借此完全控制用户的电脑系统。同时,该漏洞也可借由用户访问网络共享、从互联网下载、拷贝文件等操作被触发和利用攻击。
与2015年的CVE-2015-0096上一代相比,CVE-2017-8464利用触发更早,更隐蔽。
早,指的是U盘插入后即触发,而前代需要在U盘插入后浏览到.lnk文件。
隐蔽,指的是本代.lnk文件可以藏在层层(非隐藏的)文件夹中,不需要暴露给受害人见到。
程序层面讲,CVE-2015-0096利用点是在explorer需要渲染.lnk文件图标时,而CVE-2017-8464利用点在于.lnk文件本身被预加载时显示名的解析过程中。
本文中,笔者将对这两个漏洞从漏洞的复现和反漏洞技术检测的防御角度进行剖析。本文是笔者在2017年6月份,没有任何PoC的情况下作的一个探索。
CVE-2017-8464利用能够成功实现基于以下3点:
对控制面板对象的显示名解析未严格认证此对象是否为已注册的控制面板应用。
恶意构造的.lnk文件能够实现使explorer注册一个临时控制面板应用对象。
如上.lnk文件能够将步骤2中注册的临时对象的随机GUID值传输至步骤1所述之处进行解析。
本次利用原理就是由于在解码特殊文件夹时,能够有机会按上述3点完成触发。
(显示名解析,参见IShellFolder:: ParseDisplayName,
以及shell对外的接口SHParseDisplayName。)
原文地址:
https://mp.weixin.qq.com/s/qc25c_nuUax6UoknAVLrAw
本文来自博客园,作者:{admin-xiaoli},转载请注明原文链接:{https://www.cnblogs.com/crackerroot}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架