網頁“黑手”如何入侵你的Windows系統
轉自:http://ms.csdn.net/geek/82053
發表於2015-7-27 14:31:08
收藏
網路的流行,讓我們的世界變得更加美好,但它也有讓人不愉快的時候。比如,當你收到一封主題為“I Love You”的郵件,興沖沖的雙擊附件想欣賞一下這封“情書”的時候,卻在無意當中成為了病毒的受害者和傳播者;或者在瀏覽某個網頁的時候,瀏覽器標題欄就變成了類似“歡迎光臨……”,而預設主頁也被修改,並且自己的登錄檔莫名其妙的被“鎖定”了,即當我們執行“regedit.exe”時,系統彈出一個諸如:“登錄檔已被管理員所禁用,請找系統管理員聯絡……”等等字樣;更有甚者,聽說瀏覽網頁時,自己的硬碟還可能會被悄悄格式化……太可怕了!真有這樣的事嗎?
當然是真的,不信,那你敢接著往下看嗎?。
其實這個愛蟲病毒(“I Love You”的郵件)和那些惡意破壞你係統的網頁並不可怕,它們都是由幾句並不複雜的VB Script程式碼編寫而成的,只要你弄清楚其中的道理,就自然會有應付它們的辦法,那時候你還會擔心它們嗎?本文就對破壞系統的網頁“黑手”加以分析,並給出防範和修復方法,讓大家都能過上“平安幸福的生活”。
說道VB Script,還得從WSH說起。
一、什麼是WSH?
WSH是Windows Scripting Host(Windows指令碼主機)的縮略形式。WSH這個概念最早出現於Windows 98作業系統,是一個基於32 位 Windows 平臺、並獨立於語言的指令碼執行環境。比如:你自己編寫了一個指令碼檔案,如字尾為 .vbs 或 .js 的檔案,然後在 Windows 下雙擊並執行它,這時,系統就會自動呼叫一個適當的程式來對它進行解釋並執行,而這個程式,就是 Windows Scripting Host,程式執行檔名為 Wscript.exe (若是在DOS命令提示符下,則為 Cscript.exe)。
想知道自己的機器上有沒有WSH嗎?檢視一下你的機器裡有沒有“Wscipt.exe”或者“Cscript.exe”這兩個檔案就可以了。如果找到,恭喜你!你已經安裝了WSH。否則,自己手動安裝吧:
在Windows 98環境下,WSH是作為作業系統的一個元件自動安裝的,如果不慎丟失了這個元件,可以從依次開啟“控制皮膚–>新增/刪除程式–〉Windows安裝程式–〉附件”,然後將“Windows Scripting Host”前的劃上“√”,再確定即可完成WSH元件的安裝。
二、指令碼語言與WSH的關係
大家知道,指令碼語言(包括JavaScript和VBscript語言等)經常會被植入網頁之中(其中包括 HTML 頁面客戶機端和 ASP 頁面伺服器端)。對於植入 HTML 頁面的指令碼,其所需的解析引擎會由 IE 這樣的網頁瀏覽器載入;對於植入 ASP 頁面的指令碼,其所需的解析引擎會由 IIS(Internet Information Services)提供。而對於出現在 HTML 和 ASP 頁面之外的指令碼(它們常以獨立的檔案形式存在),就需要經由 WSH 來處理了。需要說明的是:WSH 要想正常工作,還要安裝IE 3.0 或更高版本的 IE,因為 WSH 在工作時會呼叫 IE 中的 VBScript 和 JavaScript 解析引擎。 [未結束][iduba_page]在這些被植於網頁的指令碼語言中,絕大多數是與網路安全無關的。但也有少數別有用心的好事者,把一些嚴重危及網路安全的程式碼(我們常常稱之為“惡意程式碼”,他們通常都要通過修改登錄檔達到“惡意”的目的!),混放在正常的指令碼之中,常常讓我們防不勝防。但是,如果我們瞭解一點關於指令碼語言的知識,這些“伎倆”都是非常容易識破的。還是讓我們從幾個簡單的例項開始吧……
三、WSH應用舉例
WSH可以處理指令碼程式,怎樣閱讀和編寫WSH的指令碼原始檔呢?只要你有一點Basic(會VB的程式設計更好,呵呵)語言的基礎,學會看懂WSH指令碼語言的程式並不是一件難事。去C:WINDOWSSAMPLESWSH目錄以下將看看吧!裡面提供了幾類經典的指令碼例子,而且分別提供了VBScript和JavaScript兩個版本,我們只要用記事本開啟它們並仔細研究就不難學到一些基本的WSH應用。
你只需在記事本中依次輸入以下每個例項中的程式碼,並儲存為相應的“*.vbs”檔案,雙擊這個檔案,你就可以看到相應的效果了。
〖例項一〗效果:彈出對話方塊視窗“歡迎共同學習WSH”。
WScript.Echo(“歡迎共同學習WSH”)
〖例項二〗效果:在D盤根目錄下建立二十個新資料夾。
dim objdir
set objdir=WScript.Createobject(“Scripting.filesystemobject”)
for k=1 to 20
sNewFolder=“d:WSHsample” & k ‘給新的資料夾命名
objdir.Createfolder(sNewFolder)
next
〖例項三〗效果:使用 Windows Scripting Host 在c:建立一個文字檔案testfile.txt
‘text.vbs 這是本檔案的檔名
Set RegWsh = Wscript.CreateObject(“Wscript.Shell”)
RegWsh.Run (“notepad " & Wscript.ScriptFullName)
‘上面用SHELL物件啟動程式
Set fs = Wscript.CreateObject(“Scripting.FileSystemObject”)
Set a = fs.CreateTextFile(“c:testfile.txt”, True)
a.WriteLine(“這只是一次測試。請檢查你的機器的c:是否有testfile.txt檔案出現?”)
a.Close
很簡單,是吧?呵呵,是的。只要你有一點點程式設計的基礎,看懂以上幾個例項中的程式碼是非常容易的,你也可以試著編制一些類似的“指令碼”例項了……
然而,正是因為指令碼程式設計的門檻低,容易上手,所以在給我們的生活帶來方便和高效的同時,也為少數“不法分子”提供了可乘之機。常見的惡意程式碼有什麼特徵呢?最根本的一條就是對系統登錄檔的訪問。怎樣利用指令碼訪問登錄檔? [未結束][iduba_page]四、用VBScript指令碼訪問登錄檔
用VBScript或者Javascript都可以編寫指令碼程式。鑑於VBscript語言更接近VB,相信有更多的朋友都是從BASIC語言開始學程式設計的。所以本文不想介紹Javascript,而重點介紹VBscript。用VBscript編寫的WSH程式檔案的副檔名為.vbs,該指令碼程式在圖形介面下是由wscript.exe檔案解釋執行的,一般直接雙擊.vbs檔案即可由系統自動呼叫wscript.exe進行解釋並執行。在字元介面(DOS方式)下則是由cscript.exe檔案解釋執行的,命令格式為:cscript filename.vbs。先來看看幾個相關的操作和方法:
1、建立物件
用VBScript訪問登錄檔,必須先建立一個能與作業系統溝通的物件,再利用該物件的各種方法對登錄檔進行操作,建立這個物件的方法和格式如下:
Set 物件變數名=WScript.CreateObject(“WScript.Shell”)
如:Set regwsh=WScript.CreateObject(“WScript.Shell”) 就可以建立一個名為“regwsh”的物件。
2、該物件常用的方法
有了以上這個物件,還要藉助它的幾個重要的方法,才能達到訪問登錄檔的目的。常用的方法有:
①讀登錄檔鍵值的操作RegRead
格式:object.RegRead(路徑引數)
②建立/修改登錄檔鍵值的操作RegWrite
格式:RegWrite 路徑引數, 值 [,值型別]
說明:當被操作的“路徑引數”不存在時,建立該主鍵或鍵值;反之,則修改原有的鍵值。
③刪除登錄檔鍵值的操作RegDelete
格式:RegDelete 路徑引數
3、關於路徑引數的說明
該路徑引數指出了操作的物件。它由根鍵、主鍵路徑和鍵值三部分組成,各部分表示的方法如下:
①根鍵
根鍵有兩種表示方法:縮寫形式(short)和完整形式(Long)。相互的對應關係為:
Short Long
HKCU HKEY_CURRENT_USER
HKLM HKEY_LOCAL_MACHINE
HKCR HKEY_CLASSES_ROOT
而對於 HKEY_USERS 和 HKEY_CURRENT_CONFIG 兩個根鍵則沒有縮寫形式。
②主鍵路徑
主鍵路徑就是目標鍵在登錄檔中的主鍵位置,各個主鍵之間用”“符分隔開。如:“SoftwareMicrosoftWindowsCurrentVersionPolicies”
③鍵值
鍵值引數可以省去不寫。在這種情況下,整個路徑引數就以”“結尾。這時,所有的操作都只針對整個主鍵來進行,而不是該主鍵的某個鍵值。如果想對某個主鍵下的某個鍵值進行操作,則應包含這一部分,直接接在主鍵路徑之後即可。
例如一個完整的路徑引數如下所示:“HKCRSoftwareMicrosoftWindowsCurrentVersionPoliciesNoRun” [未結束][iduba_page]4、應用舉例
〖應用之一〗
以下將是一個建立、讀取顯示、修改和刪除登錄檔項的指令碼示例。程式在每一次進行登錄檔的操作之前,都會給出相應的提示,建議大家在執行本程式之前,用一個視窗開啟本指令碼的原始碼,在另一個視窗開啟登錄檔編輯器,並找到HKEY_CURRENT_USER根鍵。在每一次出現提示之後,不要急於點選“確定”,按鍵切換到登錄檔編輯視窗,按下重新整理一下注冊表的相關鍵值,並觀察程式的執行情況與登錄檔變化之間的關係。最後切換到提示視窗,按下“確定”繼續程式的執行。這樣,相信大家都能立即理解並學會這幾個方法的使用方法。原始碼如下:
‘DEMO.vbs 這是指令碼程式的檔名
Dim RegWsh,sReadKey,sPrompt,sFixprompt
sFixprompt=chr(13)&chr(10)&” 是否與寫入的內容相一致?? ? :–)"
MsgBox “此指令碼顯示如何建立、讀取、修改和刪除登錄檔項。”
Set RegWsh = WScript.CreateObject(“WScript.Shell”)
MsgBox “建立項 HKCUMyRegKey,數值為 ‘一級鍵值‘”
RegWsh.RegWrite “HKCUMyRegKey”, “一級鍵值”
sReadKey=RegWsh.RegRead(“HKCUMyRegKey”)
sPrompt="(預設)鍵值為:‘"&sReadKey&"‘"&sFixprompt
msgbox “讀取的HKCUMyRegKey下”&sPrompt
MsgBox “建立項 HKCUMyRegKeyEntry,數值為 ‘二級子鍵‘”
RegWsh.RegWrite “HKCUMyRegKeyEntry”, “二級子鍵”
sReadKey=RegWsh.RegRead(“HKCUMyRegKeyEntry”)
sPrompt="(預設)鍵值為:‘"&sReadKey&"‘"&sFixprompt
msgbox “讀取的HKCUMyRegKeyEntry下”&sPrompt
MsgBox “修改 HKCUMyRegKeyEntry(預設)鍵值為:‘修改後的二級子鍵‘”
RegWsh.RegWrite “HKCUMyRegKeyEntry”, “修改後的二級子鍵”
sReadKey=RegWsh.RegRead(“HKCUMyRegKeyEntry”)
sPrompt="(預設)鍵值已經修改為:‘"&sReadKey&"‘"&sFixprompt
msgbox “讀取的HKCUMyRegKeyEntry下”&sPrompt
MsgBox “將數值項 HKCUMyRegKeyValue 設為字元型別(REG_SZ),數值為 1”
RegWsh.RegWrite “HKCUMyRegKeyValue”, 1
MsgBox “將數值項 HKCUMyRegKeyEntry 設為 雙位元組型(REG_DWORD),數值為 2”
RegWsh.RegWrite “HKCUMyRegKeyEntry”, 2, “REG_DWORD”
MsgBox “將數值項 HKCUMyRegKeyEntryValue1 設為 二進位制型別(REG_BINARY),數值為 3” RegWsh.RegWrite “HKCUMyRegKeyEntryValue1”, 3, “REG_BINARY” [未結束][iduba_page]MsgBox “以下將刪除 HKCUMyRegKeyEntryValue1 數值”
RegWsh.RegDelete “HKCUMyRegKeyEntryValue1”
MsgBox “以下將刪除 HKCUMyRegKeyEntry 主鍵”
RegWsh.RegDelete “HKCUMyRegKeyEntry”
MsgBox “以下將刪除 HKCUMyRegKey 主鍵”
RegWsh.RegDelete “HKCUMyRegKey”
從上面的例子可以看出,用指令碼訪問登錄檔其實也很簡單。當然,我們也可以將用VBScript編寫的指令碼程式碼放在網頁檔案(Html文件)之中,這時,一般無需對程式碼進行任何更改,只需要在VBScript程式碼的前後,分別加上即可。下面我們再舉一例進行說明:
〖應用之二〗帶毒網頁解析
點選這裡看帶毒網頁演示。如果提示網頁上有錯誤,請下載到本地執行。
[說明]:在使用上面這個“〖應用之二〗帶毒網頁解析”例子的時候,請注意有一定的危險性。一定要事先做好登錄檔的備份!如果出現其他異常情況,請儘快用後文中的recover.htm進行恢復!!!
有了前面所學的知識,我們已經知道,在網頁中呼叫指令碼語言訪問登錄檔,其實是很容易的一件事。但如果所訪問的登錄檔的鍵值被蓄意的進行了惡意的修改……呵呵。我們的系統的安全性就受到了嚴峻的挑戰。
相關文章
- Windows XP 揪出系統中胡作非為的DLL黑手(轉)Windows
- 黑客如何入侵你的路由器?黑客路由器
- windows10系統如何刪除word空白頁面Windows
- 網路安全筆記-入侵檢測系統筆記
- 千兆應用入侵防護系統—入侵防禦系統(轉)
- 網站防黑客入侵的主機系統安全配置方法網站黑客
- windows10系統瀏覽網頁出現無法載入java如何解決Windows網頁Java
- Linux中如何檢測系統是否被入侵Linux
- 如何讓Windows 8系統無線網自動斷網Windows
- windows10系統如何回退網路卡驅動Windows
- SNORT入侵檢測系統
- Snort 入侵檢測系統
- 如何為你的平臺部署一個公開的系統狀態頁
- windows10系統如何關閉網路憑證Windows
- windows10系統如何設定睡眠不斷網Windows
- windows10系統下如何禁止ie瀏覽器修改主頁Windows瀏覽器
- 【星課堂】快速入門:如何使用Suricata構建網路入侵檢測系統?
- 蘋果電腦如何裝Windows系統_蘋果電腦裝Windows系統的方法蘋果Windows
- 分享如何避免您的網站被入侵?網站
- 系統被入侵後的恢復(轉)
- 智慧手機是如何入侵你的生活的? —資訊圖
- 網際網路元素如何全面入侵春晚?
- 無線入侵檢測系統
- 人員入侵檢測系統
- Windows8系統如何進行系統配置Windows
- windows 7系統下用IE9列印網頁圖解WindowsIE9網頁圖解
- windows10系統下安全模式如何連線網路Windows模式
- 如何檢視Windows8系統當前網路的完整網路對映Windows
- win10系統如何提取網頁中視訊_win10提取網頁中視訊的圖文教程Win10網頁
- win10系統如何提取網頁中影片_win10提取網頁中影片的圖文教程Win10網頁
- vue 網頁版聊天系統|仿微信、微博網頁端Vue網頁
- 記一次ASP.NET網站的入侵和如何避免被入侵ASP.NET網站
- 網頁柵格系統:蛋糕的切法網頁
- 正規表示式是如何讓你的網頁卡住的網頁
- 系統首頁 DIY,你的個性化需求 Pro 系統來滿足!
- windows10系統下360瀏覽器打不開網頁的解決方法Windows瀏覽器網頁
- windows10系統打不開網路上的芳鄰如何解決Windows
- 關於Linux系統和Windows系統你瞭解多少?LinuxWindows