史萊姆論壇

返回   史萊姆論壇 > 教學文件資料庫 > 資訊系統安全備援防護技術文件
忘記密碼?
論壇說明

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2006-01-27, 08:54 PM   #1
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 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指令碼病毒的目的。
__________________
http://bbsimg.qianlong.com/upload/01/08/29/68/1082968_1136014649812.gif
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
 



發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 06:19 PM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1