这篇文章描述了解压缩垃圾邮件广告系列中交付的恶意软件的过程。所述样品于2015年10月1日在17:33 CEST交付。
邮件内容:
消息标题的片段:
收到:来自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个不同的可执行文件,导致部署核心恶意功能:
- 841年ca39312bdbb4a0010807a773961d6- - - - - -391476564923647. exe-主文件,我们在解压原始ZIP后直接收到
- CC5D0ACBA5C7E0D62DD547641D9DA1A1- - - - - -zatribmet.exe.-一个中间可执行文件,它被放入%临时%文件夹
- 2个有效负载,由RunPE技术加载,在内存中替换上面的2个示例。请注意,根据所选择的转储方法,有效载荷的哈希值可能会有所不同:
- 9A4A171DB069AF2B15D6F88759B08DB0- - - - - -有效载荷# 1(Upatre -模糊和自我修改下载器,准备代码并注入svchost.exe)
- ff3d706015b7b142ee0a8f0ad7ea2911- - - - - -有效载荷# 2(Dyreza Agent)
下面重点介绍如何检索这些有效负载文件。
流:
391476564923647. exe- > runpe:有效载荷#1- >注入代码svchost.exe- >下载:zatribmet.exe.- > RunPE:有效载荷# 2
拆包
2样品,391476564923647. exe和zatribmet.exe.,是有效载荷的载体。两者都是由同一个包含模糊技术的定制包装器包装的。
由于事实,两个文件的解包遵循类似的步骤,第一个文件:391476564923647. exe将用作示例。
原始样本的部分:
拆包需要几个阶段:
- 在rtx部分:将代码解包成数据部分和跳到那里
- 在数据Section:加载导入,复制一段位置无关的代码(它将被称为shellcode.)数据进入新分配的内存
- 在shellcode.:打开运行的可执行文件,将要解密的代码逐片读取到内存中。它形成一个新的PE文件,也就是说,在它被RunPE技术加载到内存之后,替换当前运行的可执行文件。
阶段1:
一,是wsecedit.dll (C: Windows / system32系统/ wsecedit.dl)打开:
它的头文件被读入内存:
第一个0x132字节wsecedit.dll:
之后,检索其代码化并与一些硬编码值进行比较。(*这是恶意软件作者对此DLL的唯一角色 - 它不在其他任何地方使用,既不在解包的过程中)。
如果它不满足条件,则执行中断:
否则,程序继续解压缩数据部分:
执行被重定向到那里。
第2阶段:
在数据部分内部:
首先,额外的进口是由他们装载的校验和:
然后,将数据部分(0x694字节,下图中以蓝色开头)的一部分代码复制到新分配的内存中(为了方便起见,我这样命名它)shellcode.)。该步骤是必要的,以便在映射图像之外被执行重定向 - 此外,为了将有效载荷映射到其位置(RUNPE技术)来清除完整图像。
然后将执行重定向到存储器的该部分(映射PE部分外部)。
第3阶段:
在 - 的里面shellcode.,当前可执行文件的文件从磁盘打开;然后读取和解密特定的块。它使用阶段2中加载的导入。
这导致内存中出现了新的PE(有效负载):
然后,这个新的有效负载被映射到内存中,取代当前的可执行文件。替换操作完成后,shellcode.跳转到第一个部分(偏移0x1000),现在填充了一个全新的代码:
有效载荷
有效载荷并不旨在成为这篇文章的主题,但让我们只是一个简短的外观。
有效载荷#1是一个模糊的下载器- Upatre。它通过SSL与C&C通信,并下载第二个恶意软件(zatribmet.exe.)。之后,它删除自己。
有效载荷#2,来自zatribmet.exe.,是一种持久的Dyreza代理人。它通过检查其执行机器的处理器数量来源的抗VM技术从:
当满足上述条件时,它将自己复制到两个位置:%应用程序数据%和C:\Windows(在伪随机名称下,按照模式[a-zA-Z] {15} . exe(如。HDIQPVWEEBXREDK.EXE).之后,它在调度器对于持久性并与C&C服务器进行通信,该C&C服务器从预定义池中随机摘为SSL。
参见:技术看看Dyreza
评论