對VBS腳本在系統安全中幾個妙用方法的介紹
以下的文章主要向大家講述的是VBS腳本在系統安全中的幾個妙用方法,VBS腳本病毒的大量流行使我們對VBS的相關功能有了一個更為全面的認識,現在大家對它也開始重視起來。VBS代碼在本地是通過Windows Script Host(WSH)解釋執行的。
VBS腳本病毒的大量流行使我們對VBS的功能有了一個全新的認識,現在大家對它也開始重視起來。VBS代碼在本地是通過Windows Script Host(WSH)解釋執行的。VBS腳本的執行離不開WSH,WSH是微軟提供的一種基于32位Windows平臺的、與語言無關的腳本解釋機制,它使得腳本能夠直接在Windows桌面或命令提示符下運行。利用WSH,用戶能夠操縱WSH對象、ActiveX對象、注冊表和文件系統。在Windows 2000下,還可用WSH來訪問Windows NT活動目錄服務。
用VBS編寫的腳本程序在窗口界面是由wscript.exe文件解釋執行的,在字符界面由cscript.exe文件解釋執行。wscript.exe是一個腳本語言解釋器,正是它使得腳本可以被執行,就象執行批處理一樣。關于VBS大家一定比我熟悉多了,所以再不廢話,直接進入主題,看看我總結的VBS在系統安全中的八則妙用吧。
一、給注冊表編輯器解鎖
用記事本編輯如下內容:
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為擴展名的文件,使用時雙擊即可。
二、關閉Win NT/2000的默認共享
用記事本編輯如下內容:
Dim WSHShell'定義變量
set WSHShell=CreateObject("WScript.shell") '創建一個能與操作系統溝通的對象WSHShell
Dim fso,dc
Set fso=CreateObject("Scripting.FileSystemObject")'創建文件系統對象
set dc=fso.Drives '獲取所有驅動器盤符
For Each d in dc
Dim str
WSHShell.run("net share"&d.driveletter &"$ /delete")'關閉所有驅動器的隱藏共享
next
WSHShell.run("net share admin$ /delete")
WSHShell.run("net share ipc$ /delete")'關閉admin$和ipc$管道共享
現在來測試一下,先打開cmd.exe,輸入net share命令就可以看到自己機子上的共享。雙擊執行stopshare.vbs后,會看見窗口一閃而過。然后再在cmd里輸入net share命令,這時候沒有發現共享列表了
- New Roman">
三、顯示本機IP地址
有許多時候,我們需要知道本機的IP地址,使用各種軟件雖然可以辦到,但用VBS腳本也非常的方便。用記事本編輯如下內容:
- Dim WS
- Set WS=CreateObject("MSWinsock.Winsock")
- IPAddress=WS.LocalIP
- MsgBox "Local IP=" & IPAddress
將上面的內容保存為ShowIP.vbs,雙擊執行即可得到本機IP地址。
四、利用腳本編程刪除日志
入侵系統成功后黑客做的第一件事便是清除日志,如果以圖形界面遠程控制對方機器或是從終端登陸進入,刪除日志不是一件困難的事,由于日志雖然也是作為一種服務運行,但不同于http,ftp這樣的服務,可以在命令行下先停止,再刪除,在命令行下用net stop eventlog是不能停止的,所以有人認為在命令行下刪除日志是很困難的,實際上不是這樣,比方說利用腳本編程中的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()方法刪除日志。建立一個數組,application,security,system,如果還有其他日志也可以加入數組。然后用一個for循環,刪除數組中的每一個元素,即各個日志。
【編輯推薦】