萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 電腦基礎知識 >  >> 健康知識

VBScript 在系統安全實務中的八大巧妙應用

前言

VBScript 病毒的氾濫讓人們重新認識了這種腳本語言的威力。VBS 代碼在本地由 Windows Script Host (WSH) 解釋執行,WSH 是微軟提供的基於 32 位 Windows 平台、與語言無關的腳本解釋機制,使腳本能直接在桌面或命令提示符下運行。利用 WSH,用戶可操作 WSH 對象、ActiveX 對象、註冊表與文件系統,在 Windows 2000 以上還能訪問活動目錄服務。腳本在圖形界面由 wscript.exe 執行,在字符界面由 cscript.exe 執行。以下整理了 VBS 在系統安全管理中的八個實用技巧。

一、解鎖被禁用的註冊表編輯器

當註冊表編輯器被惡意軟件或策略禁用時,可用以下腳本快速恢復:

Dim WSH
Set WSH = WScript.CreateObject("WScript.Shell")
WSH.Popup "正在解鎖註冊表編輯器!"
WSH.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableRegistryTools", 0, "REG_DWORD"
WSH.Popup "註冊表解鎖成功!"

將代碼保存為 .vbs 文件,雙擊即可執行。

二、關閉 Windows NT/2000 的默認管理共享

默認共享(如 C$, IPC$)常被攻擊者利用。以下腳本可批量關閉所有磁盤隱藏共享及管理共享:

Dim WSHShell, fso, dc, d, str
Set WSHShell = CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
Set dc = fso.Drives
For Each d In dc
    WSHShell.Run "net share " & d.DriveLetter & "$ /delete", 0, True
Next
WSHShell.Run "net share admin$ /delete", 0, True
WSHShell.Run "net share ipc$ /delete", 0, True

執行後可在命令提示符下用 net share 驗證共享已消失。

三、快速顯示本機 IP 地址

無需安裝額外工具,幾行代碼即可彈窗顯示本機 IP:

Dim WS
Set WS = CreateObject("MSWinsock.Winsock")
IPAddress = WS.LocalIP
MsgBox "本機 IP 地址:" & IPAddress

保存為 ShowIP.vbs,雙擊運行。

四、使用 WMI 清除系統日誌

入侵後清除日誌是攻擊者常見動作。利用 WMI 的 ClearEventLog 方法可輕鬆清空應用程式、系統、安全三大日誌:

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 log In myLogs
    Set colLogFiles = objWMIService.ExecQuery("Select * from Win32_NTEventLogFile Where LogFileName='" & log & "'")
    For Each objLogFile In colLogFiles
        objLogFile.ClearEventLog()
    Next
Next

保存為 cleanevent.vbs 即可使用。

五、偽造系統日誌掩蓋蹤跡

日誌被清空會引起管理員懷疑,偽造日誌可混淆視聽。利用 WScript.Shell 的 LogEvent 方法寫入自定義日誌:

Set ws = WScript.CreateObject("WScript.Shell")
ws.LogEvent 0, "系統備份任務成功完成"

參數 0 代表成功事件,亦可用 1(錯誤)、2(警告)、4(信息)、8(成功審計)、16(失敗審計)。注意:此法只能寫入應用程式日誌,來源固定為 WSH,隱蔽性有限。

六、禁用「開始」選單常用功能

通過修改註冊表可禁用「執行」、「搜尋」、「關機」等選單項目:

Dim ChangeStartMenu
Set ChangeStartMenu = WScript.CreateObject("WScript.Shell")
RegPath = "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\"
Type_Name = "REG_DWORD"
Key_Data = 1
Sub Change(Argument)
    ChangeStartMenu.RegWrite RegPath & Argument, Key_Data, Type_Name
    MsgBox "設置成功!"
End Sub
Call Change("NoRun")     ' 禁用「執行」
Call Change("NoFind")    ' 禁用「搜尋」
Call Change("NoClose")   ' 禁用「關機」

保存為 ChangeStartMenu.vbs 雙擊生效。

七、以腳本形式執行外部程式或命令

WScript.Shell 的 Run 方法可啟動任意命令:

Dim objShell
Set objShell = WScript.CreateObject("WScript.Shell")
iReturn = objShell.Run("cmd.exe /C set var=world", 1, True)

可將 cmd.exe 替換為 %ComSpec%,命令部分可換成任何合法指令,實現靈活的自動化操作。

八、重新啟動指定的 IIS 服務

利用 ADSI 控制服務狀態,適用於 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,以 cscript c:\startsvc.vbs 方式運行。

防範 VBS 腳本病毒的建議

VBS 病毒依賴 WSH 運行,防範措施包括:

  • 在「控制台」→「新增/移除程式」→「Windows 元件」中取消勾選「Windows Scripting Host」以卸載 WSH。
  • 或在「資料夾選項」→「檔案類型」中刪除 .vbs、.vbe、.js、.jse 的檔案關聯,使腳本無法直接執行。

結合以上技巧與防範措施,可有效提升系統安全管理效率。

copyright © 萬盛學電腦網 all rights reserved