VBScript引擎漏洞分析 CVE-2018-8373
在9月18日,也就是在Trend Micro研究人员发布分析UAF漏洞CVE-2018-8373的文章后一个月,又发现了一个影响VBScript引擎的新版Windows版本的免费使用(UAF)漏洞CVE-2018-8373的细节,然后发现了另一个漏洞,也是在野外使用相同的漏洞。请注意,此漏洞利用程序不适用于具有更新的Internet Explorer版本的系统。
它不是修改NtContinue的CONTEXT结构来执行shellcode,例如在之前的漏洞利用示例的情况下,此新示例通过修改VBScript Engine中的SafeMode标志从Shell.Application获取执行权限。此漏洞的执行类似于CVE-2014-6332和CVE-2016-0189。
图1.利用修改SafeMode标志以运行Shellcode的漏洞的代码片段
图2.显示PowerShell有效负载解码的代码片段
关于SafeMode
使用Shell.Application或wscript.Shell执行脚本时,VBScript引擎将检查SafeMode标志以确定脚本是否可以运行。如果VBScript引擎未处于安全模式,则Shell中的shellcode。应用程序或wscript.Shell可以直接执行。
图3.显示如何检查SafeMode标志的屏幕截图
事实上,最新版本的Internet Explorer(IE 11)的VBScript Engine中的SafeMode标志不再位于COleScript + 0x174中,因此即使没有补丁,此漏洞利用脚本也无法使用它。自2016年1月以来,尚未支持旧版本的Internet Explorer,但该漏洞利用程序无法在安装了受支持和修补的IE版本的计算机上运行。
图4.代码的并排视图,显示Windows 10(左)和Windows 7(右)中的SafeMode标志
除此之外,研究人员还发现,攻击者在一个利用漏洞的网站上托管的文件中使用了另一个VBScript漏洞——CVE-2018-8174:
图5.在同一网站上托管的文件中使用的CVE-2018-8174漏洞的屏幕截图
根据之前的分析,VBScript!AccessArray将数组元素的地址存储在堆栈中。VBScript!AssignVar然后在脚本中触发默认属性Get函数的调用,以修改数组的长度。这会通过释放VBScript!AccessArray保存在栈中的数组元素的内存。打补丁后,添加SafeArrayLock函数以在Vbscript!AssignVar之前锁定当前数组,从而无法再在Default Property Get函数中修改数组长度。
妥协指标(IoC)
检测到Hash为CVE-2018-8373漏洞利用(SHA256)96bdf283db022ca1729bbde82976c79d289ec5e66c799b3816275e62e422eb5
(编译:曲速未来安全区,内容来自链得得内容开放平台“得得号”;本文仅代表作者观点,不代表链得得官方立场)
关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/
关注网络尖刀微信公众号
随时掌握互联网精彩
随时掌握互联网精彩
赞助链接
排名
热点
搜索指数
- 1 逐梦苍穹 习近平引领航天强国建设 4942420
- 2 神十八发射取得圆满成功 4964014
- 3 职高女孩逆袭成双一流大学研究生 4827062
- 4 解码首季经济成绩单 4727984
- 5 老人被宠物狗撕咬 手中握刀不舍得砍 4600956
- 6 居民家中储存10吨53度白酒被罚 4516260
- 7 夫妻养2.8万只鸡 为省人工自己捡蛋 4467222
- 8 奶凶奶凶的交警姐姐找到了 4388152
- 9 深圳部分区域将取消限购不实 4241995
- 10 孙子举报爷爷种罂粟?民警:虞美人 4195820