遺漏雜項(xiàng):Minimum選項(xiàng)設(shè)置catch的字符串的最短長(zhǎng)度,小于則丟棄
PMSWalker不帶掃描器:
http://code.google.com/p/pmswalker/downloads/list
PMSWalker帶掃描器(病毒庫(kù)自行更新):
http://u.115.com/file/cln6264w
scancl完整病毒庫(kù)更新地址
http://dl.antivir.de/package/fusebundle/win32/int/vdf_fusebundle.zip
PMSWalker要下載符號(hào)文件,初次啟動(dòng)比較慢
注意某些網(wǎng)馬Heap Spray太厲害請(qǐng)及時(shí)Abort終止其Heap Spray
對(duì)你系統(tǒng)中IE的安全性沒有信心的話請(qǐng)?jiān)谏潮P或虛擬機(jī)里運(yùn)行PMSWalker
8.9
自動(dòng)處理shellcode時(shí)模擬步數(shù)略微下調(diào)(原本過大沒有必要)
掃描器換用新版本病毒庫(kù)
8.10
調(diào)整自動(dòng)分析,可能長(zhǎng)時(shí)間不會(huì)再更新,在反混淆方面PMSWalker已經(jīng)比以前的很多工具強(qiáng)不少了,要手動(dòng)處理的應(yīng)該并不多,所以不要太依賴自動(dòng)化,機(jī)器畢竟不如人
談所謂“網(wǎng)馬解密”
首先我認(rèn)為“網(wǎng)馬解密”這個(gè)詞不合適,本文一律改稱“網(wǎng)馬反混淆”,
自動(dòng)化網(wǎng)馬分析工具PMSWalker(并談所謂“網(wǎng)馬解密”)WEB安全
。本文分為五部分:“網(wǎng)馬混淆”與“反混淆”、“靜態(tài)模擬”的反混淆方法、“動(dòng)態(tài)鉤掛”的反混淆方法、有關(guān)“網(wǎng)馬解密”的文章、PMSWalker介紹。
“網(wǎng)馬混淆”問題:網(wǎng)馬往往為了規(guī)避各種監(jiān)測(cè)而進(jìn)行“混淆”。我們看一個(gè)簡(jiǎn)單的例子:
經(jīng)過混淆的網(wǎng)馬都需要自解密,我們只需要關(guān)照eval、document.write等函數(shù)即可。這里我們可以使用最簡(jiǎn)單的方法,如替換eval為document.write再替換document.write為alert或重定向到一個(gè)中。但聰明的網(wǎng)馬作者可以采用各種手段令上述方法無(wú)效,如eval.toString()判斷eval是否被篡改。當(dāng)然我們可以用腳本調(diào)試器(Microsoft Script. Editor、IE F12、Firebug等)等高級(jí)工具,但有時(shí)它們并不方便。
“靜態(tài)模擬”的反混淆方法:不少工具使用了“靜態(tài)模擬”的反混淆方法,如MDecoder用正則表達(dá)式解析html、用v8引擎解析js,Malzilla用HTML Parser解析html、用SpiderMonkey引擎解析js(我以前的一個(gè)工具也是模仿的Malzilla),而Freshow等不帶腳本引擎的工具已經(jīng)顯得無(wú)用。然而上述工具都沒有實(shí)現(xiàn)DOM解析,Honeynet上有個(gè)叫做Phoneyc的項(xiàng)目實(shí)現(xiàn)了部分DOM解析并模擬了部分ActiveX插件,但實(shí)際效果很不理想。沒有DOM解析就帶來(lái)了很多問題,我們看一個(gè)例子:
上述工具都沒有辦法正確解析http://www.baidu.com這個(gè)跨站,因?yàn)檫M(jìn)行DOM操作的js根本無(wú)法正確執(zhí)行,因此處理國(guó)外的幾大Exploit Kit非常困難,
電腦資料
《自動(dòng)化網(wǎng)馬分析工具PMSWalker(并談所謂“網(wǎng)馬解密”)WEB安全》(http://www.msguai.com)。但“靜態(tài)模擬”也不是沒有優(yōu)點(diǎn),至少它很安全。“動(dòng)態(tài)鉤掛”的反混淆方法:“靜態(tài)模擬”完全實(shí)現(xiàn)DOM解析就等于實(shí)現(xiàn)一個(gè)瀏覽器,那工作量實(shí)在太大了。于是我們想到在瀏覽器上掛一些鉤子實(shí)現(xiàn)“反混淆”,這種方法實(shí)用方便。
有關(guān)“網(wǎng)馬解密”的文章:兩個(gè)國(guó)外的Paper http://cansecwest.com/csw07/csw07-nazario.pdf和http:// www.toorcon.org/tcx/26_Chenette.pdf
很好的介紹了網(wǎng)馬反混淆。國(guó)內(nèi)也有不少關(guān)于“網(wǎng)馬解密”的文章,大多數(shù)都是教你使用工具,而這些工具只提供靜態(tài)的固定的幾種解密函數(shù),直接忽略之。“網(wǎng)馬解密參考手冊(cè)”這篇文章寫得不錯(cuò),但其作者將網(wǎng)馬按加密類型分類,這點(diǎn)很不可取。網(wǎng)馬根本無(wú)法按加密類型分類,它可以低端到轉(zhuǎn)義字符,高端到AES,毫無(wú)定式。那篇文章還把Ucs2ToHexToAsc稱為shellcode加密,shellcode就是一段機(jī)器碼何來(lái)“shellcode加密”之說。所謂shellcode加密應(yīng)是shellcode經(jīng)過混淆并在執(zhí)行過程中自修改以規(guī)避檢測(cè)的手段。而大多數(shù)工具只是用xor密鑰枚舉提取某些shellcode所要下載的url,實(shí)際上是投機(jī)取巧。聰明的shellcode作者不會(huì)采用單一的xor密鑰加密,所以只有調(diào)試或模擬器模擬才是正確的shellcode解密方式。PMSWalker介紹:
PMSWalker是使用“動(dòng)態(tài)鉤掛”方法分析網(wǎng)馬的工具。PMSWalker的基本功能如下:
Tree部分為frame與script樹,Catch部分為鉤掛到的敏感函數(shù)列表,Payload部分為自動(dòng)提取的Payload列表。
Setting部分為一些配置,Block為是否阻止window.open等彈窗,Reset為下次分析時(shí)是否清空之前分析的內(nèi)容,Scan為是否開啟自動(dòng)分析。
Load部分Load From Moniker為分析Url框中的地址(可以是本地地址如“C:\1.htm”,也可以是遠(yuǎn)程地址,http、ftp等協(xié)議均支持),Load From Stream為分析Stream框中的內(nèi)容(分析沒有Load From Moniker準(zhǔn)確)。
Decode部分為相關(guān)雜項(xiàng):Stream為輸入,Result為輸出。Abort(無(wú)參)為中斷分析,Alpha2(無(wú)參)不解釋,Base64(無(wú)參)不解釋,Convert(二參)編碼轉(zhuǎn)換默認(rèn)為us-ascii解密,DecToAsc(一參,為前分割符)十進(jìn)制轉(zhuǎn)ascii,Encode(無(wú)參)JS/VBS.Encode解密,EmuXor(一參,為前分割符)Xor枚舉,F(xiàn)ilter(一參,為Url)為過濾PayLoad中相同的Url,匹配長(zhǎng)度以參數(shù)的長(zhǎng)度為準(zhǔn),F(xiàn)ind(一參)正則表達(dá)式查找Stream中的內(nèi)容,參考http://msdn.microsoft.com/en-us/library/1400241x(v=vs.85).aspx,HexToAsc(一參,為前分割符)十六進(jìn)制轉(zhuǎn)ascii,Insert(一參)為插入PayLoad,
Log(無(wú)參)提取日志,OctToAsc(一參,為前分割符)八進(jìn)制轉(zhuǎn)ascii,Replace(二參)正則表達(dá)式替換,Shellcode(二參,為前分割符和單步步數(shù))為模擬器模擬Shellcode,Api為提取Api調(diào)用,Mem為提取執(zhí)行后的內(nèi)存內(nèi)容,Split(二參,為相隔字符數(shù)和分割符)為分割,Ucs2ToHex(二參,均為前分割符)默認(rèn)為%uXXXX轉(zhuǎn)\xXX\xXX,Unescape(無(wú)參)不解釋。注意Shellcode等功能只支持\xXX\xXX的形式,所以%uXXXX必須用Usc2ToHex再用Shellcode。自動(dòng)分析說明:如果PMSWalker所在目錄有scan子目錄,且scan中為紅傘的命令行掃描器(scancl.exe及庫(kù))PMSWalker會(huì)在自動(dòng)分析時(shí)調(diào)用它進(jìn)行掃描,掃描結(jié)果在日志中[Scan Info]項(xiàng)下。
安全聲明:PMSWalker使用IE引擎動(dòng)態(tài)分析網(wǎng)馬,如果你的系統(tǒng)存在相應(yīng)漏洞,本人不承擔(dān)任何使用PMSWalker所產(chǎn)生的后果。