转载

PowerPoint 自定义操作上传恶意payload

在对最近的网络钓鱼攻击进行分析时我们发现,攻击者开始使用 PowerPoint 自定义操作来代替宏触发恶意 Payload。虽然使用 PowerPoint 附件并不新鲜,但这种攻击还是很有趣的,因为他们可以绕过 Office 附件启用宏的控制器。

1. 攻击者创建一个新的 PowerPoint 文档并插入恶意脚本或可执行文件。插入的文件会被嵌入为一个 OLE 对象中。

2. 自定义操作设置为进行“上一张”操作并自动触发“活动内容”来执行嵌入的 OLE 对象。

PowerPoint 自定义操作上传恶意payload

3. 最后将文档保存为 PowerPoint 放映文件,这样当文件被打开时就会立刻进入放映视图。

当用户打开演示文档时,文档会进入放映视图并开始播放第一张幻灯片,这样就会触发自定义操作来执行嵌入的恶意 Payload。当执行嵌入内容时,用户会收到一个安全警告询问是否要打开/执行文件。

在我们发现的样本中,脚本被命名为 Powerpoint.vbe 来诱使用户执行恶意的 Payload。

PowerPoint 自定义操作上传恶意payload

在分析演示文档的内容后,我们很明显的发现攻击者采用了一系列的方法来隐藏脚本。首先,使用一幅看起来像是幻灯片头部的图片盖住嵌入式对象的图标,我们可以很容易的将这幅图像移开来开展进一步的检测。

PowerPoint 自定义操作上传恶意payload

默认情况下,被插入的对象会存储在文档的 ppt/embeddings 目录下并命名为 oleObject1.bin ,名字中的数字会随着嵌入对象数量的增加而增加。

PowerPoint 自定义操作上传恶意payload

使用工具 psparser.py 我们可以检查被嵌入文件的文档中对象的元数据并提取出恶意的 Payload。

PowerPoint 自定义操作上传恶意payload

这个样本中嵌入的脚本 (Powerpoint.vbe) 会从 hxxp://secureemail[.]bz/updater.exe 下载并执行文件 “updater.exe”( c098a36309881db55709a759df895803 )。

下面这个脚本来源于微软 TechNet 库中常用于解码经过编码的 VB 脚本: https://gallery.technet.microsoft.com/Encode-and-Decode-a-VB-a480d74c

检测恶意演示文档

攻击者希望利用自定义操作来作为 Payload 的载体需要确保以下两件事情:

1. 在幻灯片开始播放时操作就会被触发

2. 操作会执行被嵌入的 Payload

此外,攻击者常常也会混淆 Payload 的名称以诱使用户点击执行。而我们的防御者也可以结合这个特点来帮助识别恶意的演示文档。

为了能让演示文档打开后自动开始播放,攻击者需要将文档保存为 PowerPoint 播放文档( ppsx ),这样 [Content Types].xml 文件会被定义如下:

application/vnd.openxmlformats-officedocument.presentationml.<strong>slideshow</strong>

注: 攻击者可以通过重命名为传统的 .pps 扩展名来绕过包含这个内容类型,这样当文档被打开时会直接进入幻灯片播放视图,尽管文档并不是二进制文档类型。而在重命名为现代的 .ppsx 扩展名时会导致 PowerPoint 抛出一个错误。

攻击者还需要嵌入在被触发时可以被执行的内容,这往往是一个脚本或可执行文件。所有这些要插入的文件都会被 packager.dll 作为一个 OLE 对象嵌入到演示文档中。

默认情况下,被嵌入的对象会被包含在 graphicFrame 中并被幻灯片里 XML 标记的一个 oleObj 节点所引用。 注意:如果攻击者修改了输出,则 oleObj 标签还可以包含其他对象,即同时包含嵌入标识和被嵌入的对象。

这种情况下,被嵌入的内容为一个脚本或可执行程序,其 progId 为 Package 表示本地服务不会处理这个对象内容。

PowerPoint 自定义操作上传恶意payload

过去,攻击者常常会对在 传统的 Office 文档 (二进制复合文档)中插入的内容进行混淆,而现代的 Office 文档(OpenXML 文档)则是基于 XML 标记语言的,可以很容易的被研究者进行分析。相比之下,传统的格式是一个由若干 OLE 流组成的二进制文档,这在 MS-PPT 的 官方文档 中有具体说明

官方说明大约有650页,幸运的是我们不需要全部看完,只需要了解 OLE 对象是如何被引用及如何被存储的即可。

通过结合官方文档分析样本得出以下记录类型被用于引用或链接 OLE 对象。

PowerPoint 自定义操作上传恶意payload

样本存在 RT_ExternalOleEmbed 容器及原子类型 RT_ExternalOleEmbedAtom 和 RT_ExternalOleObjectAtom 表示样本内有被嵌入的内容或链接的 OLE 对象,这强烈表示样本可能存在问题,需要被进一步进行关于是否包含恶意内容的分析。

事件相应

以下主要指标可以用于帮助识别可能的感染,防御者也可以使用 Yara 规则 来帮助识别恶意的文档。

样本哈希值

d7c6e591c0eb1e7ab23c036fd1c93003

2968fb5744433a7a8fabf65228f57801

f4abbd6f97f035cfadd43962ee5c0e20

主要网络指标

  • hxxp://secureemail[.]bz/updater.exe
    • c098a36309881db55709a759df895803
  • hxxp://secureemail[.]bz/pending.exe
    • 982a2161673245c3eaa80313238f4037

对现有 PhishMe Triage 的客户我们使用如下规则进行检查恶意文档:

PM_PPT_With_OLEObject

PM_PowerPoint_Show_Embedded_OLE

PM_PowerPoint_Single_Slide_Presentation

总结

这是另一中攻击者如何利用现有的应用特性绕过安全控制的例子。攻击者使用幻灯片动画和自定义操作代替宏来触发嵌入的 Payload。此外,不同于传统的使用宏,用户不需要进行操作允许执行脚本语言,取而代之是让用户确认他们想运行 Payload。这就为攻击者提供了更多的选择来伪造可执行文件或脚本的名字,以达到最终欺骗用户的目的。

*原文: phishme ,FB小编xiaix编译,转自须注明来自FreeBuf黑客与极客(FreeBuf.COM)

原文  http://www.freebuf.com/articles/network/97211.html
正文到此结束
Loading...