以前,我们
奇怪的是,Kolsek 最初无法重现 John 描述和演示的攻击,他使用 Windows 7 上运行的 Internet Explorer 下载并打开恶意 MHT 文件。 尽管他的进程管理器显示,计划从他那里窃取的system.ini被隐藏在MHT文件中的脚本读取,但没有发送到远程服务器。
“这看起来像是一个典型的网络标记情况,”科尔塞克写道。 “当从 Internet 收到文件时,正确运行的 Windows 应用程序(例如 Web 浏览器和电子邮件客户端)会以以下形式向该文件添加标签
研究人员验证,IE确实为下载的MHT文件设置了这样的标签。 然后,Kolsek 尝试使用 Edge 下载同一文件并在 IE 中打开它,IE 仍然是 MHT 文件的默认应用程序。 出乎意料的是,这个漏洞竟然奏效了。
首先,研究人员检查了“mark-of-the-Web”,结果发现,除了安全标识符之外,Edge 还将文件来源的来源存储在替代数据流中,这可能会引发一些有关此隐私的问题。方法。 Kolsek 推测额外的行可能会混淆 IE 并阻止其读取 SID,但事实证明,问题出在其他地方。 经过长时间的分析,安全专家在访问控制列表中的两个条目中找到了原因,这两个条目将读取MHT文件的权限添加到了某个系统服务中,而Edge在加载该服务后将其添加到了该服务中。
James Foreshaw,来自专门的零日漏洞团队 - Google 零日计划 -
接下来,研究人员希望更好地了解导致 IE 安全系统失败的原因。 使用 Process Monitor 实用程序和 IDA 反汇编程序进行深入分析,最终发现 Edge 的设置分辨率阻止了 Win Api 函数 GetZoneFromAlternateDataStreamEx 读取 Zone.Identifier 文件流并返回错误。 对于 Internet Explorer 来说,在请求文件安全标签时出现这样的错误是完全出乎意料的,而且显然,浏览器认为该错误等同于该文件没有“mark-of-the-Web”标记,这会自动使其受信任,这就是为什么 IE 允许隐藏在 MHT 文件中的脚本执行并将目标本地文件发送到远程服务器的原因。
“你看到这里的讽刺了吗?” 科尔塞克问道。 “Edge 使用的一项未记录的安全功能抵消了 Internet Explorer 中现有的、无疑更为重要的(网络标记)功能。”
尽管该漏洞的重要性日益增加,它允许恶意脚本作为可信脚本运行,但没有迹象表明微软打算很快修复该错误(如果该错误得到修复)。 因此,我们仍然建议您像上一篇文章一样,更改任何现代浏览器打开 MHT 文件的默认程序。
当然,科尔塞克的研究并非没有一点自我公关。 在文章的最后,他演示了一个用汇编语言编写的小补丁,可以使用他公司开发的0patch服务。 0patch 会自动检测用户计算机上的易受攻击的软件,并即时对其应用小补丁。 例如,在我们描述的情况下,0patch 会将 GetZoneFromAlternateDataStreamEx 函数中的错误消息替换为与从网络接收到的不受信任文件相对应的值,这样 IE 就不会允许任何隐藏脚本按照内置脚本执行。在安全政策中。
来源: 3dnews.ru