
几十年来,黑客一直在利用人类的轻信和粗心。 大部分用户毫不犹豫地打开了一封无害的电子邮件附件,并且在不知情的情况下启动了恶意软件。 为了保护自己免受此类攻击,您需要亲自了解敌人。 今天,我们将尝试弄清楚如何安排今年发现的三种在办公应用程序中执行代码的新技术,以及存在哪些针对这些新技术的保护方法。
Xlm宏
Outflank专家介绍了一种通过所谓的XLM宏(不要与XML混淆)在MS Office Excel中运行代码的新方法。 尽管XLM宏技术已经使用了26年以上(最早出现在用于Windows 3.0 / 3.1的Excel 4.0中),但直到Office 2016的所有版本的Microsoft Office Excel仍支持该技术。
要在Excel中创建XLM宏,必须遵循以下步骤:
在Excel工作表的上下文菜单中,选择“插入”。

接下来,选择“ MS Excel 4.0”。

结果,将出现“ Macro1”工作表,在其中的任何单元格中,使用“ EXEC”功能可以启动所需的过程。 若要自动运行宏,必须将第一个单元重命名为“ Auto_open”(类似于VBA宏中的AutoOpen()过程)。
打开保存的文档后,出现标准通知,并带有运行宏的请求。

通过在上下文菜单中选择“隐藏”可以隐藏宏表。
除了启动进程的功能外,XLM宏还可以使用REGISTER和CALL函数访问Win32 API。 以下是实现Shellcode注入技术的宏的PoC代码。

同时,CHAR编码功能用于在宏单元内部存储外壳代码的字符。 要删除空字节,可以使用msfvenom实用程序,它是Metasploit框架的一部分。
通过在Excel文件中存储的方法,XLM宏与一年后在Excel 5.0中出现的经典VBA宏有显着不同。 在新的Excel .xlsm格式(ZIP存档)中,XLM宏存储在macrosheets目录中的XML文件中。 以.xsl格式(Excel 97-2003),该宏存储在OLE流中。
进一步可以看到,VBA宏存储在单独的容器中(在左图中),而XLM宏位于同一数据容器中。

存储宏的方法中的这些差异极大地影响了防病毒软件对其检测的质量,特别是,尽管Office 365 要求支持,但防恶意软件扫描接口(AMSI)技术不支持XLM。
例如,使用VBA和XLM宏在Excel中实现了Metasploit powershell web_delivery代码(如下图所示)。


在Virustotal上,带有VBA宏的Excel文档触发了59种防病毒软件中的21种。

同时,带有XLM宏的类似文档也没有引起任何防病毒怀疑。

示范
通过Office中的XLM宏执行代码
Microsoft Office在线视频
Cumulate研究小组发现了一种通过使用“在线视频”插入视频来在Word中执行代码的新方法。 使用此元素,您可以将YouTube视频添加到文档中,然后将其链接替换为在打开文档并单击视频时将在Internet Explorer中执行的JavaScript代码。 以下向量看起来最适合社会工程学:
- 在带有YouTube视频的iframe中为IE / Flash添加漏洞利用代码。
- 使用msSaveOrOpenBlob方法在iframe和YouTube视频中添加JavaScript代码,建议通过该方法下载并运行恶意文件。 该文件的正文包含在base64 javascript中。
创建带有docx扩展名的文件。 在描述的负载下,您必须执行以下步骤:
1.通过“插入-在线视频”添加YouTube视频。

2.保存创建的docx文件。
3.解压缩保存的docx。 Docx格式 是以下内容的zip归档文件:

4.在EmbeddedHtml元素的document.xml文件中的Word目录中,通过将JavaScript代码插入iframe主体或替换iframe中的相应链接(src),添加JavaScript代码。
5.创建所做的更改的zip存档(带有docx扩展名)。
此外,在打开生成的docx文件时,要求用户单击视频链接并启动下载的文件。 或者,您可以显示一个屏幕快照,其中包含更新Flash Player的建议,提示用户下载并运行文件。 不显示安全警告。

与XLM宏一样,此代码执行技术未被Virustotal上的任何防病毒软件检测到,并且对病毒编写者来说非常有吸引力,并且在社会工程学中作为渗透测试的一部分也很常见。
示范
通过Office中的在线视频执行代码
VBA踩踏
在Derbycon 2018大会上, 引入了一种用于在Office文档中启动VBA宏的技术,称为VBA Stomping。 该技术的本质是删除/修改Office文档正文中的VBA源代码(作为填充零的替代方法),而保持编译后的称为p代码的宏代码不变。 VBA代码及其编译版本位于zip存档(扩展名为.docm,.xslm的文件)中的vbaProject.bin文件内。

因此,该技术归结为删除/填充vbaProject.bin文件的零部分。

结果,该文档不会引起仅通过宏代码分析宏的防病毒软件的怀疑。 例如,使用此技术,研究人员能够将通过Office文件分发的Emotet银行木马的防病毒响应次数从Virustotal上的36/59减少到7/58。


同样,此技术使文件分析变得困难,因为如果不借助反编译工具,没有一个工具能够提取VBA源代码,则在解决该问题之前也不会在Office宏编辑器中显示该源代码。
防护等级
针对上述技术的建议是传统的针对社会工程方法的保护措施:
- 提高员工对信息安全问题的认识。
- 禁止在Microsoft Office中使用宏。
- 一种确保信息安全的集成方法,包括使用端点解决方案以及外围安全工具(下一代防火墙,UTM解决方案,邮件网关)。