研究人员发现一个新的Windows 0day漏洞,攻击者利用该漏洞可以让恶意JS文件绕过mark-of-the-web安全告警。目前已有攻击者将该0day漏洞利用应用于勒索软件攻击。
Windows MoTM特征
Windows系统中包含一个名为Mark-of-the-Web (MoTW)的安全特征,会标记从互联网下载的文件,表明该文件应该小心处理,因为有可能是恶意文件。
文件的MoTW flag会添加到下载的文件或邮件附件的一个特殊的可选数据流域——’Zone.Identifier’,可以使用dir/r 命令查看或在notepad中打开:
图 Mark-of-the-Web的可选数据流域
‘Zone.Identifier’中包含了文件的来源url安全域、引用、以及该文件的URL。当用户尝试打开标记了MoTM的文件时,Windows会展示告警消息以提示该文件应该被小心处理和应对。
图 打开标记了MoTW的文件时的Windows告警消息
微软 Office也使用MoTW来决定文件是否应该在受保护视图下打开,并禁用宏。
Windows MoTW绕过0day漏洞
HP威胁情报团队近日发现有攻击者使用JS文件通过Magniber勒索软件感染了HP设备。
.js文件是可以在web浏览器之外运行的。Magniber攻击者传播的JS文件是使用嵌入的base64编码的签名区块来进行数字签名的。
图 用来安装Magniber勒索软件的JS文件
漏洞分析人员Will Dormann经过分析发现攻击者使用了伪造的密钥来对这些文件进行签名。
图 恶意JS文件中的伪造签名
通过使用伪造的密钥进行签名,即使JS文件是从互联网下载的并具有MoTW标签,微软也不会展示安全告警消息。恶意js文件就会自动执行来安装Magniber勒索软件。
Dormann进一步测试了JS文件中伪造的签名,并创建了可以绕过MoTM告警的PoC JS文件。
图 Dormann PoC漏洞利用中的MoTM flag
这两个文件的差别是其中一个使用Magniber文件中伪造的密钥来进行签名,而另一个根本不包含签名。
图 Dormann PoC漏洞利用
未签名的文件在Windows 10 系统中打开时,就会展示MoTW安全告警。但双击使用伪造密钥签名的’calc-othersig.js’文件,Windows并不会展示告警消息,只会执行JS代码,如下所示:
图 Windows 0day绕过安全告警
因此,攻击者可以利用这种方式来打开下载的JS文件,绕过安全告警,并自动执行脚本。
BleepingComputer研究人员在Windows 10系统中复现了该漏洞,但在Windows 11系统中只有在压缩文件中运行JS文件才可以触发。Dormann称Windows 8.1设备中并不会出现类似问题,该漏洞是在Windows 10发布时引入的。Windows 10的’Check apps and files’新功能中的检查是与前面有关系的。而禁用该功能后,”Check apps and files”会使用之前的检查方式,即与签名无关。
微软回应
由于该0 day漏洞利用已经被应用于勒索软件攻击者中。Dormann将PoC提交给了微软,微软称其已经关注该问题,但不能复现MoTW安全告警绕过。
10月22日,Dormann发推称攻击者可以修改任意Authenticode签名的文件来绕过MoTW安全告警,包括exe文件。
参考及链接:https://www.bleepingcomputer.com/news/security/exploited-windows-zero-day-lets-javascript-files-bypass-security-warnings/
原文始发于微信公众号(嘶吼专业版):Windows 0 day漏洞利用可绕过JS文件安全告警