VBS指令碼的應用

來源:互聯網
上載者:User
指令碼 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指令碼病毒的目的。

相關關鍵詞:
相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。