VBS腳本的應(yīng)用
2024-07-21 02:24:56
供稿:網(wǎng)友
本文來(lái)源于網(wǎng)頁(yè)設(shè)計(jì)愛(ài)好者web開(kāi)發(fā)社區(qū)http://www.html.org.cn收集整理,歡迎訪問(wèn)。vbs腳本病毒的大量流行使我們對(duì)vbs的功能有了一個(gè)全新的認(rèn)識(shí),現(xiàn)在大家對(duì)它也開(kāi)始重視起來(lái)。vbs代碼在本地是通過(guò)windows script host(wsh)解釋執(zhí)行的。vbs腳本的執(zhí)行離不開(kāi)wsh,wsh是微軟提供的一種基于32位windows平臺(tái)的、與語(yǔ)言無(wú)關(guān)的腳本解釋機(jī)制,它使得腳本能夠直接在windows桌面或命令提示符下運(yùn)行。利用wsh,用戶能夠操縱wsh對(duì)象、activex對(duì)象、注冊(cè)表和文件系統(tǒng)。在windows 2000下,還可用wsh來(lái)訪問(wèn)windows nt活動(dòng)目錄服務(wù)。
用vbs編寫(xiě)的腳本程序在窗口界面是由wscript.exe文件解釋執(zhí)行的,在字符界面由cscript.exe文件解釋執(zhí)行。wscript.exe是一個(gè)腳本語(yǔ)言解釋器,正是它使得腳本可以被執(zhí)行,就象執(zhí)行批處理一樣。關(guān)于vbs大家一定比我熟悉多了,所以再不廢話,直接進(jìn)入主題,看看我總結(jié)的vbs在系統(tǒng)安全中的八則妙用吧。
一、給注冊(cè)表編輯器解鎖
用記事本編輯如下內(nèi)容:
dim wsh
set wsh=wscript.createobject("wscript.shell") ’擊活wscript.shell對(duì)象
wsh.popup("解鎖注冊(cè)表編輯器!")
’顯示彈出信息“解鎖注冊(cè)表編輯器!”
wsh.regwrite"hkcu/software/microsoft/windows/currentversion
/policies/system/disableregistrytools",0,"reg_dword"
’給注冊(cè)表編輯器解鎖
wsh.popup("注冊(cè)表解鎖成功!")
’顯示彈出信息“注冊(cè)表解鎖成功!”
保存為以.vbs為擴(kuò)展名的文件,使用時(shí)雙擊即可。
二、關(guān)閉win nt/2000的默認(rèn)共享
用記事本編輯如下內(nèi)容:
dim wshshell’定義變量
set wshshell=createobject("wscript.shell") ’創(chuàng)建一個(gè)能與操作系統(tǒng)溝通的對(duì)象wshshell
dim fso,dc
set fso=createobject("scripting.filesystemobject")’創(chuàng)建文件系統(tǒng)對(duì)象
set dc=fso.drives ’獲取所有驅(qū)動(dòng)器盤(pán)符
for each d in dc
dim str
wshshell.run("net share"&d.driveletter &"$ /delete")’關(guān)閉所有驅(qū)動(dòng)器的隱藏共享
next
wshshell.run("net share admin$ /delete")
wshshell.run("net share ipc$ /delete")’關(guān)閉admin$和ipc$管道共享
現(xiàn)在來(lái)測(cè)試一下,先打開(kāi)cmd.exe,輸入net share命令就可以看到自己機(jī)子上的共享。雙擊執(zhí)行stopshare.vbs后,會(huì)看見(jiàn)窗口一閃而過(guò)。然后再在cmd里輸入net share命令,這時(shí)候沒(méi)有發(fā)現(xiàn)共享列表了
三、顯示本機(jī)ip地址
有許多時(shí)候,我們需要知道本機(jī)的ip地址,使用各種軟件雖然可以辦到,但用vbs腳本也非常的方便。用記事本編輯如下內(nèi)容:
dim ws
set ws=createobject("mswinsock.winsock")
ipaddress=ws.localip
msgbox "local ip=" & ipaddress
將上面的內(nèi)容保存為showip.vbs,雙擊執(zhí)行即可得到本機(jī)ip地址。
四、利用腳本編程刪除日志
入侵系統(tǒng)成功后黑客做的第一件事便是清除日志,如果以圖形界面遠(yuǎn)程控制對(duì)方機(jī)器或是從終端登陸進(jìn)入,刪除日志不是一件困難的事,由于日志雖然也是作為一種服務(wù)運(yùn)行,但不同于http,ftp這樣的服務(wù),可以在命令行下先停止,再刪除,在命令行下用net stop eventlog是不能停止的,所以有人認(rèn)為在命令行下刪除日志是很困難的,實(shí)際上不是這樣,比方說(shuō)利用腳本編程中的vmi就可以刪除日志,而且非常的簡(jiǎn)單方便。源代碼如下:
strcomputer= "."
set objwmiservice = getobject("winmgmts:" _
& "{impersonationlevel=impersonate,(backup)}!//" & _
strcomputer & "/root/cimv2")
dim mylogs(3)
mylogs(1)="application"
mylogs(2)="system"
mylogs(3)="security"
for each logs in mylogs
set collogfiles=objwmiservice.execquery _
("select * from win32_nteventlogfile where logfilename=’"&logs&"’")
for each objlogfile in collogfiles
objlogfile.cleareventlog()
next
next
將上面的代碼保存為cleanevent.vbs文件即可。在上面的代碼中,首先獲得object對(duì)象,然后利用其cleareventlog()方法刪除日志。建立一個(gè)數(shù)組,application,security,system,如果還有其他日志也可以加入數(shù)組。然后用一個(gè)for循環(huán),刪除數(shù)組中的每一個(gè)元素,即各個(gè)日志。
五、利用腳本偽造日志
刪除日志后,任何一個(gè)有頭腦的管理員面對(duì)空空的日志,馬上就會(huì)反應(yīng)過(guò)來(lái)被入侵了,所以一個(gè)聰明的黑客的學(xué)會(huì)如何偽造日志。利用腳本編程中的eventlog方法創(chuàng)造日志非常簡(jiǎn)單,請(qǐng)看下面的代碼:
set ws=wscript.createobject("wscript.shell")
ws.logevent 0 ,"write log success" ’創(chuàng)建一個(gè)成功執(zhí)行日志
將上面的代碼保存為createlog.vbs即可。這段代碼很容易理解,首先獲得wscript的一個(gè)shell對(duì)象,然后利用shell對(duì)象的logevent方法。logevent的用法:logevent eventtype,"description" [,remote system],其中eventtype為日志類型,可以使用的參數(shù)如下:0代表成功執(zhí)行,1執(zhí)行出錯(cuò),2警告,4信息,8成功審計(jì),16故障審計(jì)。所以上面代碼中,把0改為1,2,4,8,16均可,引號(hào)中的內(nèi)容為日志描述。利用這種方法寫(xiě)的日志有一個(gè)缺點(diǎn),即只能寫(xiě)到應(yīng)用程序日志,而且日志來(lái)源只能為wsh,即windows scripting host,所以不能起太多的隱蔽作用,在此僅供大家參考。
六、禁用開(kāi)始菜單選項(xiàng)
用記事本編輯如下內(nèi)容:
dim changestartmenu
set changestartmenu=wscript.createobject("wscript.shell")
regpath="hkcr/software/microsoft/windows/currentversion/policies/"
type_name="reg_dword"
key_data=1
startmenu_run="norun"
startmenu_find="nofind"
startmenu_close="noclose"
sub change(argument)
changestartmenu.regwrite regpath&argument,key_data,type_name
msgbox("success!")
end sub
call change(startmenu_run) ’禁用“開(kāi)始”菜單中的“運(yùn)行”功能
call change(startmenu_find) ’禁用“開(kāi)始”菜單中的“查找”功能
call change(startmenu_close) ’禁用“開(kāi)始”菜單中的“關(guān)閉系統(tǒng)”功能
將以上代碼保存為changestartmenu.vbs文件,使用時(shí)雙擊即可。
七、執(zhí)行外部程序
用記事本編輯如下內(nèi)容:
dim objshell
set objshell=wscript.createobject("wscript.shell")
ireturn=objshell.run("cmd.exe /c set var=world", 1, true)
保存為.vbs文件即可。在這段代碼中,我們首先設(shè)置了一個(gè)環(huán)境變量,其名為var,而值為world,用戶可以使用%comspec%來(lái)代替cmd.exe,并且可以把命令:set var=world改成其它的命令,這樣就可以使它可以運(yùn)行任意的命令。
八、重新啟動(dòng)指定的iis服務(wù)
用記事本編輯如下內(nèi)容:
const ads_service_stopped = 1
set objcomputer = getobject("winnt://mycomputer,computer")
set objservice = objcomputer.getobject("service","myservice")
if (objservice.status = ads_service_stopped) then
objservice.start
end if
將它以startsvc.vbs為名保存在c盤(pán)根目錄。并通過(guò)如下命令執(zhí)行:cscript c:/startsvc.vbs。運(yùn)行后,經(jīng)你指定的iis服務(wù)項(xiàng)將被重新開(kāi)啟。
最后,我們?cè)僬f(shuō)說(shuō)開(kāi)篇時(shí)提到的vbs腳本病毒的防范方法。vbs病毒的執(zhí)行離不開(kāi)wsh,在帶給人們便利的同時(shí),wsh也為病毒的傳播留下可乘之機(jī)。所以要想防范vbs病毒,可以選擇將wsh卸載,只要打開(kāi)控制面板,找到“添加/刪除程序”,點(diǎn)選“windows安裝程序”,再鼠標(biāo)雙擊其中的“附件”一項(xiàng),然后再在打開(kāi)的窗口中將“windows scripting host”一項(xiàng)的“√”去掉,然后連續(xù)點(diǎn)兩次“確定”就可以將wsh卸載。或者,你也可以點(diǎn)擊“我的電腦”→“查看”→“文件夾選項(xiàng)”,在彈出的對(duì)話框中,點(diǎn)擊“文件類型”,然后刪除vbs、vbe、js、jse文件后綴名與應(yīng)用程序的映射,都可以達(dá)到防范vbs腳本病毒的目的。