




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、利用木馬的自啟動特性對其進行監(jiān)控0引言隨著網(wǎng)絡技術的迅速發(fā)展,網(wǎng)絡安全日益引起人們的重視,因為計算機病毒、特洛伊木馬、網(wǎng)絡蠕蟲等惡意軟件會給正常的社會生活造成巨大的損失。在這些惡意軟件中,特洛伊木馬因為其獨特的作用,備受黑客的青睞,被廣泛使用。特洛伊木馬是指一種計算機程序,這種程序通常偽裝成一個正常的程序,以欺騙的方式誘使用戶運行,運行以后潛伏在入侵主機中,偷偷地搜集用戶的敏感資料;當接收到控制端發(fā)送來的特定命令時,就將這些敏感資料通過網(wǎng)絡發(fā)送出去,造成泄密事件,或控制入侵主機,造成鎖定主機、重新啟動甚至破壞系統(tǒng)等,具有極大的危害性。特洛伊木馬不同于普通的計算機病毒,病毒的危害一般是造成數(shù)據(jù)的
2、破壞或是造成網(wǎng)絡的擁塞,而木馬的危害在于信息的泄漏。特別是對政府、軍隊等保密性要求比較高的部門來說,木馬的危害性更大。目前,木馬檢測所采用的技術主要是特征碼檢測技術,即將木馬看做是一種特殊的病毒,提取木馬樣本的特征碼,放到病毒庫中;掃描系統(tǒng)時,如果被掃描的文件與特征碼符合,則斷定其是木馬程序。特征碼技術對檢測已知病毒、木馬和蠕蟲等惡意代碼非常有效,算法簡單,檢測迅速,因此目前也被業(yè)界所廣泛使用。但特征碼技術有一個先天缺陷就是只能檢測已知的惡意代碼,面對每天大量涌現(xiàn)的新惡意代碼卻無能為力。本文提出一種新的檢測方法,此方法利用木馬所共同具有的一個特征來進行檢測,使其不僅能夠檢測已知的木馬程序,而且
3、能夠檢測新出現(xiàn)的或未知的木馬。1 木馬的共有特征自第一個特洛伊木馬誕生以來,經(jīng)過多年的發(fā)展,特別是隨著互聯(lián)網(wǎng)的普及,到現(xiàn)在為止,已經(jīng)有幾萬種木馬程序。雖然這些程序使用不同的程序設計語言編寫,在不同的環(huán)境下運行,但是木馬不同于普通的病毒程序,因為它的主要目的是相似的,都是為了遠程控制和竊取資料,因而所有的木馬存在一些共同的特征。其中,一個木馬必須具備的特征可以總結(jié)為以下幾個:( 1) 隱蔽性隱蔽性是木馬的首要特征。木馬程序為了悄悄地長期運行于入侵主機中,往往會千方百計地隱藏自己,不被發(fā)現(xiàn)。比較簡單的木馬一般要隱藏自己的窗口;技術比較復雜一些的木馬會將自己偽裝成系統(tǒng)進程或是系統(tǒng)服務,還有的木馬將自
4、己的代碼注入到別的合法進程中去;技術比較高級一些木馬會以驅(qū)動程序的形式修改內(nèi)核,讓用戶查看不到它的存在。( 2) 自動運行性木馬為了長期控制入侵主機,一般會修改系統(tǒng)的注冊表或配置文件,以便在系統(tǒng)重新啟動以后,自動加載木馬程序;如果一個木馬程序不能自動運行,那么每次重啟,入侵者都要重新攻擊。在注冊表的某些項例如HKLMSoftwareMicrosoftWindowsCurrentVersionRun中設置內(nèi)容為“c:trojan.exe”,則系統(tǒng)啟動以后會自動運行trojan.exe這個程序。修改系統(tǒng)的win.ini、system.ini、autorun.bat等系統(tǒng)配置文件也可以達到同樣的效果
5、。( 3) 功能特殊性木馬的目的就是控制入侵主機或者竊取敏感資料,因而木馬必然會具有一些特殊的功能,如搜索計算機的口令、記錄鍵盤操作、遠程抓屏,甚至會鎖定鍵盤和鼠標、刪除系統(tǒng)文件、破壞系統(tǒng)等功能。( 4) 網(wǎng)絡通信為了遠程控制入侵主機,木馬程序肯定會有網(wǎng)絡通信功能。初期的木馬會在服務器端開一個端口,監(jiān)聽控制端發(fā)來的命令?,F(xiàn)在的木馬為了更加隱蔽自己,不再開啟通信端口,而是利用ICMP包通信,或者是采用反彈端口形式實現(xiàn)通信。但不管采用哪種技術,網(wǎng)絡通信是木馬必須具有的功能。一個成功的木馬必須具備上面的五個特征,如果用S表示木馬成功植入和運行,C1C4表示上述的四個木馬必備的特征,則可用表達式如下表
6、示它們之間的關系:因此,可以利用上述的任何一個特征來防范木馬入侵。一旦阻止了一個木馬程序的某一特征的實現(xiàn),它就不能成功安裝或不能完成入侵以及竊取等功能。本文主要針對木馬的自啟動特性來完成對木馬的防范。2 木馬自啟動的實現(xiàn)為了使木馬程序在系統(tǒng)重新啟動以后能夠自動運行,木馬程序利用了很多操作系統(tǒng)的特性。例如修改注冊表,很多木馬利用了注冊表中RUNRUNSERVICE鍵值,實現(xiàn)自啟動;還有的木馬修改系統(tǒng)配置文件,如win.ini、system.ini文件等。下面介紹木馬最為常用的自啟動機制:( 1) 系統(tǒng)啟動文件夾在Windows的文件系統(tǒng)中,有個文件夾是專門存放系統(tǒng)啟動以后自動運行的程序。下面給出
7、系統(tǒng)的文件夾:C:WindowsstartmenuprogramsstartupC:WINDOWSAllUsersStartMenuProgramsStartup這是最基本、最常用的Windows啟動方式,主要用于啟動一些應用軟件的自啟動項目,如Office的快捷菜單。一般用戶希望啟動時所要啟動的文件也可以通過這里啟動,只需把所需文件或其快捷方式放入文件夾中即可。這個文件夾是可以更改的,雖然文件夾中的內(nèi)容在默認狀態(tài)下可以被用戶看得一清二楚,但通過改動還是可以達到相當隱蔽的啟動目的。( 2) 系統(tǒng)配置文件由于系統(tǒng)的配置文件對于大多數(shù)的用戶來說都是相當陌生的,這就造成了這些啟動方法相對來說都是相當
8、隱蔽的。有的木馬就是通過修改配置文件實現(xiàn)自啟動的。這兩個系統(tǒng)配置文件是WIN.INI和SYSTEM.INI。WIN.INI文件格式如下:WindowsLoad=trojan.exe這樣設置,程序Trojan就會在系統(tǒng)啟動以后自動在后臺運行。SYSTEM.INI文件格式如下:BootShell=Explorer.exe可以將Shell的內(nèi)容改為Shell=Explorer.exetrojan.exe這樣,系統(tǒng)啟動后就會自動運行Explorer和Trojan兩個程序。( 3) 注冊表啟動注冊表中的啟動應該是被使用最頻繁的啟動方式,但這樣的方式也有一些隱蔽性較高的方法。常規(guī)的啟動方法是在下列鍵值中設
9、置要啟動的程序:HKLMSoftwareMicrosoftWindowsCurrentVersionRunHKLMSoftwareMicrosoftWindowsCurrentVersionRunOnceHKLMSoftwareMicrosoftWindowsCurrentVersionRunServicesHKLMSoftwareMicrosoftWindowsCurrentVersionRunServicesOnceHKCUSoftwareMicrosoftWindowsCurrentVersionRunHKCUSoftwareMicrosoftWindowsCurrentVersionR
10、unOnce例如,在HKLMSoftwareMicrosoftWindowsCurrentVersionRun中,新建一個字符串型的值,字符串的內(nèi)容為C:WINDOWSSystem32newtrojan.exe,那么系統(tǒng)再次啟動以后,就會自動運行newtrojan.exe這個程序。除此之外,注冊表中還有一些地方經(jīng)常被特洛伊木馬所利用。例如在HKEY_CLASSES_ROOTtxtfileshellopencommand中,系統(tǒng)默認的值為SystemRoot%system32NOTEPAD.EXE%這樣就將以.txt為后綴的文本文件和NOTEPAD.EXE個應用程序關聯(lián)起來,每次用戶打開文本文件
11、時,系統(tǒng)就會自動調(diào)用NOTEPA這個應用程序。而有的木馬,如冰河,就修改了這個鍵值,將其修改為%SystemRoot%system32SYSEXPLR.EXE%,這樣,當用戶每1次打開文本文件時,系統(tǒng)就會自動調(diào)用SYSEXPL這個程序,這實際上是一個木馬程序。木馬程序運行后,再去啟動NOTEPAD!序,這樣用戶可能很難察覺系統(tǒng)已經(jīng)運行了木馬程序。綜上可以看出,只要能夠從底層對上述的幾個文件和目錄以及注冊表中與自啟動相關的目錄進行監(jiān)控,就可以監(jiān)控木馬的入侵。而如何從底層進行監(jiān)控呢,筆者采用的是從驅(qū)動層掛接系統(tǒng)服務調(diào)度表的技術。3Windows系統(tǒng)服務調(diào)用機制所謂系統(tǒng)服務是由操作系統(tǒng)提供的一個函數(shù)
12、集,應用程序可以通過API函數(shù)直接或間接地調(diào)用系統(tǒng)服務。在Windows操作系統(tǒng)中,應用程序是運行在Win32子環(huán)境中的。Win32子環(huán)境為應用程序提供了一套動態(tài)鏈接庫。其中包括Kernel32.dll、Advapi32.dll、User32.dll和Gdi32.dll等。應用程序調(diào)用系統(tǒng)服務主要是通過上面的動態(tài)鏈接庫提供的API函數(shù)實現(xiàn)的。在操作系統(tǒng)中存在兩種模式,即用戶模式和內(nèi)核模式。一般的應用程序都是運行在用戶模式,只有操作系統(tǒng)等關鍵組件才運行于內(nèi)核模式。將系統(tǒng)分為用戶模式和內(nèi)核模式有利于系統(tǒng)的安全和穩(wěn)定。從用戶模式調(diào)用本機系統(tǒng)服務是通過NTDLL.DLL來實現(xiàn)的。例如Kernel32.
13、dll通過Ntdll.dll這個動態(tài)鏈接庫來真正地觸發(fā)系統(tǒng)調(diào)用服務,Ntdll.dll執(zhí)行INT指令產(chǎn)生陷阱,由用戶態(tài)進入到內(nèi)核態(tài),系統(tǒng)服務真正地實現(xiàn)是在ntoskrnl.exe中完成的。也就是說NTDLL.DLL只是系統(tǒng)服務調(diào)用接口在用戶模式下的一個外殼。創(chuàng)建一個文件和創(chuàng)建一個注冊表的項對于Windows的系統(tǒng)服務調(diào)用機制是一樣的,只是調(diào)用的函數(shù)不同而已。下面就以注冊表為例。而注冊表操作的系統(tǒng)服務是在ntoskrnl.exe中實現(xiàn)ntoskrnl.exe為例。它們之間的關系如圖1所示。當應用程序在注冊表中創(chuàng)建一個新的項目時,就會調(diào)用Advapi32.dll中的RegCreateKey函數(shù),R
14、egCreateKey函數(shù)檢查傳進來的參數(shù)是否有效,并將它們都轉(zhuǎn)換成Unicode碼。接下來,RegCreateKey就會調(diào)用Ntdll.dll中的NtCreateKey函數(shù)。由于每一個系統(tǒng)服務都對應著一個系統(tǒng)服務號,NtCreateKey函數(shù)將系統(tǒng)服務號填入到寄存器EAX中,然后再將參數(shù)在堆棧中的指針賦給寄存器EDX最后觸發(fā)INT2E指令,從用戶態(tài)進入到內(nèi)核態(tài)。系統(tǒng)服務調(diào)用模型大體如下:moveax,ServiceIdleaedx,ptrParameterint2ehret其中,ServiceId是系統(tǒng)服務號,ptrParameter是參數(shù)在堆棧中的位置。進入內(nèi)核態(tài)之后,系統(tǒng)調(diào)用KiSyst
15、emService函數(shù),內(nèi)核根據(jù)系統(tǒng)服務號在中斷描述表(IDT)中查找相應的系統(tǒng)服務指針。這個指針指向函數(shù)ZwCreateKey,然后執(zhí)行這個服務程序。服務程序首先將參數(shù)從用戶態(tài)的堆??臻g拷貝到內(nèi)核態(tài)的堆棧空間,最后執(zhí)行具體的服務功能。Windows中默認存在兩個系統(tǒng)服務調(diào)度表,它們對應了兩類不同的系統(tǒng)服務。這兩個調(diào)度表分別是KeServiceDescriptorTable和KeServiceDescriptorTableShadow。系統(tǒng)服務調(diào)度表KeServiceDescriptorTable定義了在ntoskrnl.exe中實現(xiàn)的系統(tǒng)服務,通常在kernel32.dll/advapi32
16、.dll中提供函數(shù)接口均是調(diào)用的這個系統(tǒng)服務調(diào)度表中的函數(shù);KeServiceDescriptorTableShadow除了包含上面的系統(tǒng)服務,還包含在Win32k.sys中實現(xiàn)的相關Win32USE序口GDI函數(shù),它們是屬于另一類系統(tǒng)服務調(diào)用,它提供了內(nèi)核模式實現(xiàn)的USE林口GDI服務。在Windows2000操作系統(tǒng)中存在兩類系統(tǒng)服務。一類是Win32內(nèi)核API經(jīng)過Kernel32.dll/advapi32.dll進入NTDLL.dll后使用int0x2e中斷進入內(nèi)核,最后在ntoskrnl.exe中實現(xiàn)了真正的函數(shù)調(diào)用;另一類是Win32USER和GDIAPI直接通過User32.dll
17、/Gdi32.dll進入了內(nèi)核,最后是在Win32k.sys中實現(xiàn)了真正的函數(shù)調(diào)用。要實現(xiàn)對注冊表和文件系統(tǒng)的寫操作的監(jiān)控,就需要將系統(tǒng)服務調(diào)度表中相應的函數(shù)指針重新定位,使它指向本文自定義的函數(shù),在該函數(shù)進行完預處理之后,再根據(jù)具體情況決定,或者調(diào)用原來的系統(tǒng)服務函數(shù),或直接運行后面的程序,這就是系統(tǒng)服務掛接(HOOKING技術。4掛接系統(tǒng)服務調(diào)度表實現(xiàn)監(jiān)控掛接(HOOKING技術也稱為鉤子技術,是Windows操作系統(tǒng)中一種通用的技術,它可以攔截或監(jiān)聽可執(zhí)行代碼在執(zhí)行過程中的一些信息,可以更改操作系統(tǒng)的行為??梢詭椭藗兞私庀到y(tǒng)內(nèi)部結(jié)構(gòu)、運作機制等。被廣泛應用于事件追蹤、修改系統(tǒng)行為等操作
18、中。為了實現(xiàn)文件系統(tǒng)以及注冊表的監(jiān)控,首先要在系統(tǒng)服務調(diào)度表中找到需要替換的函數(shù)指針,將這個指針指向本文自定義的函數(shù);當調(diào)用相應的系統(tǒng)服務時,首先就會執(zhí)行本文自定義的函數(shù)。這樣,就實現(xiàn)了系統(tǒng)服務的掛接。由于文件系統(tǒng)和注冊表監(jiān)控只是Hook的內(nèi)核中的函數(shù)不同而已,在此仍以RegCreateKey為例。當它調(diào)用Ntdll.dll中的NtCreateKey時,通過軟中斷進入到內(nèi)核態(tài),每個在Ntdll.dll中導出的以Nt開頭的系統(tǒng)服務占位函數(shù)在內(nèi)核中都有一個相應的以Zw開頭函數(shù)與之對應,系統(tǒng)就會根據(jù)中斷服務號在系統(tǒng)服務調(diào)度表中查找到ZwCreateKey函數(shù),然后執(zhí)行調(diào)用這個函數(shù)。如圖2所示,現(xiàn)在,
19、將系統(tǒng)服務調(diào)度表中的函數(shù)指針指向本文自定義的函數(shù)myZwCreateKey,這樣,執(zhí)行系統(tǒng)服務調(diào)用時,就會先執(zhí)行函數(shù)myZwCreateKey,在這個函數(shù)中進行筆者所需要的預處理。首先顯示目前試圖添加自啟動特性的進程,然后再根據(jù)使用者的選擇。如果用于允許該進程自啟動,則執(zhí)行原來的ZwCreateKey函數(shù);否則跳過這個系統(tǒng)服務函數(shù),直接執(zhí)行后面的代碼。由于系統(tǒng)服務調(diào)度表是在內(nèi)核的ntoskrnl.exe中定義的,如果要對其進行修改,必須使修改程序也要運行在內(nèi)核態(tài)。這樣就需要編寫驅(qū)動程序,驅(qū)動程序是運行在內(nèi)核態(tài)的。關于驅(qū)動程序的編寫在這里就不作詳細描述,下面只給出監(jiān)控注冊表的掛接注冊程序的主要示意代碼。/聲明系統(tǒng)服務表externPSRVTABLEKeServiceDescriptorTable;/定義系統(tǒng)服務入口的宏定
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 郵寄檢驗服務部工作技巧與客戶反饋計劃
- 《貴州美升能源集團有限公司六枝特區(qū)新興煤礦(變更)礦產(chǎn)資源綠色開發(fā)利用方案(三合一)》評審意見
- 膀胱部分切除后護理
- 高中地理 3.1 海水的溫度和鹽度教學實錄2 新人教版選修2
- 2025年三明道路運輸從業(yè)人員從業(yè)資格考試
- 2025年貴州貨運從業(yè)資格證模擬考試保過版
- 《人民幣兌換》(教學設計)-2024-2025學年五年級上冊數(shù)學北師大版
- 部隊違規(guī)使用檢討書
- 社區(qū)七夕節(jié)活動方案
- 四年級數(shù)學(四則混合運算)計算題專項練習與答案
- 初中物理公式MicrosoftWord文檔
- 冠心病臨床路徑
- 詐騙案件授課PPT課件
- 基于PLC的電梯控制系統(tǒng)設計
- 弗洛姆異化理論
- 園林噴灌工程施工方案(精編版)
- 碳納米管_ppt課件
- 【課件】第2課如何鑒賞美術作品課件-高中美術人教版(2019)美術鑒賞
- [康熙字典9畫五行屬金的字加解釋] 康熙字典五行屬金的字
- 托盤操作評分表
- 關于老年癡呆癥及其智能陪護設備的調(diào)查報告
評論
0/150
提交評論