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

 

posted @ 2021-12-29 12:36  admin-xiaoli  阅读(193)  评论(0编辑  收藏  举报