导语:近日,一种新型的跨平台恶意文档攻击开始流行,并该恶意文档支持跨平台攻击,使用了白利用、无文件和windows安全策略绕过等高端攻击技术,并且兼容了两大操作系统,用户无论是在哪个系统打开这个文档,都有可能中招。 

概述及预警

近日,360公司QEX团队和追日团队发现了一种新型的跨平台恶意文档攻击开始流行,并捕获到了该攻击在野外出现的恶意样本。该恶意文档支持跨平台攻击,使用了白利用、无文件和windows安全策略绕过等高端攻击技术。以往的office文档只针对windows操作系统和苹果操作系统分别进行攻击,而最新的攻击样本兼容了两个操作系统,用户无论是在哪个系统打开这个文档,都有可能中招,我们将其命名为“双子星”文档攻击。

 

1.png

图1

攻击影响分析

攻击影响安装了office软件的MacOS和windows系统,目前野外出现了少量恶意样本,暂未出现大规模利用的情况。

攻击形式分析

攻击者利用OFFICE软件的宏功能发起攻击,宏功能一般用作批量处理办公文档,由于其强大的功能也被黑客利用制作恶意文档,但OFFICE软件的宏功能在MacOS上并不被人关注,这个功能在MacOS上也能良好运作。宏功能是默认关闭的,但仍然会有运行安全提示,用户打开文档后,大都会忽略安全提示,直接运行宏导致中招。

2.png

图2

3.png

图3

新型office恶意样本技术分析

通过对捕获样本分析,我们发现样本使用宏内建的预定义语法对mac和windows平台进行兼容。

MAC攻击分析

如果是mac平台,则通过一行shell脚本执行代码,恶意样本就会从自身定义的文档属性M值中读取预先写好的url。

4.png

图4

然后使用curl 下载恶意代码,通过管道符传递给Python解释器执行。 

5.png

图5

由于mac的系统环境内置了python程序,目前这种使用一句话shell脚本执行Python恶意代码的荷载攻击方式,在mac平台上非常流行。

6.png

图6

Windows攻击分析

如果是windows平台,恶意样本首先会确定处理器构架是X86 还是 X64

7.png

图7

然后从文档属性中读取预先准备好的数据

8.png 

图8

9.png

图9

数据其实是2个压缩率为0的zip包,解压后为2个PE,分别对应X86和X64构架使用

10.png

图10

为创建的新进程设置父进程为Explorer.exe

11.png

图11

当前版本使用计划任务来执行释放的PE文件

12.png

图12

并继续从预先设置的文档属性中读取数据,来配置计划任务描述信息

13.png

图13

14.png

图14

计划任务添加完成后,将受害者机器信息通过post请求返回给控制端。

15.png

图15

数据包如下。

16.png

 

图16

安全措施绕过及攻防分析

该样本的执行利用了InstallUtil.exe 来启动 .net 的dll文件,该技巧通常用于绕过applocker 等极其严苛的白名单限制工具策略,同时该样本还使用了x86和x64的两套.net 的dll适配不同系统环境。

17.png

图17

从执行的命令行中获取UpdateServer 和 ID 的参数作为变量,然后调用GetFile函数从远程网页中获取查找信息,使用内置的key,调用Crypt函数解密获取的shellcode,最后调用Inject函数在自身内存中执行shellcode。

18.png

图18

GetFile函数从网页中匹配正则表达式"'showandtell'>(.*?)<" ,把获取到的数据用base64解码返回,远控平台支持配置成https格式的并且验证证书有效性,可以阻碍安全工程师排查分析。

19.png

图19

20.png

图20 

21.png

图21

解密shellcode的Crypt函数

public static byte[]   Crypt(byte[] data, byte[]   key)
  {
      byte[] array = new byte[data.Length];
      for (int i = 0; i   < data.Length; i++)
      {
          array[i] = (data[i] ^ key[i %   key.Length]);
      }
      return array;
  }

图22

执行shellcode的Inject 函数

public static bool Inject(byte[]   shellcode)
  {
      IntPtr intPtr = GCHandle.Alloc(shellcode,   GCHandleType.Pinned).AddrOfPinnedObject();
      uint num;
      if (Tools.VirtualProtect(intPtr, (UIntPtr)((ulong)((long)shellcode.Length)),   64u, out   num))
      {
          ((Tools.SC)Marshal.GetDelegateForFunctionPointer(intPtr, typeof(Tools.SC)))();
      }
      return true;
  }

图23

荷载样本关联分析

从样本中我们提取发现了一行pdb信息:

C:UsersNickDocumentsProjectsThrowbackThrowback2.5WinDropobjx64ReleaseWinDrop.pdb

通过pdb开发信息,我们推测该样本是通过Throwback生成的远控平台的一部分,Throwback是silentbreaksecurity在DEF CON黑客大会 22届的时候公开的使用信标式后门程序(beaconing backdoor),公开的版本是三年前的版本,相信在这三年中这个后门也在进化和添加新的功能,windrop应该就是其中添加的一个新的模块。该样本的C&C和荷载URL于2016年就开始被少量用于攻击,最近的攻击出现在8月24日。

24.png

图24

总结

根据以上技术分析,该样本使用的攻防技术比较高端,只在小范围内进行定向攻击测试,但不排除未来会被用于大规模攻击,针对此新型攻击的样本,360安全卫士已在第一时间跟进查杀,请PC用户和MAC用户同时提高警惕,不要打开来路不明的office文档,并使用360安全卫士防御可能的攻击。

源链接

Hacking more

...