




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、DLL后門清除完全篇 DLL后門清除完全篇! 前言 后門!相信這個詞語對您來說一定不會陌生,它的危害不言而欲,但隨著人們的安全意識逐步增強,又加上殺毒軟件的“大力支持”,使傳統(tǒng)的后門無法在隱藏自己,任何稍微有點計算機知識的人,都知道“查端口”“看進程”,以便發(fā)現(xiàn)一些“蛛絲馬跡”。所以,后門的編寫者及時調整了思路,把目光放到了動態(tài)鏈接程序庫上,也就是說,把后門做成DLL文件,然后由某一個EXE做為載體,或者使用Rundll32.exe來啟動,這樣就不會有進程,不開端口等特點,也就實現(xiàn)了進程、端口的隱藏。本文以“DLL的原理”“DLL的清除”“DLL的防范”為主題,并展開論述,旨在能讓大家對DLL
2、后門“快速上手”,不在恐懼DLL后門。好了,進入我們的主題。 一,DLL的原理 1,動態(tài)鏈接程序庫 動態(tài)鏈接程序庫,全稱:Dynamic Link Library,簡稱:DLL,作用在于為應用程序提供擴展功能。應用程序想要調用DLL文件,需要跟其進行“動態(tài)鏈接”;從編程的角度,應用程序需要知道DLL文件導出的API函數(shù)方可調用。由此可見,DLL文件本身并不可以運行,需要應用程序調用。正因為DLL文件運行時必須插入到應用程序的內存模塊當中,這就說明了:DLL文件無法刪除。這是由于Windows內部機制造成的:正在運行的程序不能關閉。所以,DLL后門由此而生! 2,DLL后門原理及特點 把一個實現(xiàn)
3、了后門功能的代碼寫成一個DLL文件,然后插入到一個EXE文件當中,使其可以執(zhí)行,這樣就不需要占用進程,也就沒有相對應的PID號,也就可以在任務管理器中隱藏。DLL文件本身和EXE文件相差不大,但必須使用程序(EXE)調用才能執(zhí)行DLL文件。DLL文件的執(zhí)行,需要EXE文件加載,但EXE想要加載DLL文件,需要知道一個DLL文件的入口函數(shù)(既DLL文件的導出函數(shù)),所以,根據(jù)DLL文件的編寫標準:EXE必須執(zhí)行DLL 文件中的DLLMain()作為加載的條件(如同EXE的mian()。做DLL后門基本分為兩種:1)把所有功能都在DLL文件中實現(xiàn);2)把DLL 做成一個啟動文件,在需要的時候啟動一
4、個普通的EXE后門。 常見的編寫方法: (1),只有一個DLL文件 這類后門很簡單,只把自己做成一個DLL文件,在注冊表Run鍵值或其他可以被系統(tǒng)自動加載的地方,使用Rundll32.exe來自動啟動。 Rundll32.exe是什么?顧名思意,“執(zhí)行32位的DLL文件”。它的作用是執(zhí)行DLL文件中的內部函數(shù),這樣在進程當中,只會有 Rundll32.exe,而不會有DLL后門的進程,這樣,就實現(xiàn)了進程上的隱藏。如果看到系統(tǒng)中有多個Rundll32.exe,不必驚慌,這證明用 Rundll32.exe啟動了多少個的DLL文件。當然 ,這些Rundll32.exe執(zhí)行的DLL文件是什么,我們都可
5、以從系統(tǒng)自動加載的地方找到。 現(xiàn)在,我來介紹一下Rundll32.exe這個文件,意思上邊已經說過,功能就是以命令行的方式調用動態(tài)鏈接程序庫。系統(tǒng)中還有一個 Rundll.exe文件,他的意思是“執(zhí)行16位的DLL文件”,這里要注意一下。在來看看Rundll32.exe使用的函數(shù)原型: Void CALLBACK FunctionName ( HWND hwnd, HINSTANCE hinst, LPTSTR lpCmdLine, Int nCmdShow ); 其命令行下的使用方法為:Rundll32.exe DLLname,Functionname Arguments DLLname為需
6、要執(zhí)行的DLL文件名;Functionname為前邊需要執(zhí)行的DLL文件的具體引出函數(shù);Arguments為引出函數(shù)的具體參數(shù)。 (2),替換系統(tǒng)中的DLL文件 這類后門就比上邊的先進了一些,它把實現(xiàn)了后門功能的代碼做成一個和系統(tǒng)匹配的DLL文件,并把原來的DLL文件改名。遇到應用程序請求原來的DLL 文件時, DLL后門就啟一個轉發(fā)的作用,把“參數(shù)”傳遞給原來的DLL文件;如果遇到特殊的請求時(比如客戶端),DLL后門就開始,啟動并運行了。對于這類后門,把所有操作都在DLL文件中實現(xiàn)最為安全,但需要的編程知識也非常多,也非常不容易編寫。所以,這類后門一般都是把DLL文件做成一個“啟動”文件,
7、在遇到特殊的情況下(比如客戶端的請求),就啟動一個普通的EXE后門;在客戶端結束連接之后,把EXE后門停止,然后DLL文件進入“休息”狀態(tài),在下次客戶端連接之前,都不會啟動。但隨著微軟的“數(shù)字簽名”和“文件恢復”的功能出臺,這種后門已經逐步衰落。 提示: 在WINNTsystem32目錄下,有一個dllcache文件夾,里邊存放著眾多DLL文件(也包括一些重要的EXE文件),在DLL文件被非法修改之后,系統(tǒng)就從這里來恢復被修改的DLL文件。如果要修改某個DLL文件,首先應該把dllcache目錄下的同名DLL文件刪除或更名,否則系統(tǒng)會自動恢復。 (3),動態(tài)嵌入式 這才是DLL后門最常用的方法
8、。其意義是將DLL文件嵌入到正在運行的系統(tǒng)進程當中。在Windows系統(tǒng)中,每個進程都有自己的私有內存空間,但還是有種種方法來進入其進程的私有內存空間,來實現(xiàn)動態(tài)嵌入式。由于系統(tǒng)的關鍵進程是不能終止的,所以這類后門非常隱蔽,查殺也非常困難。常見的動態(tài)嵌入式有:“掛接API”“全局鉤子(HOOK)”“遠程線程”等。 遠程線程技術指的是通過在一個進程中創(chuàng)建遠程線程的方法來進入那個進程的內存地址空間。當EXE載體(或Rundll32.exe)在那個被插入的進程里創(chuàng)建了遠程線程,并命令它執(zhí)行某個DLL文件時,我們的DLL后門就掛上去執(zhí)行了,這里不 會產生新的進程,要想讓DLL后門停止,只有讓這個鏈接
9、DLL后門的進程終止。但如果和某些系統(tǒng)的關鍵進程鏈接,那就不能終止了,如果你終止了系統(tǒng)進程,那Windows也隨即被終止! 3,DLL后門的啟動特性 啟動DLL后門的載體EXE是不可缺少的,也是非常重要的,它被稱為:Loader。如果沒有Loader,那我們的DLL后門如何啟動呢?因此,一個好的DLL后門會盡力保護自己的Loader不被查殺。Loader的方式有很多,可以是為我們的DLL后門而專門編寫的一個EXE文件;也可以是系統(tǒng)自帶的Rundll32.exe,即使停止了Rundll32.exe,DLL后門的主體還是存在的。3721網(wǎng)絡實名就是一個例子,雖然它并不是“真正”的后門。 二,DLL
10、的清除 本節(jié)以三款比較有名的DLL后門例,分別為“SvchostDLL.dll”“BITS.dll”“QoServer.dll”。詳細講解其手工清除方法。希望大家在看過這三款DLL后門的清除方法之后,能夠舉一反三,靈活運用,在不懼怕DLL后門。其實,手工清除DLL后門還是比較簡單的,無非就是在注冊表中做文章。具體怎么做,請看下文。 1,PortLess BackDoor 這是一款功能非常強大的DLL后門程序,除了可以獲得Local System權限的Shell之外,還支持如“檢測克隆帳戶”“安裝終端服務”等一系列功能(具體可以參見程序幫助),適用Windows2000/xp /2003等系統(tǒng)。
11、程序使用svchost.exe來啟動,平常不開端口,可以進行反向連接(最大的特點哦),對于有防火墻的主機來說,這個功能在好不過了。 在介紹清除方法之前,我們先來簡單的介紹一下svchost.exe這個系統(tǒng)的關鍵服務: Svchost只是做為服務的宿主,本身并不實現(xiàn)什么功能,如果需要使用Svchost來啟動服務,則某個服務是以DLL形式實現(xiàn)的,該DLL的載體 Loader指向svchost,所以,在啟動服務的時候由svchost調用該服務的DLL來實現(xiàn)啟動的目的。使用svchost啟動某個服務的DLL 文件是由注冊表中的參數(shù)來決定的,在需要啟動服務的下邊都有一個Parameters子鍵,其中的S
12、erviceDll表明該服務由哪個DLL文件負責,并且這個DLL文件必須導出一個ServiceMain()函數(shù),為處理服務任務提供支持。 呵呵!看了上邊的理論,是不是有點蒙(我都快睡著了),別著急,我們來看看具體的內容)。我們可以看到 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesRpcSs下的Parameters子鍵,其鍵值為%SystemRoot%system32rpcss.dll。這就說明:啟動RpcSs服務時。Svchost調用WINNTsystem32目錄下的rpcss.dll。 這是注冊表的HKEY_LOCAL_MACHINESO
13、FTWAREMicrosoftWindows NTCurrentVersionSvchost,里邊存放著Svchost啟動的組和組內的各個服務,其中netsvcs組的服務最多。要使用 Svchost啟動某個服務,則該服務名就會 出現(xiàn)在HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionSvchost下。這里有四種方法來實現(xiàn): 1, 添加一個新的組,在組里添加服務名 2, 在現(xiàn)有組里添加服務名 3, 直接使用現(xiàn)有組里的一個服務名,但是本機沒有安裝的服務 4, 修改現(xiàn)有組里的現(xiàn)有服務,把它的ServiceDll指向自己的DLL后門
14、我測試的PortLess BackDoor使用的第三種方法。 好了,我想大家看完了上邊的原理,一定可以想到我們清除PortLess BackDoor的方法了,對,就是在注冊表的Svchost鍵下做文章。好,我們現(xiàn)在開始。 注:由于本文只是介紹清除方法,使用方法在此略過。 后門的Loader把SvchostDLL.dll插入Svchost進程當中,所以,我們先打開Windows優(yōu)化大師中的Windows進程管理 2.5,查看Svchost進程中的模塊信息,SvchostDLL.dll已經插入到Svchost進程中了,在根據(jù)“直接使用現(xiàn)有組里的一個服務名,但是本機沒有安裝的服務”的提示,我們可以斷
15、定,在“管理工具”“服務”中會有一項新的服務。證明了我的說法,此服務名稱為:IPRIP,由 Svchost啟動,-k netsvcs表示此服務包含在netsvcs服務組中。 我們把該服務停掉,然后打開注冊表編輯器(開始運行-regedit),來到 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesIPRIP下,查看其Parameters子鍵)。Program鍵的鍵值SvcHostDLL.exe為后門的Loader;ServiceDll的鍵值 C:WINNTsystem32svchostdll.dll為調用的DLL文件,這正是后門的DLL文件?,F(xiàn)在
16、我們刪除IPRIP子鍵(或者用SC來刪除),然后在來到HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionSvchost下,編輯netsvcs服務組,把49 00 70 00 72 00 69 00 70 00 00 00刪除,這里對應的就是IPRIP的服務名。然后退出,重啟。重啟之后刪除WINNTsystem32目錄下的后門文件即可。 2,BITS.dll 這是榕哥的作品,也是DLL后門,和SvchostDLL.dll原理基本一樣,不過這里使用的是上邊介紹的第四種方法,即“修改現(xiàn)有組里的現(xiàn)有服務,把它的ServiceDll指向
17、自己的DLL后門”。換句話說,該后門修改現(xiàn)有的某一個服務,把其原有服務的DLL指向自己(也就是 BITS.dll),這樣就達到了自動加載的目的;其次,該后門沒有自己的Loader,而是使用系統(tǒng)自帶的Rundll32.exe來加載。我們還是用 Windows 進程管理2.5來查看,從圖7中,我們可以看到bits.dll已經插入到Svchost進程當中。 好,現(xiàn)在我們來看看具體的清除方法,由于該后門是修改現(xiàn)有服務,而我們并不知道具體是修改了哪個服務,所以,在注冊表中搜索bits.dll,最后在 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesRas
18、Auto下搜索到了bits.dll,查看 Parameters子鍵下的ServiceDll,其鍵值為C:WINNTsystem32bits.dll(如 圖8)。原來,該后門把RasAuto 服務原來的DLL文件替換為bits.dll了,這樣來實現(xiàn)自動加載。知道了原因就好辦了,現(xiàn)在我們把ServiceDll的鍵值修改為RasAuto服務原有的DLL文件,即%SystemRoot%System32rasauto.dll,退出,重啟。之后刪除WINNTsystem32目錄下的 bits.dll即可。 3,NOIR-QUEEN NOIR-QUEEN(守護者)是一個DLL后門&木馬程序,服務端以
19、DLL文件的形式插入到系統(tǒng)的Lsass.exe進程里,由于 Lsass.exe是系統(tǒng)的關鍵進程,所以不能終止。在來介紹清除方法之前,我先介紹一下Lsass.exe進程: 這是一個本地的安全授權服務,并且它會為使用Winlogon服務的授權用戶生成一個進程,如果授權是成功的,Lsass就會產生用戶的進入令牌,令牌使用啟動初始 的Shell。其他的由用戶初始化的進程會繼承這個令牌。 從上邊的介紹我們就可以看出Lsass對系統(tǒng)的重要性,那具體怎么清除呢?請看下文。 后門在安裝成功后,會在服務中添加一個名為QoSserver的服務,并把QoSserver.dll后門文件插入到Lsass進程當中,使其可以隱藏進程并自動啟動(如圖9)。現(xiàn)在我們打開注冊表,來到 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesQoSserver,直接刪除QoSserver 鍵,然后重啟。重啟之后,我們在來到服務列表中,會看到QoSserver服務還在,但沒有啟動,類別是自動,我們把他修
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 信息處理項目實踐題及答案
- 橋下易燃物火災應急預案(3篇)
- 2025年信息處理技術員備考指南試題及答案
- 機場小型火災應急預案(3篇)
- 班級活動火災應急預案(3篇)
- 2025年游戲開發(fā)程序員考試試題及答案
- 涼庫發(fā)生火災應急預案(3篇)
- 2025年計算機VB考試課程大綱試題及答案
- 2025年軟考設計師學習資源試題及答案
- 2025年軟考網(wǎng)絡管理員新法試題及答案
- 2025年護士考試心理健康試題及答案
- 旅游法規(guī)教程試題及答案
- 工程測量學概述
- 農村小學教師信息技術應用能力提升策略研究:數(shù)字化教學資源與實踐應用
- 2025-2030中國學生校服行業(yè)市場發(fā)展分析及前景趨勢與投資研究報告
- DB11 T 411.8-2007 體育場館等級劃分及評定 第8部分:籃球館
- 滴滴管理制度
- 2025年全國中小學生百科知識競賽題庫及答案(480題)
- 貨車掛靠協(xié)議合同
- 規(guī)模化養(yǎng)豬場非洲豬瘟生物安全防控策略研究
- 2025年度專業(yè)技術人員繼續(xù)教育公需科目考試題(附答案)
評論
0/150
提交評論