这篇文章描述了解压缩垃圾邮件广告系列中交付的恶意软件的过程。所述样品于2015年10月1日在17:33 CEST交付。

邮件内容:

电子邮件_Content.

消息标题的片段:

收到:来自spamfilter.jpenergypartner.co必威客服appm(84.95.205.45.forward.012.net.il [84.95.205.45])(使用带有cipher ecdhe-rsa-aes256-sh的tlsv1(256/256位))(没有请求客户证书)(...)收到:JPEP.com与SMTP ID OSMLCE7;THU,01 2015年10月1日11:35:28 -0400收到:来自spamfilter.jpenergypartner.com必威客服app(spamfilter.jpenergypartner.com [74.7.154.89])通过spamfilter.jpenergypartners.com与esmtp id ixqva32rotppduej2c;Thu,01 2015年10月1日11:33:28 -0400 Message-id:<560d52c0.d8cf643d@jpep.com>日期:thu,2015年10月1日11:33:28 -0400来自:“传真”用户 - 代理:Mozilla / 5.0(Windows NT 6.1; WOW64; RV:31.0)Gecko / 20100101 Thunderbird / 31.7.0 MIME-VREATION:1.0(...)主题:内容类型:多部分/混合;

恶意样本作为ZIP压缩可执行文件运送,假装为PDF文档:

附件

经过几个阶段的拆封,我们收到了属于Dyreza恶意软件家庭,凭证偷​​窃师。

相关元素

在执行链中有4个不同的可执行文件,导致部署核心恶意功能:

下面重点介绍如何检索这些有效负载文件。

流:

391476564923647. exe- > runpe:有效载荷#1- >注入代码svchost.exe- >下载:zatribmet.exe.- > RunPE:有效载荷# 2

拆包

2样品,391476564923647. exezatribmet.exe.是有效载荷的载体。两者都是由同一个包含模糊技术的定制包装器包装的。
由于事实,两个文件的解包遵循类似的步骤,第一个文件:391476564923647. exe将用作示例。
原始样本的部分:

部分

重命名的第一部分(代码)rtx.部分数据,在原始图像中相对较小的,在虚拟图像中被放大,以适应未压缩的数据。入口点位于第一部分的开始(偏移量0x1000)。

拆包需要几个阶段:

  1. rtx部分:将代码解包成数据部分和跳到那里
  2. 数据Section:加载导入,复制一段位置无关的代码(它将被称为shellcode.)数据进入新分配的内存
  3. shellcode.:打开运行的可执行文件,将要解密的代码逐片读取到内存中。它形成一个新的PE文件,也就是说,在它被RunPE技术加载到内存之后,替换当前运行的可执行文件。

阶段1:

入口点的391476564923647. exe
EP

一,是wsecedit.dll (C: Windows / system32系统/ wsecedit.dl)打开:

wsecedit_fopen

它的头文件被读入内存:

read_132_wsecedit

第一个0x132字节wsecedit.dll

wsecedit_read

之后,检索其代码化并与一些硬编码值进行比较。(*这是恶意软件作者对此DLL的唯一角色 - 它不在其他任何地方使用,既不在解包的过程中)。

如果它不满足条件,则执行中断:

wsecedit_codesize.

否则,程序继续解压缩数据部分:

unpack_data_sec

执行被重定向到那里。

第2阶段:

在数据部分内部:

首先,额外的进口是由他们装载的校验和

Stage2_start

然后,将数据部分(0x694字节,下图中以蓝色开头)的一部分代码复制到新分配的内存中(为了方便起见,我这样命名它)shellcode.)。该步骤是必要的,以便在映射图像之外被执行重定向 - 此外,为了将有效载荷映射到其位置(RUNPE技术)来清除完整图像。

shellcode_cpy.

然后将执行重定向到存储器的该部分(映射PE部分外部)。

第3阶段:

在 - 的里面shellcode.当前可执行文件的文件从磁盘打开;然后读取和解密特定的块。它使用阶段2中加载的导入。

Stage3_entry.

这导致内存中出现了新的PE(有效负载):

payload1_emerged.

然后,这个新的有效负载被映射到内存中,取代当前的可执行文件。替换操作完成后,shellcode.跳转到第一个部分(偏移0x1000),现在填充了一个全新的代码:

jump_to_overwriten.

有效载荷

有效载荷并不旨在成为这篇文章的主题,但让我们只是一个简短的外观。

有效载荷#1是一个模糊的下载器- Upatre。它通过SSL与C&C通信,并下载第二个恶意软件(zatribmet.exe.)。之后,它删除自己。

有效载荷#2,来自zatribmet.exe.,是一种持久的Dyreza代理人。它通过检查其执行机器的处理器数量来源的抗VM技术从:

cpu_check

当满足上述条件时,它将自己复制到两个位置:%应用程序数据%C:\Windows(在伪随机名称下,按照模式[a-zA-Z] {15} . exe(如。HDIQPVWEEBXREDK.EXE).之后,它在调度器对于持久性并与C&C服务器进行通信,该C&C服务器从预定义池中随机摘为SSL。

参见:技术看看Dyreza