导语:4种利用Microsoft Office投递恶意软件的技术
根据微软2016年的威胁情报报告,98%的针对Office的威胁是通过利用宏实现的。 那么,我们是否应该只专注于检测利用宏的威胁呢?当然不是。攻击者在不断创新,不断寻找绕过现有安全解决方案的方法,而使恶意软件易于执行是攻击者首先要考虑的事情。漏洞利用是实现代码执行的好方法,但对于大多数攻击者而言,漏洞利用实施起来太考验技术,要购买的话价格又太贵。利用较少见的文件类型投递恶意软件的方式简单易用,不需要受害者执行太多操作,也可以逃避检测。
如果在野的恶意软件尚未普遍使用某文件类型,则有很大可能安全产品不能正确分析此类文件。可以利用一些很少使用的Office文件类型和功能来实现此目的。在这篇博客文章中,我们重点介绍了使用几乎被遗忘了的MS Office功能,来投递恶意软件的技术。
4种利用Microsoft Office投递恶意软件的技术
除了常见的利用VBA和利用漏洞的方式,Office还支持几乎被遗忘的基本不会在正常环境中使用的文件类型。如果Excel支持某文件类型(例如, IQY, SLK),此文件将在Windows中显示一个熟悉的Excel图标,从而降低受害者怀疑的可能性,进而更有可能打开此文件。一旦使用Excel打开此文件,就可以使用DDE(动态数据交换)协议轻松的在受害主机上执行代码(如果在受害主机启用了DDE的话)。
使用OLE(对象链接和嵌入)是一种利用Windows原生支持的文件类型来感染用户主机的常用技术。引诱受害者打开Word文档要比直接打开可执行文件更容易。攻击者的问题是Office 2016默认阻止某些扩展名文件的执行。安全研究员Matt Nelson发现了一种文件类型“SettingContent-ms”它能够执行代码,但不在Office实现的阻止执行黑名单中,因此不会像OLE那样被阻止执行。
滥用Office功能的另一种方法众所周知,但很少使用: Word或Excel使用的Startup文件夹。如果将受支持的文件放在此文件夹中,则在下次启动Office程序时会自动打开该文件。
IQY – Excel Web Query
SLK – 符号链接
Startup文件夹
嵌入SettingContent-ms
接下来让我们来看看利用这些投递技术的四个样本。
IQY – Excel Web Query
查看VMRay Analyzer报告
SHA256: ca0da220f7691059b3174b2de14bd41ddb96bf3f02a2824b2b8c103215c7403c
Excel Web Query是一种简单文本文件,用于从Web查询内容,并填充到Excel单元格中。这种文件包含一个URL,在Excel中打开文件后,URL的内容将下载到一个工作簿。在这之后,轻松的使用DDE执行代码就是可行的了。
Excel已支持该文件类型超过十年,但公开发布的恶意软件直到5月底才开始使用此技术.
我们在6月初发布了一份详细介绍利用此种方式进行攻击行动的报告:
恶意软件 分析: Excel Web Query (iqy) 文件下载FlawedAmmyy远控 (VirusTotal 5/59) https://t.co/GJAnsfwwOg #infosec18 pic.twitter.com/PCpm3O1Pfe
—— VMRay(@vmray) 7 June 2018
样本本身非常简单,只是一个文本文件,其中包含要下载的链接。
图1: IQY文件的内容
打开文件时,Excel下载文件2.dat,并将文件的内容复制到单元格。
图2: Excel下载下一攻击阶段的文件
图3: 下载的2.dat文件的内容
文件2.dat的内容以=cmd|开头。这是一个简单的DDE方法,用于执行后面的代码: 使用PowerShell下载下一个攻击阶段的文件(1.dat)。执行命令之前,Excel中会弹出警告。
图4: Office 2016弹出的警告
图5: 第二阶段的内容, 1.dat
1.dat是一个简单的PowerShell下载器,可以下载并执行FlawedAmmyy远控。
图6: IQY文件下载和执行FlawedAmmyy远控的流程图
查看VMRay Analyzer报告
SHA256: 3d479d661bdf4203f2dcdeaa932c3710ffb4a8edb6b0172a94659452d9c5c7f0
SLK文件格式用于在电子表格之间交换信息。与IQY一样,Office支持此格式也不止10年,与DDE结合使用执行代码也不难。虽然文件的内部格式没有相关文档,但是可以在不理解文件内部格式的情况下轻松修改已有的SLK文件,再说还有非官方文档可以看啊。
对于攻击者来说,实现代码执行的唯一方法是使用动态表达式替换SLK文件中的单元格,例如以= cmd |开头的表达式。以下示例(地址)使用此技术通过远程的XSL文档启动wmic. 攻击者本可以在文档种直接下载Payload,却是使用了subTee的“SquiblyTwo”利用WMIC来执行代码的技术。
图7: SLK使用自定义电子表格文档启动wmic.
图7: SLK启动WMIC的流程图
查看VMRay Analyzer报告
SHA256: 83b0d7926fb2c5bc0708d9201043107e8709d77f2cd2fb5cb7693b2d930378d2
打开Word或Excel时,它们会解析某些文件夹,查找文件,并默认打开找到的文件。此功能有详细的文档,某些组织会使用此功能打开常用的默认的模板。
恶意软件也可以利用此功能实现驻留或沙箱逃逸。实施起来也简单,只需将文件放入Office程序打开时解析的某一个文件夹中。在下次关联的Office程序启动之前,此文件不会被打开,而沙箱一般不会自动打开Office程序。Hexacorn有一篇关于Office Startup 文件夹的很好的文章。
示例样本(地址)是利用Word的公式编辑器漏洞(CVE-2017-11882)的RTF文件,仅将XLS释放到默认的Excel XLSTART文件夹中,扩展名为xlam.
图9: 沙箱检测到释放文件到XLSTART文件夹的行为
图8: 与释放的XLS文件匹配的YARA规则
释放的XLS有经过混淆的宏,下次启动Excel时,Excel会打开释放的文件,然后执行宏,最后将DLL释放到APPDATA文件夹并为其创建链接,以便在系统启动时运行。
图9: 检测释放的XLS
查看VMRay Analyzer报告
SHA256: 3c6a74d216e10e4ff158716cfa72984230995041c4bbb7596b8c8aaa461d76c5
本质上,SettingContent-ms文件类型是XML,包含一个名为“Deeplink”的标签。deeplink可以指向任何可运行的文件,当文件打开时,将执行指向的文件。
当使用Office打开文档中嵌入的文档时,如果嵌入的文档是可执行文件,Office可以禁止嵌入文件打开,或发出警告。可执行文件的黑名单中没有此扩展名,因此它绕过了黑名单功能,这意味着通过Office文档执行代码一下子容易了太多。漏洞被公开披露后,安全研究人员创建了测试样本,其中许多最终提交到了VirusTotal。该方法也被野外的恶意软件使用过,用于释放LokiBot。从那时起,恶意软件开始广泛的使用此技术,还开发出了变种: 将文件嵌入PDF,而不是DOC文件。
VMRay Analyzer检测文件结果:
图10: VMRay Analyzer检测文件结果
攻击者在不断寻找新的攻击媒介。在Office文档中使用宏很容易检测,漏洞因为需要一定技巧所以不容易获取。但是,Office确实提供了许多现在未使用和被半遗忘的功能,可用于成功的实施攻击。(重新)发现这些Office功能需要努力和技巧,但是一旦获得PoC,就是一个可以用非常少的技巧实施有效攻击的切口。
VMRay Analyzer可成功分析并检测使用这些技术的恶意软件。我们会积极主动添加对新文件类型的支持,尽可能减少攻击者实施攻击的窗口。