前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Office DDEAUTO技术分析报告

Office DDEAUTO技术分析报告

作者头像
FB客服
发布2018-02-26 17:22:28
9560
发布2018-02-26 17:22:28
举报
文章被收录于专栏:FreeBufFreeBuf

0x1 背景

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

0x2 DDE技术介绍

Windows提供了应用程序间数据传输的若干种方法。其中一种就是使用动态数据交换(DDE)协议。DDE协议是一套消息和指示的集合。通过发送消息以及共享内存实现应用程序的数据共享和交换。应用程序可以使用DDE协议实现一次性数据传输以及持续的数据交换(当新数据可用时,应用程序发送更新通知给另一个应用程序)。更详细的可以参考MSDN的介绍。(点击阅读原文查看相关链接)

构造的方法如下:

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

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

也可以修改DDEAUTO为DDE,然后需要用WinRAR打开doc文档word/settings.xml,嵌入代码:

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

0x3 样本分析

样本名:DC00035305.doc

样本MD5:FD5D0801D9470908090DCD36AE88E96C

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

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

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

3、 执行命令:

该命令以-w hidden隐藏窗口,-nop强行绕过UAC执行指令,(New-Object System.Net.WebClient).DownloadString下载远程可执行文件,然后运行。下载地址为:(点击阅读原文查看相关链接)

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

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

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

0x4 DDEAUTO原理分析

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

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

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

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

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

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

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

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

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

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

0x5 安全建议

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

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-11-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0x1 背景
  • 0x2 DDE技术介绍
  • 0x3 样本分析
    • 1、 运行样本后,首先会弹出两个非安全风险提示的对话框。
      • 2、 都点“是”按钮后,winword.exe会启动cmd.exe,一次来执行powershell命令:
        • 3、 执行命令:
          • 4、 下载回来的文件为locky系列敲诈者病毒,运行后会加密文档文件,并要求支付0.25比特币以进行解密。
            • 5、 查看该样本,发现样本是恶意利用了DDE协议
            • 0x4 DDEAUTO原理分析
              • 1、 首先会将DDEAUTO的三个字段参数放入全局原子表用于进程间共享字符串数据,这意味着DDEAUTO的三个字段不能超过255字节的长度。
                • 2、 在全局变量中存在一个结构,该结构(4字节一个成员)第一个成员存储了MSWord窗口的HWND,第二个成员用于储存DDE交互的窗口HWND,并且初始化为0,通过下图的函数获取。
                  • 3、 接着程序会调用SendMessageTimeoutW发送广播消息WM_DDE_INITIATE到电脑上运行的程序的所有顶级窗口,每个窗口将被给予1000ms时间以响应此DDE启动消息。
                    • 4、 如果正在运行的程序响应DDE启动请求,则会发送WM_DDE_ACK应答MSWord
                      • 5、 假设目标进程没有运行,根据MSDN的描述,此处应该提示用户目标进程未执行
                        • 6、 然后函数通过调用CreateProcessW创建一个新的进程:
                        • 0x5 安全建议
                        领券
                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档