萬盛學電腦網

 萬盛學電腦網 >> 健康知識 >> VBS腳本在系統安全中的八則妙用

VBS腳本在系統安全中的八則妙用

  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命令,這時候沒有發現共享列表了    三、顯示本機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循環,刪除數組中的每一個元素,即各個日志。    五、利用腳本偽造日志    刪除日志後,任何一個有頭腦的管理員面對空空的日志,馬上就會反應過來被入侵了,所以一個聰明的黑客的學會如何偽造日志。利用腳本編程中的eventlog方法創造日志非常簡單,請看下面的代碼:    set ws=wscript.createobject("Wscript.shell")    ws.logevent 0 ,"write log success" '創建一個成功執行日志    將上面的代碼保存為createlog.vbs即可。這段代碼很容易理解,首先獲得wscript的一個shell對象,然後利用shell對象的logevent方法。logevent的用法:logevent eventtype,"description" [,remote system],其中eventtype為日志類型,可以使用的參數如下:0代表成功執行,1執行出錯,2警告,4信息,8成功審計,16故障審計。所以上面代碼中,把0改為1,2,4,8,16均可,引號中的內容為日志描述。利用這種方法寫的日志有一個缺點,即只能寫到應用程序日志,而且日志來源只能為WSH,即Windows Scripting Host,所以不能起太多的隱蔽作用,在此僅供大家參考。    六、禁用開始菜單選項     用記事本編輯如下內容:    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) '禁用“開始”菜單中的“關閉系統”功能    將以上代碼保存為ChangeStartMenu.vbs文件,使用時雙擊即可。    七、執行外部程序    用記事本編輯如下內容:    DIM objShell    set objShell=wscript.createObject("wscript.shell")    iReturn=objShell.Run("cmd.exe /C set var=world", 1, TRUE)    保存為.vbs文件即可。在這段代碼中,我們首先設置了一個環境變量,其名為var,而值為world,用戶可以使用%Comspec%來代替cmd.exe,並且可以把命令:set var=world改成其它的命令,這樣就可以使它可以運行任意的命令。    八、重新啟動指定的IIS服務    用記事本編輯如下內容:    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盤根目錄。並通過如下命令執行:cscript c:\startsvc.vbs。運行後,經你指定的IIS服務項將被重新開啟。    最後,,我們再說說開篇時提到的VBS腳本病毒的防范方法。VBS病毒的執行離不開WSH,在帶給人們便利的同時,WSH也為病毒的傳播留下可乘之機。所以要想防范VBS病毒,可以選擇將WSH卸載,只要打開控制面板,找到“添加/刪除程序”,點選“Windows安裝程序”,再鼠標雙擊其中的“附件”一項,然後再在打開的窗口中將“Windows Scripting Host”一項的“√”去掉,然後連續點兩次“確定”就可以將WSH卸載。或者,你也可以點擊“我的電腦”→“查看”→“文件夾選項”,在彈出的對話框中,點擊“文件類型”,然後刪除VBS、VBE、JS、JSE文件後綴名與應用程序的映射,都可以達到防范VBS腳本病毒的目的。
copyright © 萬盛學電腦網 all rights reserved