当前位置:安全行业动态 → 正文

PowerPoint 自定义操作上传恶意payload

责任编辑:editor005 作者:xiaix |来源:企业网D1Net  2016-02-29 14:17:12 本文摘自:FreeBuf.COM

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

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

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

 

1.png

 

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

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

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

 

2.png

 

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

 

3.png

 

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

 

4.png

 

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

 

5.png

 

这个样本中嵌入的脚本 (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.slideshow

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

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

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

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

 

6.png

 

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

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

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

 

7.png

 

样本存在 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。这就为攻击者提供了更多的选择来伪造可执行文件或脚本的名字,以达到最终欺骗用户的目的。

关键字:Payload

本文摘自:FreeBuf.COM

x PowerPoint 自定义操作上传恶意payload 扫一扫
分享本文到朋友圈
当前位置:安全行业动态 → 正文

PowerPoint 自定义操作上传恶意payload

责任编辑:editor005 作者:xiaix |来源:企业网D1Net  2016-02-29 14:17:12 本文摘自:FreeBuf.COM

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

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

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

 

1.png

 

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

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

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

 

2.png

 

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

 

3.png

 

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

 

4.png

 

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

 

5.png

 

这个样本中嵌入的脚本 (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.slideshow

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

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

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

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

 

6.png

 

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

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

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

 

7.png

 

样本存在 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。这就为攻击者提供了更多的选择来伪造可执行文件或脚本的名字,以达到最终欺骗用户的目的。

关键字:Payload

本文摘自:FreeBuf.COM

电子周刊
回到顶部

关于我们联系我们版权声明隐私条款广告服务友情链接投稿中心招贤纳士

企业网版权所有 ©2010-2024 京ICP备09108050号-6 京公网安备 11010502049343号

^