本文讲的是利用开源工具分析新型PowerPoint恶意文档,最新新出现了一个新型的恶意MS Office文档:通过将鼠标光标悬停在链接上来执行PowerShell命令的PowerPoint文档,此攻击不涉及VBA宏。在本博客中,我们将展示如何使用免费的开源工具分析这些文档。像往常一样,该恶意MS Office文件通过电子邮件发送给受害者。
分析
使用emldump.py(一个分析MIME文件的工具),我们可以分析用户收到的电子邮件:
输出表示邮件附件位于第5部分。我们选择第5部分,并执行前100个字节的HEX / ASCII转储,以了解我们处理的文件类型:
以PK开头的文件很有可能是ZIP文件。所以我们把这个文件和管道转储到zipdump.py(一个分析ZIP文件的工具)中:
这是一个ZIP文件。从ZIP文件中的文件名来看,我们可以假定它是一个PowerPoint文件:.pptx或.ppsx。
使用zipdump和选项-E(-E选项提供有关所包含文件类型的额外信息),我们可以通过查看头文件并计算多少个文件,了解该PowerPoint文件中包含的文件类型相同标题:
所以ZIP文件(.pptx或.ppsx)包含1个JPEG文件(JFIF),11个空文件和36个XML文件。
一开始说,恶意软件作者可能会滥用PowerPoint的鼠标悬停功能启动命令。这可以通过使用ppaction://协议的URL来启动PowerShell命令。
要确定本文档是否滥用此功能,我们可以使用YARA。我们定义了2个简单的YARA规则来搜索字符串“ppaction”和“powershell”:
rule ppaction { strings: $a = "ppaction" nocase condition: $a }</p> <p style="text-align: justify;">rule powershell { strings: $a = "powershell" nocase condition: $a }
我们使用zipdump.py在ZIP文件中的每个文件上应用YARA规则:
如上图所示,文件19(ppt/slides/slide1.xml,这是演示文稿的第一张幻灯片)包含字符串ppaction字符串,文件21(ppt/ slides/_rels/slide1.xml.rels)包含字符串电源外壳。
我们来看看文件19:
要执行的程序可以使用id rId2找到,但是我们已经怀疑该程序是Powershell,并在文件21中定义。因此,让我们来看看:
的确,如上图截图所示,我们有一个Target =“powershell …命令,具有Id =”rId2“。我们来解释和解码这个命令。首先,我们使用Re-search.py来提取具有正则表达式的Target值:
这给了我们一个URL编码的PowerShell命令(和另一个目标值,一个.xml文件的名称,这对于这个分析不重要)。使用translate.py和一些Python代码,我们可以使用模块urllib来解码URL:
现在我们可以清楚地识别PowerShell命令:它将下载并执行一个文件。网址尚未完全清楚。它是通过在PowerShell中连接(+)字符串和转换为字符([char] 0x2F)的字节来构建的)。字节0x2F是正斜杠(/)的ASCII值,所以让我们用sed替换这个实际字符的字节。
我们现在可以通过使用sed再次删除“+”来执行字符串连接:
我们现在可以清楚地看到该文件从哪个URL下载,它被写入临时文件夹中.jse扩展名,然后执行。要提取URL,我们可以再次使用Re-search.py:
.jse文件是一个编码的JavaScript文件。它与VBE(编码VBScript)相同的编码,可以使用此工具进行解码。
结论
通过寻找字符串ppaction(这个字符串可能被模糊化)来检测潜在的恶意PowerPoint文件,从而滥用此功能相当容易。字符串powershell也是一个很好的候选人搜索,但请注意,PowerShell以外的其他程序可用于执行恶意操作。
原文发布时间为:2017年6月9日
本文作者:愣娃
本文来自合作伙伴嘶吼,了解相关信息可以关注嘶吼网站。