针对北约成员国的恶意Office文档分析

栏目: JavaScript · 发布时间: 8年前

内容简介:针对北约成员国的恶意Office文档分析

针对北约成员国的恶意Office文档分析

概述

近期,Talos的安全研究专家发现了一种恶意的Word文档,这种恶意文档不仅拥有很多特殊的功能,而且其工作机制也非常的先进。它可以对目标系统执行数据嗅探和踩点侦查,可以躲避安全产品的沙箱检测和虚拟分析,而且还可以利用非嵌入式的Flash payload来触发目标系统中的漏洞。

安全研究专家表示,攻击者在2016年圣诞节以及2017年新年假期的这段时间里,利用这种恶意文档对北约成员国的用户发动了大规模的网络攻击。在对恶意文档的文件名进行了分析之后,Talos的研究专家认为这种恶意文档针对的是北约成员国的政府部门。

针对北约成员国的恶意Office文档分析

层层嵌套的恶意文档

研究人员获取到的分析样本是一个RTF文档,而该文档中嵌入了大量的对象。第一个嵌入的对象是一个OLE对象。下图所示即为该Office文档中所包含的OLE对象:

针对北约成员国的恶意Office文档分析

研究人员发现,这个OLE对象中还包含一个AdobeFlash对象,这个AdobeFlash对象的目的就是通过执行ActionScript脚本来提取出嵌入在恶意文档中的恶意源码。经过分析后发现,这份恶意源码其实又是一个经过二次编码和压缩的AdobeFlash对象,其中的编码算法是基于异或运算实现的,而压缩则采用的是zlib库。

Payload的分析

与攻击payload有关的部分主要在其ActionScript脚本之中,攻击者首先在脚本中对C&C服务器进行了简单的配置,并且在一个全局变量中设置了C&C服务器的URL地址:

针对北约成员国的恶意Office文档分析

第一步:

这个ActionScript脚本所要做的第一件事就是向远程C&C服务器发送一个HTTP请求,请求信息如下图所示:

针对北约成员国的恶意Office文档分析

我们可以看到,其中的URI为“/nato”,这正好与恶意文档的命名模式相同。

思科Umbrella云安全解决方案可以帮助用户识别与该C&C服务器有关的DNS流量。下面这张截图是思科Umbrella给出的监测数据, 2016年12月29日至2017年1月12日之间的是恶意C&C服务器原本的每小时DNS查询请求情况,而从1月16日开始出现的大量请求基本上都是由安全研究专家发送的。

针对北约成员国的恶意Office文档分析

恶意脚本首先通过falsh.system.Capabilities.serverString API来获取到目标系统的基本信息,然后在通过恶意请求将这些信息发送给攻击者。根据Adobe提供的官方文档,这个API允许开发人员获取到目标系统中AdobeFlash的兼容版本信息。下面是文档中给出的查询示例代码:

A=t&SA=t&SV=t&EV=t&MP3=t&AE=t&VE=t&ACC=f&PR=t&SP=t&SB=f&DEB=t&V=WIN%209%2C0%2C0%2C0&M=Adobe%20Windows&R=1600x1200&DP=72&COL=color&AR=1.0&OS=Windows%20XP&L=en&PT=ActiveX&AVD=f&LFD=f&WD=f&IME=tⅅ=f&DDP=f&DTS=f&DTE=f&DTH=f&DTM=f

这条查询可以允许攻击者获取到与目标设备有关的信息,包括操作系统版本和AdobeFlash版本。接下来,攻击者就可以利用这些信息来推测和判断出目标用户的个人喜好等等。如果受感染系统是沙箱系统或是虚拟机的话,攻击者就可以忽略这个请求并终止ActionScript脚本的运行。

第二步:

ActionScript脚本会将第一个查询请求的响应结果保存在一个名为“vars”的变量中。接下来,它便会用另一个URI来执行第二个HTTP请求:

针对北约成员国的恶意Office文档分析

如果服务器成功响应了上述代码中的初始请求,那么函数expLoaded()(用于加载漏洞利用代码)将会被执行。

第三步:

之前那些请求的响应结果会存储在swf变量中,这些数据都是以经过加密的AdobeFlash对象(swf)的形式来进行存储的。接下来,ActionScript脚本会执行unpack()函数来解密下载下来的swf文件,这个函数需要swf对象和第一个请求所得到的“k3”密钥作为输入参数。

针对北约成员国的恶意Office文档分析

在这一步骤中,ActionScript会执行第三次HTTP请求:

针对北约成员国的恶意Office文档分析

如果请求成功,那么函数payLoaded()将会被调用,而攻击payload将会被加载。

第四步:

需要注意的是,之前的请求结果中包含有一个经过编码的payload,ActionScript脚本会使用相同的unpack()函数和另一个密钥“k4”(在初始请求中获取到的)来对这个payload进行解码。最终,攻击者就可以利用flash.dispaly.Loader()API来执行下载下来的恶意AdobeFlash文件了。

针对北约成员国的恶意Office文档分析

陷阱!

正如我们在文章中提到的一样,调查数据显示目前已经有很多的安全研究人员正在调查攻击者的域名,而研究人员发现,攻击者最近似乎对恶意payload进行了修改,并且试图通过返回一堆垃圾数据来干扰研究人员的调查活动。

针对北约成员国的恶意Office文档分析

总结

在对这个恶意Office文档进行了深入分析之后,我们也了解到了一种新型且先进的恶意感染流程。首先,恶意文档会对目标设备进行踩点侦查,以此来避免与沙箱系统或虚拟机系统进行通信。接下来,AdobeFlash会向远程服务器请求下载一个payload,然后攻击者再利用目标设备中的Flash漏洞来加载payload,并进行远程攻击。这是一种非常聪明的方法,从攻击者的角度来看,漏洞利用代码并非直接嵌入在恶意文档之中的,所以安全防护 工具 就更加难以检测到它们了。更重要的是,攻击者已经意识到了安全研究人员正在对他们进行调查,所以攻击者也做出了应对。

如何保护自己的安全?

广大用户可以使用下图所示的产品来保护自己的设备安全。

针对北约成员国的恶意Office文档分析


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Head First Rails

Head First Rails

David Griffiths / O'Reilly Media / 2008-12-30 / USD 49.99

Figure its about time that you hop on the Ruby on Rails bandwagon? You've heard that it'll increase your productivity exponentially, and allow you to created full fledged web applications with minimal......一起来看看 《Head First Rails》 这本书的介绍吧!

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具