一、前言
病毒課老師丟給我們一份加密過(guò)的vbs腳本病毒的代碼去嘗試分析,這里把分析過(guò)程發(fā)出來(lái),供大家參考,如果發(fā)現(xiàn)文中有什么錯(cuò)誤或者是有啥建議,可以直接留言給我,謝謝!
二、目錄
整個(gè)分析過(guò)程可以分為以下幾個(gè)部分:
0x00 準(zhǔn)備工作
0x01 解密部分
0x02 功能分析
三、分析過(guò)程
0x00 準(zhǔn)備工作
windows xp的虛擬機(jī)(在自己的windows下也可以做)
vbs的一些基本語(yǔ)法
0x01 解密部分
右擊病毒文件然后編輯打開(kāi)或者是直接把其后綴修改成txt直接打開(kāi)都行,可以看到一大段密文,并調(diào)用了一個(gè)函數(shù)deCrypt。暫時(shí)只看到這些,那么接著往下看吧。
![](http://img.jbzj.com/file_images/article/201609/2016921160943987.png?201682116105)
拖到代碼底部,發(fā)現(xiàn)有deCrypt了一次,也就是經(jīng)過(guò)了兩次加密,這里把執(zhí)行部分注釋掉,然后將解密的結(jié)果輸出到文本文件中去。另外,可以看到是用base64進(jìn)行的加密的。
![](http://img.jbzj.com/file_images/article/201609/2016921161049711.png?201682116111)
現(xiàn)在來(lái)看看解碼后的結(jié)果。發(fā)現(xiàn)依舊是不可閱讀的代碼,那就繼續(xù)看看他是怎么處理的吧。
![](http://img.jbzj.com/file_images/article/201609/2016921161124627.png?2016821161136)
這里可以看到是將之前的字符串按“|dz|”劃分,然后得到的是ascii碼,將這些ascii碼對(duì)應(yīng)的字符拼接起來(lái)就好了,就得到了結(jié)果。同樣的套路將解密結(jié)果輸出到文件中去再繼續(xù)分析。
![](http://img.jbzj.com/file_images/article/201609/2016921161206171.png?2016821161218)
然后這次得到的結(jié)果是真正的病毒代碼了。接下來(lái)對(duì)他的功能進(jìn)行分析。
![](http://img.jbzj.com/file_images/article/201609/2016921161242078.png?2016821161255)
0x02 功能分析
從頭開(kāi)始看吧。顯示一些配置信息,包括了服務(wù)器的域名。可以查到服務(wù)器是美國(guó)的,嘗試ping了下,ping不通,可能是服務(wù)器作了設(shè)置不讓人ping、也可能是服務(wù)器已經(jīng)不用了、也有可能是我國(guó)的防火長(zhǎng)城直接墻掉了。。。
![](http://img.jbzj.com/file_images/article/201609/2016921161319176.png?2016821161333)
然后是一些之后要用到的變量,這里不作過(guò)多的解釋。
![](http://img.jbzj.com/file_images/article/201609/2016921161352227.png?201682116146)
之后就是code start的部分了。然后由于里面調(diào)用了各種函數(shù),所以這里按執(zhí)行的順序給調(diào)用的函數(shù)編號(hào),以便閱讀,不然會(huì)感覺(jué)很凌亂的。
這里先是調(diào)用了instance函數(shù)。
![](http://img.jbzj.com/file_images/article/201609/2016921161433328.png?2016821161445)
1.instance函數(shù)
給之前的一個(gè)參數(shù)usbspreading賦值,并對(duì)注冊(cè)表進(jìn)行寫操作
![](http://img.jbzj.com/file_images/article/201609/2016921161543240.png?201682116160)
在執(zhí)行完了instance函數(shù)后,會(huì)進(jìn)入一個(gè)while true的死循環(huán),不斷從服務(wù)器讀取命令,然后執(zhí)行。在進(jìn)入while里面后,先是調(diào)用install過(guò)程。
2.install過(guò)程
在install中,又調(diào)用了upstart,再進(jìn)去看看。
![](http://img.jbzj.com/file_images/article/201609/2016921161634208.png?2016821161646)
2.1 upstart過(guò)程
這里通過(guò)注冊(cè)表將病毒腳本設(shè)置成開(kāi)機(jī)自啟動(dòng)。
![](http://img.jbzj.com/file_images/article/201609/2016921161703261.png?2016821161735)
然后從upstart過(guò)程出來(lái)繼續(xù)看看install剩下的代碼,有點(diǎn)多,直接把功能告訴大家。
掃描所有的驅(qū)動(dòng),如果類型號(hào)是1,會(huì)有所動(dòng)作,為1時(shí)代表可移動(dòng)設(shè)備,這是想感染優(yōu)盤之類的可移動(dòng)設(shè)備。它將腳本拷貝到可移動(dòng)設(shè)備的根目錄下,然后設(shè)置文件屬性,2為隱藏文件,可讀寫,4為系統(tǒng)文件,可讀寫。
然后獲取可移動(dòng)設(shè)備根目錄所有的文件,如果不是lnk文件, 將其設(shè)置為隱藏的系統(tǒng)文件,可讀寫。然后創(chuàng)建相應(yīng)的快捷方式,其指向的程序是cmd.exe,其參數(shù)是"/c start " replace(installname," ", chrw(34) " " chrw(34)) "start " replace(file.name," ", chrw(34) " " chrw(34)) "exit",意思是點(diǎn)擊該快捷方式后會(huì)先啟動(dòng)那個(gè)腳本病毒,然后再啟動(dòng)真正的文件,之后退出cmd。
然后對(duì)根目錄下的文件夾作同樣的操作。至此,對(duì)子程序install的分析到此結(jié)束,接下來(lái)分析函數(shù)程序post。
![](http://img.jbzj.com/file_images/article/201609/2016921161751196.png?2016821161814)
3.post函數(shù)
可以看到post的功能是發(fā)送被感染機(jī)器的相關(guān)信息到服務(wù)器并從服務(wù)器獲取病毒制作者的命令數(shù)據(jù)。在里面有調(diào)用了函數(shù)information以獲取被感染機(jī)的相關(guān)信息,再看下它是怎么實(shí)現(xiàn)的。
![](http://img.jbzj.com/file_images/article/201609/2016921161853948.png?201682116195)
3.1 information函數(shù)
information函數(shù)用來(lái)獲取硬盤序列號(hào)、系統(tǒng)相關(guān)信息和電腦上安裝的安全軟件。
![](http://img.jbzj.com/file_images/article/201609/2016921161927458.png?2016821161940)
現(xiàn)在從post函數(shù)中執(zhí)行完出來(lái),得到服務(wù)器的命令。然后就是對(duì)命令的解析執(zhí)行,接下來(lái)是一個(gè)vbs中switch...case...的結(jié)構(gòu),來(lái)對(duì)不同的命令解析執(zhí)行。
4.對(duì)各種命令的解析執(zhí)行
4.1 execute命令
這里直接執(zhí)行接收到的命令
![](http://img.jbzj.com/file_images/article/201609/2016921162027535.png?2016821162049)
4.2 update命令
這里是從服務(wù)器上獲取數(shù)據(jù)來(lái)更新病毒
![](http://img.jbzj.com/file_images/article/201609/2016921162135549.png?201682116224)
4.3 uninstall命令
調(diào)用uninstall過(guò)程來(lái)將病毒之前對(duì)注冊(cè)表作的修改恢復(fù),并將之前復(fù)制到其他幾個(gè)目錄下的病毒腳本刪除。
![](http://img.jbzj.com/file_images/article/201609/2016921162255099.png?201682116239)
4.4 send命令
調(diào)用download過(guò)程從服務(wù)器下載文件
![](http://img.jbzj.com/file_images/article/201609/2016921162340556.png?2016821162353)
4.5 site-send命令
這個(gè)調(diào)用sitedownloader過(guò)程,同樣從服務(wù)器上下載東西,不過(guò)這個(gè)下載的貌似是網(wǎng)站源碼之類的。。。
![](http://img.jbzj.com/file_images/article/201609/2016921162422086.png?2016821162435)
4.6 recv命令
調(diào)用upload函數(shù),上傳指定的文件。
![](http://img.jbzj.com/file_images/article/201609/2016921162544465.png?201682116260)
4.7 enum-driver、enum-faf、enum-process命令
分別調(diào)用相應(yīng)的函數(shù),以獲取枚舉所有的驅(qū)動(dòng)器相關(guān)信息、指定目錄下的所有文件和文件夾以及系統(tǒng)的所有進(jìn)程
![](http://img.jbzj.com/file_images/article/201609/2016921162635809.png?2016821162647)
4.8 cmd-shell命令
這里調(diào)用cmdshell函數(shù)執(zhí)行接收的到cmd命令,并將命令結(jié)果獲取傳回服務(wù)器。
![](http://img.jbzj.com/file_images/article/201609/2016921162715511.png?2016821162729)
4.9 delete命令
調(diào)用過(guò)程deletefaf刪除指定的文件或文件夾
![](http://img.jbzj.com/file_images/article/201609/2016921162753514.png?201682116285)
4.10 exit-process命令
調(diào)用exitprocess來(lái)結(jié)束指定的進(jìn)程
![](http://img.jbzj.com/file_images/article/201609/2016921162827377.png?201682116294)
4.11 sleep命令
設(shè)置腳本的睡眠時(shí)間
![](http://img.jbzj.com/file_images/article/201609/2016921162926493.png?2016821162940)
到此對(duì)所有的命令都解析完畢了,在執(zhí)行了相應(yīng)的命令后,病毒會(huì)睡眠指定的時(shí)間,再繼續(xù)從服務(wù)器獲取命令。
四、總結(jié)
這里對(duì)之前的分析進(jìn)行下總結(jié)吧,總結(jié)通過(guò)這次分析所學(xué):
1.先是對(duì)base64編碼的學(xué)習(xí),實(shí)際分析中不需要知道實(shí)現(xiàn)細(xì)節(jié),至少要會(huì)用吧。
2.vbs的學(xué)習(xí)。
3.通過(guò)設(shè)置注冊(cè)表來(lái)設(shè)置指定程序的自啟動(dòng)。
4.基本的調(diào)試能力,對(duì)于晦澀難懂的代碼部分,把結(jié)果輸出來(lái)會(huì)理解得更快。
然后在試驗(yàn)中還對(duì)病毒進(jìn)行了清楚,我的方法是直接截取一段密文然后進(jìn)行搜索,包含該字段的vbs文件就給刪掉,這樣注冊(cè)表是沒(méi)有修改過(guò)來(lái)的,不過(guò)要自啟動(dòng)的文件已經(jīng)被刪掉了,所以沒(méi)關(guān)系。還有一種方法是把病毒中uninstall模塊拿出來(lái),單獨(dú)調(diào)用,把所有修改都恢復(fù)。
然后,這次可以看到該病毒通過(guò)vbs實(shí)現(xiàn)了與服務(wù)器進(jìn)行通信、修改文件系統(tǒng)、修改注冊(cè)表等等的操作。使用其他的語(yǔ)言同樣可以實(shí)現(xiàn),自己覺(jué)得可能是因?yàn)榇蟛糠謜indows都有vbs的解釋器,易于傳播,并且vbs易學(xué),病毒作者選用他來(lái)編寫??傊煌恼Z(yǔ)言都有自己的特點(diǎn)吧,關(guān)鍵要看其優(yōu)點(diǎn)是否和自己的需求相契合吧。
以上所述是小編給大家介紹的對(duì)一個(gè)vbs腳本病毒的病毒原理分析,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
您可能感興趣的文章:- linux服務(wù)器被植入ddgs、qW3xT.2挖礦病毒的處理實(shí)戰(zhàn)記錄
- 通過(guò)批處理關(guān)閉135 137 445等端口的實(shí)現(xiàn)代碼(勒索病毒)
- php網(wǎng)頁(yè)病毒清除類
- VC實(shí)現(xiàn)的病毒專殺工具完整實(shí)例
- 利用DOS命令來(lái)對(duì)抗U盤病毒保護(hù)U盤數(shù)據(jù)
- 自制殺u盤病毒的批處理代碼
- c病毒程序原理分析(防范病毒 c語(yǔ)言小病毒示例)
- 解析:清除SQL被注入惡意病毒代碼的語(yǔ)句
- Autorun 病毒清除工具bat代碼
- VBS.Runauto腳本病毒分析篇
- 一段病毒常用的VBS代碼
- 記事本U盤病毒 Notepad.exe查殺方法
- 美女游戲病毒iwbkvd.exe查殺方法
- 批處理 Autorun 病毒清除工具
- Rootkit病毒的解決辦法