資源描述:
《木馬查殺深度剖析》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、皰丁解馬-木馬查殺深度剖析之自啟動(dòng)項(xiàng)篇(六)(轉(zhuǎn))4、自啟動(dòng)項(xiàng)的隱藏、保護(hù)與查殺自啟動(dòng)項(xiàng)的隱藏與保護(hù),跟進(jìn)程的差不多,不外乎還是HOOK,系統(tǒng)提供給程序開發(fā)人員對(duì)注冊(cè)表操作的功能函數(shù)常用的有如下幾個(gè):RegCreateKey、RegOpenKey用于打開創(chuàng)建注冊(cè)鍵;RegDeleteKey、RegDeleteValue用于刪除注冊(cè)鍵及注冊(cè)值;RegEnumKey、RegEnumValue用于枚舉注冊(cè)鍵及注冊(cè)值;還有RegQueryValu來獲取值。另外還有一套*Ex函數(shù),其實(shí)功能都是一樣的。而系統(tǒng)查看或刪除注冊(cè)
2、鍵與值時(shí),也是用的上面的幾個(gè)API。而上面的一些個(gè)API是用于應(yīng)用層的,它們又會(huì)調(diào)用系統(tǒng)內(nèi)核中的Nt*系統(tǒng)的功能服務(wù)來進(jìn)行接下來的處理(*代表了Nt開頭的那些與注冊(cè)表相關(guān)的系統(tǒng)服務(wù)),而Nt*系統(tǒng)服務(wù)又調(diào)用了Cm*底層功能代碼來進(jìn)行操作,當(dāng)然了,最終的操作都要實(shí)現(xiàn)在HIVE文件上面去。進(jìn)程篇中的SSDT-HOOK、SSDT-INLINE—HOOK在注冊(cè)表HOOK時(shí)是完全有效的,HOOK應(yīng)用層的RegCreateKey、RegOpenKey或RegDeleteKey都可以實(shí)現(xiàn)注冊(cè)鍵的防刪除,而HOOKRegEnumK
3、ey就可以實(shí)現(xiàn)注冊(cè)鍵的隱藏,這種HOOK可以對(duì)付系統(tǒng)與大多數(shù)應(yīng)用層的安全工具的檢查;而HOOKNtCreateKey等則同樣可以實(shí)現(xiàn)隱藏與防刪除且層次更深,而HOOKCm*系統(tǒng)注冊(cè)表操作函數(shù),則更加邪惡,且已經(jīng)有這類程序出現(xiàn)。總之,在注冊(cè)表操作的任何一個(gè)環(huán)節(jié)進(jìn)行HOOK,都可以實(shí)現(xiàn)隱藏與防刪除的目的。我們?cè)賮砜纯磮D03-33:在安裝了著名的虛擬光驅(qū)程序DaemonTools后,此工具的驅(qū)動(dòng)會(huì)禁止用戶刪除其注冊(cè)項(xiàng),SPTD.sys就是它的驅(qū)動(dòng)。再看下圖03-34:打開狙劍,選擇“擴(kuò)展功能”à“SSDT
4、檢查”就可以看到sptd.sys對(duì)注冊(cè)表相關(guān)函數(shù)的HOOK。有了進(jìn)程篇的相關(guān)例子,這里就不再細(xì)說了,原理都是一樣的,還有對(duì)Inline-HOOK的檢測(cè)可以用“內(nèi)核代碼掃描”。內(nèi)核代碼掃描不僅能找到Inline-HOOKNt*系列函數(shù)木馬,同樣能找到Inline-HOOKCm*系列函數(shù)的木馬。只不過HOOKCm*系統(tǒng)函數(shù)的木馬層次更深一些而已。而如果直接用狙劍的自啟動(dòng)項(xiàng)管理對(duì)自啟動(dòng)項(xiàng)進(jìn)行操作,則無須手動(dòng)檢查與恢復(fù)HOOK,狙劍在掃描與清除自啟動(dòng)項(xiàng)時(shí),會(huì)自動(dòng)恢復(fù)相關(guān)的HOOK(有些HOOK有防恢復(fù)機(jī)制,也很難用手工
5、來恢復(fù),所以也就沒必要非手工恢復(fù)它,交給工具去做就可以了)。注冊(cè)表由于其特殊性,使得我們多了一個(gè)檢查與清除木馬自啟動(dòng)項(xiàng)的終極手段,那就是直接操作HIVE文件,當(dāng)然了,HIVE文件的重要性使得系統(tǒng)對(duì)其保護(hù)很嚴(yán)密,這對(duì)直接操作HIVE文件造成了一定的麻煩,而風(fēng)險(xiǎn)性也進(jìn)一步的提高。這使得當(dāng)前絕大多數(shù)安全軟件,對(duì)操作HIVE文件來查殺木馬都望而卻步,但其效果卻無疑是目前最好的。我們先看看下圖03-35:打開狙劍,選擇“其它功能”à“注冊(cè)表編輯器”就可以打開如上圖所示的狙劍注冊(cè)表編輯器,這個(gè)編輯器跟系統(tǒng)自帶的那個(gè)
6、Regedit.exe最大的不同就是,狙劍注冊(cè)表編輯器是直接操作的HIVE文件,而沒有使用任何的Reg*、Nt*、Cm*等系統(tǒng)的注冊(cè)表操作函數(shù),這樣,所有的注冊(cè)表相關(guān)HOOK對(duì)這里的操作將完全沒有任何效果。注意看上圖的:HKEY_LOCAL_MACHINE"SYSTEM鍵,再與我們上面講到的,復(fù)制System注冊(cè)表文件后,用Regedit.exe的加載配置單元,加載后的內(nèi)容是不是一樣的?都缺少CurrentControlSet這一個(gè)子鍵。在左側(cè)的列表中按右鍵,可以選擇“僅顯示自啟動(dòng)相關(guān)項(xiàng)”,這時(shí)與自啟動(dòng)無關(guān)的項(xiàng)
7、將被隱藏,方便使用注冊(cè)表編輯器進(jìn)行木馬的查找。而如何使用注冊(cè)表編輯器在HIVE級(jí)別上清除木馬的自啟動(dòng)項(xiàng)呢?我們看下圖03-36:仍然以我們上面用到的系統(tǒng)還原的驅(qū)動(dòng)為例來說明,找到這個(gè)鍵:HKEY_LOCAL_MACHINE"SYSTEM"CurrentControlSet"Services"sr注意在右則,是這個(gè)驅(qū)動(dòng)的注冊(cè)內(nèi)容,在上面按右鍵,可彈出操作菜單,里面提供了幾個(gè)功能“清除項(xiàng)值”、“修改項(xiàng)值”、“修改項(xiàng)名”。l????????清除項(xiàng)值:這個(gè)功能用于一般的自啟動(dòng)項(xiàng),結(jié)果是會(huì)將“數(shù)據(jù)”那一欄
8、的內(nèi)容清零。比比如我們可以將ImagePath一項(xiàng)的數(shù)據(jù)清零,那么對(duì)于一般的驅(qū)動(dòng)來說這個(gè)操作就可以禁止驅(qū)動(dòng)的加載了。l????????修改項(xiàng)值:這個(gè)功能是修改“數(shù)據(jù)”那一欄的內(nèi)容,這個(gè)用來做什么呢?呵,充分發(fā)揮想像,可以做很多事情。比如:將Start那一項(xiàng)的值改為4!為什么改為4呢?如果上面注冊(cè)表基礎(chǔ)知識(shí)那一章看得仔細(xì)就應(yīng)該知