本次課程為大家介紹的是我們病毒分析師在日常工作中經(jīng)常使用的一些工具以及快速分析的技巧。一般來說,在不寫分析報告以及不做高級查殺研究的情況下,病毒分析師并不需要對樣本進行深入分析,只要判斷樣本黑白、進行歸類并提取特征即可。這里我會將這一系列完整的流程展現(xiàn)給大家。
由于我們在日常的分析中要面對大量的樣本文件,并且還需要對這些文件進行復制、刪除以及目錄的創(chuàng)建等操作,因此需要一款文件管理工具來輔助我們的工作,這里我所使用的是Total Commander:
主界面中有兩個窗格,便于文件的復制等操作,使用Tab鍵可實現(xiàn)兩個窗格之間的切換。界面下方還有一些快捷鍵的說明。比如F3是查看文件,F(xiàn)5是復制文件,F(xiàn)7是創(chuàng)建目錄等。
文件的查看與分析工具使用的是Hiew,可以在Total Commander的Configuration下的Options里面找到Edit/View,將External Viewer設置為我們的Hiew的路徑即可,這樣我們以后只要使用F3這個快捷鍵,就可以用Hiew實現(xiàn)對樣本的查看了:
起初Hiew默認的是以文本的形式打開的,我們也可以通過回車鍵進行切換,比如切換到十六進制模式或者反匯編模式等,用于不同情況的分析工作。Hiew的下方也有一些快捷鍵的說明,來便于我們的分析工作。我們之所以要使用Hiew這款工具,是因為它小巧快速,特別是當目標文件比較大的時候,我們用Hiew可以實現(xiàn)瞬間將文件打開。這款軟件的優(yōu)勢,也會在接下來的分析中,有所體現(xiàn)。
本次課程為大家準備了八個樣本,是我們分析師幾乎每天都會遇到的樣本類型。這些樣本看似很簡單,但是往往能夠有效躲避殺軟的查殺,因此是值得我們進行深入研究的。
1、0cddd8c2084adb75689b5855a70cc4a8
利用Hiew打開后,首先從前幾個字符可以知道這是一個Powershell程序,由后面的Hidden可知它會以隱藏的形式運行,接著分析可以發(fā)現(xiàn),它又在某網(wǎng)站執(zhí)行了下載操作,并且將下載下來的exe文件保存在了臨時文件夾,并將其后綴修改成了pif類型,之后再執(zhí)行這個文件?!半[藏執(zhí)行”、“下載并修改文件后綴”等,都屬于非??梢傻牟僮?,正常程序是不會這么做的,因此基本可以確定說它就是一個惡意程序了。當然了,為了謹慎起見,還應該分析這里出現(xiàn)的網(wǎng)站所對應的下載下來的程序,如果確定下載的程序是惡意的,那么不單單要拉黑這個原始的執(zhí)行下載的文件,還應該將該網(wǎng)站以及下載下來的文件拉黑才可以,這才是完整的分析流程。
接下來我們可以給這個文件歸類,我所采用的是四段命名法。第一段是這個惡意程序的類型,我們發(fā)現(xiàn)它是一個下載者程序,所以可以起名為Trojan-Downloader。第二段是這個程序的類型,它屬于Powershell。第三段是這個程序的家族名稱,這里起名為Agent即可。第四段是這個程序的編號,我習慣以字母進行排序表示,由于這是第一個樣本,因此編號為a。于是,完整的名稱是:Trojan-Downloader. Powershell. Agent.a。于是這個樣本就分析并歸類完成了。
2、 44dcace0cfa9c0f6be1965841bc11410
首先由變量聲明符號var就可以知道它是一個JavaScript腳本,接下來在第三行可以發(fā)現(xiàn),這里出現(xiàn)了一個網(wǎng)址,但是奇怪的是,這個網(wǎng)址里面的http、com以及exe等幾個字符都被尖角號給隔開了,包括第四行也有類似的情況,而這種寫法在正常的程序里面是不可能出現(xiàn)的,所以就可以直接將這個程序判定為有問題的程序了。
同樣的,為了謹慎起見,還應該將這個網(wǎng)址對應的程序下載下來分析,如果也是惡意程序,那么網(wǎng)址和該程序都是要拉黑的。但是到目前這一步,我們就可以直接給這個程序歸類了。依據(jù)之前講過的歸類原則,這里將其命名為Trojan-Downloader. JS. Agent.a。
如果想要提取傳統(tǒng)的特征,那么可以在http、com或者exe的位置進行提取,因為正常的程序不可能將這些字符分開來寫。
3、 84f1fa3c698915b91257706d1e4e3f0e
首先由echo off就可以知道它是一個BAT即批處理程序。接下來可以發(fā)現(xiàn),程序?qū)懙煤軄y,根本看不出它要干什么,這也是惡意程序常用的混淆手段,因此就可以直接把它判定為是惡意的了。如果要提特征的話,那么提在這些亂碼的位置也就可以了,正常的程序里面是不會出現(xiàn)這些的。于是可以將這個樣本歸類并命名為:Trojan.BAT.Agent.a。
4、9b2293323610ccb2af33f977cb21f45c
類似于上一個樣本,這個樣本的代碼同樣沒有以明文的形式呈現(xiàn),因此可以直接將其判定為是惡意的,將其歸類并命名為:Trojan.JS.Agent.a。
5、b5b98837ede4701a98f1467ab53160fb
這個樣本的代碼就非常清晰了,由其語句可以知道,當這個程序執(zhí)行后,如果用戶想要訪問google或者bing,那么就會直接重定向到127.0.0.1這個地址了,也就是會阻止用戶的正常訪問,因此就可以直接把它判定為是惡意的了。將其歸類并命名為:Trojan.JS.Redirector.a。
6、bc70dba947cd5df9fd750353da3faed7
首先由最初的dim就可以知道它是一個VBScript腳本文件,由于它的代碼寫得很亂,同樣地,也可以直接把它拉黑了,將其歸類并命名為:Trojan.VBS.Agent.a。
7、dbfcc7ffadee586e24f8247387b10d6e
首先由var可知它是一個JavaScript文件,接下來由return后面的編碼形式(ASCII碼)以及后面的一些亂碼可知,它也是一個有問題的程序,因此可以將其歸類并命名為:Trojan.JS.Agent.b。特征提取在亂碼的位置即可。
8、dee2decebaf53fead3714cfa6e862378
類似于上一個樣本,這個樣本的代碼同樣寫得很不規(guī)整,所以可以直接將其拉黑。可以將其歸類并命名為:Trojan.JS.Agent.c。
通過本次課程的學習,相信大家已經(jīng)掌握了常見的腳本類惡意程序的快速判斷技巧以及特征的提取方式。從某種意義上來說,只要我們看到目標樣本的代碼寫得非常晦澀難懂,那么它十有八九是惡意程序了。因為這是惡意程序經(jīng)常使用的躲避殺軟查殺的混淆方式。事實上,利用傳統(tǒng)的特征碼查殺的方式來對抗這類腳本木馬的效果并不好,因此必須要使用諸如啟發(fā)或者機器學習的方式來對抗這一批樣本。這些高級技巧我會在未來的高級篇里面為大家講解。