最新av偷拍av偷窥av网站,在教室伦流澡到高潮h麻豆,一个人在线高清免费观看,中文字幕av无码一二三区电影,中国丰满熟妇xxxx性

您當(dāng)前的位置:JZ5U綠色下載站文章中心設(shè)計(jì)學(xué)院Photoshop → 文章內(nèi)容
  • DLL后門清除

前言

  后門!相信這個(gè)詞語(yǔ)對(duì)您來(lái)說(shuō)一定不會(huì)陌生,它的危害不然而欲,但隨著人們的安全意識(shí)逐步增強(qiáng),又加上殺毒軟件的“大力支持”,使傳統(tǒng)的后門無(wú)法在隱藏自己,任何稍微有點(diǎn)計(jì)算機(jī)知識(shí)的人,都知道“查端口”“看進(jìn)程”,以便發(fā)現(xiàn)一些“蛛絲馬跡”。所以,后門的編寫者及時(shí)調(diào)整了思路,把目光放到了動(dòng)態(tài)鏈接程序庫(kù)上,也就是說(shuō),把后門做成DLL文件,然后由某一個(gè)EXE做為載體,或者使用Rundll32.exe來(lái)啟動(dòng),這樣就不會(huì)有進(jìn)程,不開端口等特點(diǎn),也就實(shí)現(xiàn)了進(jìn)程、端口的隱藏。本文以“DLL的原理”“DLL的清除”“DLL的防范”為主題,并展開論述,旨在能讓大家對(duì)DLL后門“快速上手”,不在恐懼DLL后門。好了,進(jìn)入我們的主題。

一,DLL的原理

1,動(dòng)態(tài)鏈接程序庫(kù)

  動(dòng)態(tài)鏈接程序庫(kù),全稱:Dynamic Link Library,簡(jiǎn)稱:DLL,作用在于為應(yīng)用程序提供擴(kuò)展功能。應(yīng)用程序想要調(diào)用DLL文件,需要跟其進(jìn)行“動(dòng)態(tài)鏈接”;從編程的角度,應(yīng)用程序需要知道DLL文件導(dǎo)出的API函數(shù)方可調(diào)用。由此可見,DLL文件本身并不可以運(yùn)行,需要應(yīng)用程序調(diào)用。正因?yàn)镈LL文件運(yùn)行時(shí)必須插入到應(yīng)用程序的內(nèi)存模塊當(dāng)中,這就說(shuō)明了:DLL文件無(wú)法刪除。這是由于Windows內(nèi)部機(jī)制造成的:正在運(yùn)行的程序不能關(guān)閉。所以,DLL后門由此而生!

2,DLL后門原理及特點(diǎn)

  把一個(gè)實(shí)現(xiàn)了后門功能的代碼寫成一個(gè)DLL文件,然后插入到一個(gè)EXE文件當(dāng)中,使其可以執(zhí)行,這樣就不需要占用進(jìn)程,也就沒有相對(duì)應(yīng)的PID號(hào),也就可以在任務(wù)管理器中隱藏。DLL文件本身和EXE文件相差不大,但必須使用程序(EXE)調(diào)用才能執(zhí)行DLL文件。DLL文件的執(zhí)行,需要EXE文件加載,但EXE想要加載DLL文件,需要知道一個(gè)DLL文件的入口函數(shù)(既DLL文件的導(dǎo)出函數(shù)),所以,根據(jù)DLL文件的編寫標(biāo)準(zhǔn):EXE必須執(zhí)行DLL文件中的DLLMain()作為加載的條件(如同EXE的mian())。做DLL后門基本分為兩種:1)把所有功能都在DLL文件中實(shí)現(xiàn);2)把DLL做成一個(gè)啟動(dòng)文件,在需要的時(shí)候啟動(dòng)一個(gè)普通的EXE后門。

常見的編寫方法:

  (1),只有一個(gè)DLL文件

  這類后門很簡(jiǎn)單,只把自己做成一個(gè)DLL文件,在注冊(cè)表Run鍵值或其他可以被系統(tǒng)自動(dòng)加載的地方,使用Rundll32.exe來(lái)自動(dòng)啟動(dòng)。Rundll32.exe是什么?顧名思意,“執(zhí)行32位的DLL文件”。它的作用是執(zhí)行DLL文件中的內(nèi)部函數(shù),這樣在進(jìn)程當(dāng)中,只會(huì)有Rundll32.exe,而不會(huì)有DLL后門的進(jìn)程,這樣,就實(shí)現(xiàn)了進(jìn)程上的隱藏。如果看到系統(tǒng)中有多個(gè)Rundll32.exe,不必驚慌,這證明用Rundll32.exe啟動(dòng)了多少個(gè)的DLL文件。當(dāng)然,這些Rundll32.exe執(zhí)行的DLL文件是什么,我們都可以從系統(tǒng)自動(dòng)加載的地方找到。

  現(xiàn)在,我來(lái)介紹一下Rundll32.exe這個(gè)文件,意思上邊已經(jīng)說(shuō)過(guò),功能就是以命令行的方式調(diào)用動(dòng)態(tài)鏈接程序庫(kù)。系統(tǒng)中還有一個(gè)Rundll.exe文件,他的意思是“執(zhí)行16位的DLL文件”,這里要注意一下。在來(lái)看看Rundll32.exe使用的函數(shù)原型:
  Void CALLBACK FunctionName (
  HWND hwnd,
  HINSTANCE hinst,
  LPTSTR lpCmdLine,
  Int nCmdShow
  );

  其命令行下的使用方法為:Rundll32.exe DLLname,Functionname [Arguments]
  DLLname為需要執(zhí)行的DLL文件名;Functionname為前邊需要執(zhí)行的DLL文件的具體引出函數(shù);[Arguments]為引出函數(shù)的具體參數(shù)。

  (2),替換系統(tǒng)中的DLL文件

  這類后門就比上邊的先進(jìn)了一些,它把實(shí)現(xiàn)了后門功能的代碼做成一個(gè)和系統(tǒng)匹配的DLL文件,并把原來(lái)的DLL文件改名。遇到應(yīng)用程序請(qǐng)求原來(lái)的DLL文件時(shí), DLL后門就啟一個(gè)轉(zhuǎn)發(fā)的作用,把“參數(shù)”傳遞給原來(lái)的DLL文件;如果遇到特殊的請(qǐng)求時(shí)(比如客戶端),DLL后門就開始,啟動(dòng)并運(yùn)行了。對(duì)于這類后門,把所有操作都在DLL文件中實(shí)現(xiàn)最為安全,但需要的編程知識(shí)也非常多,也非常不容易編寫。所以,這類后門一般都是把DLL文件做成一個(gè)“啟動(dòng)”文件,在遇到特殊的情況下(比如客戶端的請(qǐng)求),就啟動(dòng)一個(gè)普通的EXE后門;在客戶端結(jié)束連接之后,把EXE后門停止,然后DLL文件進(jìn)入“休息”狀態(tài),在下次客戶端連接之前,都不會(huì)啟動(dòng)。但隨著微軟的“數(shù)字簽名”和“文件恢復(fù)”的功能出臺(tái),這種后門已經(jīng)逐步衰落。

  提示:

  在WINNTsystem32目錄下,有一個(gè)dllcache文件夾,里邊存放著眾多DLL文件(也包括一些重要的EXE文件),在DLL文件被非法修改之后,系統(tǒng)就從這里來(lái)恢復(fù)被修改的DLL文件。如果要修改某個(gè)DLL文件,首先應(yīng)該把dllcache目錄下的同名DLL文件刪除或更名,否則系統(tǒng)會(huì)自動(dòng)恢復(fù)。

(3),動(dòng)態(tài)嵌入式


  這才是DLL后門最常用的方法。其意義是將DLL文件嵌入到正在運(yùn)行的系統(tǒng)進(jìn)程當(dāng)中。在Windows系統(tǒng)中,每個(gè)進(jìn)程都有自己的私有內(nèi)存空間,但還是有種種方法來(lái)進(jìn)入其進(jìn)程的私有內(nèi)存空間,來(lái)實(shí)現(xiàn)動(dòng)態(tài)嵌入式。由于系統(tǒng)的關(guān)鍵進(jìn)程是不能終止的,所以這類后門非常隱蔽,查殺也非常困難。常見的動(dòng)態(tài)嵌入式有:“掛接API”“全局鉤子(HOOK)”“遠(yuǎn)程線程”等。

  遠(yuǎn)程線程技術(shù)指的是通過(guò)在一個(gè)進(jìn)程中創(chuàng)建遠(yuǎn)程線程的方法來(lái)進(jìn)入那個(gè)進(jìn)程的內(nèi)存地址空間。當(dāng)EXE載體(或Rundll32.exe)在那個(gè)被插入的進(jìn)程里創(chuàng)建了遠(yuǎn)程線程,并命令它執(zhí)行某個(gè)DLL文件時(shí),我們的DLL后門就掛上去執(zhí)行了,這里不會(huì)產(chǎn)生新的進(jìn)程,要想讓DLL后門停止,只有讓這個(gè)鏈接DLL后門的進(jìn)程終止。但如果和某些系統(tǒng)的關(guān)鍵進(jìn)程鏈接,那就不能終止了,如果你終止了系統(tǒng)進(jìn)程,那Windows也隨即被終止?。?!

3,DLL后門的啟動(dòng)特性

  啟動(dòng)DLL后門的載體EXE是不可缺少的,也是非常重要的,它被稱為:Loader。如果沒有Loader,那我們的DLL后門如何啟動(dòng)呢?因此,一個(gè)好的DLL后門會(huì)盡力保護(hù)自己的Loader不被查殺。Loader的方式有很多,可以是為我們的DLL后門而專門編寫的一個(gè)EXE文件;也可以是系統(tǒng)自帶的Rundll32.exe,即使停止了Rundll32.exe,DLL后門的主體還是存在的。3721網(wǎng)絡(luò)實(shí)名就是一個(gè)例子,雖然它并不是“真正”的后門。

二,DLL的清除

  本節(jié)以三款比較有名的DLL后門例,分別為“SvchostDLL.dll”“BITS.dll”“QoServer.dll”。詳細(xì)講解其手工清除方法。希望大家在看過(guò)這三款DLL后門的清除方法之后,能夠舉一反三,靈活運(yùn)用,在不懼怕DLL后門。其實(shí),手工清除DLL后門還是比較簡(jiǎn)單的,無(wú)非就是在注冊(cè)表中做文章。具體怎么做,請(qǐng)看下文。




1,PortLess BackDoor

  這是一款功能非常強(qiáng)大的DLL后門程序,除了可以獲得Local System權(quán)限的Shell之外,還支持如“檢測(cè)克隆帳戶”“安裝終端服務(wù)”等一系列功能(具體可以參見程序幫助),適用Windows2000/xp/2003等系統(tǒng)。程序使用svchost.exe來(lái)啟動(dòng),平常不開端口,可以進(jìn)行反向連接(最大的特點(diǎn)哦),對(duì)于有防火墻的主機(jī)來(lái)說(shuō),這個(gè)功能在好不過(guò)了。

  在介紹清除方法之前,我們先來(lái)簡(jiǎn)單的介紹一下svchost.exe這個(gè)系統(tǒng)的關(guān)鍵服務(wù):
  Svchost只是做為服務(wù)的宿主,本身并不實(shí)現(xiàn)什么功能,如果需要使用Svchost來(lái)啟動(dòng)服務(wù),則某個(gè)服務(wù)是以DLL形式實(shí)現(xiàn)的,該DLL的載體Loader指向svchost,所以,在啟動(dòng)服務(wù)的時(shí)候由svchost調(diào)用該服務(wù)的DLL來(lái)實(shí)現(xiàn)啟動(dòng)的目的。使用svchost啟動(dòng)某個(gè)服務(wù)的DLL文件是由注冊(cè)表中的參數(shù)來(lái)決定的,在需要啟動(dòng)服務(wù)的下邊都有一個(gè)Parameters子鍵,其中的ServiceDll表明該服務(wù)由哪個(gè)DLL文件負(fù)責(zé),并且這個(gè)DLL文件必須導(dǎo)出一個(gè)ServiceMain()函數(shù),為處理服務(wù)任務(wù)提供支持。

  呵呵!看了上邊的理論,是不是有點(diǎn)蒙(我都快睡著了),別著急,我們來(lái)看看具體的內(nèi)容)。我們可以看到HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesRpcSs下的Parameters子鍵,其鍵值為%SystemRoot%system32rpcss.dll。這就說(shuō)明:?jiǎn)?dòng)RpcSs服務(wù)時(shí)。Svchost調(diào)用WINNTsystem32目錄下的rpcss.dll。

  這是注冊(cè)表的HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionSvchost,里邊存放著Svchost啟動(dòng)的組和組內(nèi)的各個(gè)服務(wù),其中netsvcs組的服務(wù)最多。要使用Svchost啟動(dòng)某個(gè)服務(wù),則該服務(wù)名就會(huì)出現(xiàn)在HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionSvchost下。這里有四種方法來(lái)實(shí)現(xiàn):
  1, 添加一個(gè)新的組,在組里添加服務(wù)名
  2, 在現(xiàn)有組里添加服務(wù)名
  3, 直接使用現(xiàn)有組里的一個(gè)服務(wù)名,但是本機(jī)沒有安裝的服務(wù)
  4, 修改現(xiàn)有組里的現(xiàn)有服務(wù),把它的ServiceDll指向自己的DLL后門

  我測(cè)試的PortLess BackDoor使用的第三種方法。
  好了,我想大家看完了上邊的原理,一定可以想到我們清除PortLess BackDoor的方法了,對(duì),就是在注冊(cè)表的Svchost鍵下做文章。好,我們現(xiàn)在開始。

  注:由于本文只是介紹清除方法,使用方法在此略過(guò)。

  后門的Loader把SvchostDLL.dll插入Svchost進(jìn)程當(dāng)中,所以,我們先打開Windows優(yōu)化大師中的Windows進(jìn)程管理2.5,查看Svchost進(jìn)程中的模塊信息,SvchostDLL.dll已經(jīng)插入到Svchost進(jìn)程中了,在根據(jù)“直接使用現(xiàn)有組里的一個(gè)服務(wù)名,但是本機(jī)沒有安裝的服務(wù)”的提示,我們可以斷定,在“管理工具”—“服務(wù)”中會(huì)有一項(xiàng)新的服務(wù)。證明了我的說(shuō)法,此服務(wù)名稱為:IPRIP,由Svchost啟動(dòng),-k netsvcs表示此服務(wù)包含在netsvcs服務(wù)組中。

  我們把該服務(wù)停掉,然后打開注冊(cè)表編輯器(開始—運(yùn)行--regedit),來(lái)到HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesIPRIP下,查看其Parameters子鍵)。Program鍵的鍵值SvcHostDLL.exe為后門的Loader;ServiceDll的鍵值C:WINNTsystem32svchostdll.dll為調(diào)用的DLL文件,這正是后門的DLL文件。現(xiàn)在我們刪除IPRIP子鍵(或者用SC來(lái)刪除),然后在來(lái)到HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionSvchost下,編輯netsvcs服務(wù)組,把49 00 70 00 72 00 69 00 70 00 00 00刪除,這里對(duì)應(yīng)的就是IPRIP的服務(wù)名。然后退出,重啟。重啟之后刪除WINNTsystem32目錄下的后門文件即可。




2,BITS.dll

  這是榕哥的作品,也是DLL后門,和SvchostDLL.dll原理基本一樣,不過(guò)這里使用的是上邊介紹的第四種方法,即“修改現(xiàn)有組里的現(xiàn)有服務(wù),把它的ServiceDll指向自己的DLL后門”。換句話說(shuō),該后門修改現(xiàn)有的某一個(gè)服務(wù),把其原有服務(wù)的DLL指向自己(也就是BITS.dll),這樣就達(dá)到了自動(dòng)加載的目的;其次,該后門沒有自己的Loader,而是使用系統(tǒng)自帶的Rundll32.exe來(lái)加載。我們還是用Windows 進(jìn)程管理2.5來(lái)查看,從圖7中,我們可以看到bits.dll已經(jīng)插入到Svchost進(jìn)程當(dāng)中。

  好,現(xiàn)在我們來(lái)看看具體的清除方法,由于該后門是修改現(xiàn)有服務(wù),而我們并不知道具體是修改了哪個(gè)服務(wù),所以,在注冊(cè)表中搜索bits.dll,最后在HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesRasAuto下搜索到了bits.dll,查看Parameters子鍵下的ServiceDll,其鍵值為C:WINNTsystem32bits.dll(如圖8)。原來(lái),該后門把RasAuto服務(wù)原來(lái)的DLL文件替換為bits.dll了,這樣來(lái)實(shí)現(xiàn)自動(dòng)加載。知道了原因就好辦了,現(xiàn)在我們把ServiceDll的鍵值修改為RasAuto服務(wù)原有的DLL文件,即%SystemRoot%System32rasauto.dll,退出,重啟。之后刪除WINNTsystem32目錄下的bits.dll即可。

3,NOIR--QUEEN

  NOIR--QUEEN(守護(hù)者)是一個(gè)DLL后門&木馬程序,服務(wù)端以DLL文件的形式插入到系統(tǒng)的Lsass.exe進(jìn)程里,由于Lsass.exe是系統(tǒng)的關(guān)鍵進(jìn)程,所以不能終止。在來(lái)介紹清除方法之前,我先介紹一下Lsass.exe進(jìn)程:

  這是一個(gè)本地的安全授權(quán)服務(wù),并且它會(huì)為使用Winlogon服務(wù)的授權(quán)用戶生成一個(gè)進(jìn)程,如果授權(quán)是成功的,Lsass就會(huì)產(chǎn)生用戶的進(jìn)入令牌,令牌使用啟動(dòng)初始 的Shell。其他的由用戶初始化的進(jìn)程會(huì)繼承這個(gè)令牌。

  從上邊的介紹我們就可以看出Lsass對(duì)系統(tǒng)的重要性,那具體怎么清除呢?請(qǐng)看下文。

  后門在安裝成功后,會(huì)在服務(wù)中添加一個(gè)名為QoSserver的服務(wù),并把QoSserver.dll后門文件插入到Lsass進(jìn)程當(dāng)中,使其可以隱藏進(jìn)程并自動(dòng)啟動(dòng)(如圖9)?,F(xiàn)在我們打開注冊(cè)表,來(lái)到HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesQoSserver,直接刪除QoSserver鍵,然后重啟。重啟之后,我們?cè)趤?lái)到服務(wù)列表中,會(huì)看到QoSserver服務(wù)還在,但沒有啟動(dòng),類別是自動(dòng),我們把他修改為“已禁用”;然后往上看,會(huì)發(fā)現(xiàn)一個(gè)服務(wù)名為AppCPI的服務(wù),其可執(zhí)行程序指向QoSserver.exe(原因后邊我會(huì)說(shuō)到),具體如圖11所示。我們?cè)俅未蜷_注冊(cè)表,來(lái)到HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesAppCPI,刪除AppCPI鍵,重啟,再刪除QoSserver,最后刪除WINNTsystem32目錄下的后門文件。

  本人和這個(gè)后門“搏斗”了3個(gè)多小時(shí),重啟N次。原因在于即使刪除了QoSserver服務(wù),后門還是在運(yùn)行,而且服務(wù)列表中的QoSserver服務(wù)又“死灰復(fù)燃”。后來(lái)才知道原因:在我刪除了QoSserver服務(wù)并重啟之后,插入到Lsass進(jìn)程當(dāng)中的QoSserver.dll文件又恢復(fù)了QoSserver服務(wù),并且生成了另外一個(gè)服務(wù),即AppCPI,所以我們必須在到注冊(cè)表中刪除AppCPI服務(wù)才算是把該后門清除。由此可以看出,現(xiàn)在的后門的保護(hù)措施,真是一環(huán)扣環(huán)。

  注意:在刪除QoSserver服務(wù)并重啟之后,恢復(fù)的QoSserver的啟動(dòng)類別要修改為“已禁用”,否則即便刪除了AppCPI服務(wù),QoSserver服務(wù)又運(yùn)行了。




三,DLL的防范

  看了上邊的例子,我想大家對(duì)清除DLL后門的方法有了一定的了解,但在現(xiàn)實(shí)中,DLL后門并不會(huì)使用默認(rèn)的文件名,所以你也就不能肯定是否中了DLL后門。對(duì)于DLL后門,system32目錄下是個(gè)好地方,大多數(shù)后門也是如此,所以這里要非常注意。下面我來(lái)具體介紹一下怎么發(fā)現(xiàn)DLL后門,希望對(duì)大家有所幫助。

  1,安裝好系統(tǒng)和所有的應(yīng)用程序之后,備份system32目錄下的EXE和DLL文件:打開CMD,來(lái)到WINNTsystem32目錄下,執(zhí)行:dir *.exe>exe.txt & dir *.dll>dll.txt,這樣,就會(huì)把所有的EXE和DLL文件備份到exe.txt和dll.txt文件中;日后,如發(fā)現(xiàn)異常,可以使用相同的命令再次備份EXE和DLL文件(這里我們假設(shè)是exe0.txt和dll0.txt),并使用:fc exe.txt exe0.txt>exedll.txt & fc dll.txt dll0.txt>exedll.txt,其意思為使用FC命令比較兩次的EXE文件和DLL文件,并將比較結(jié)果保存到exedll.txt文件中。通過(guò)這種方法,我們就可以發(fā)現(xiàn)多出來(lái)的EXE和DLL文件,并通過(guò)文件大小,創(chuàng)建時(shí)間來(lái)判斷是否是DLL后門。

  2,使用內(nèi)存/模塊工具來(lái)查看進(jìn)程調(diào)用的DLL文件,比如Windows優(yōu)化大師中的Windows 進(jìn)程管理 2.5。這樣,可以發(fā)現(xiàn)進(jìn)程到底調(diào)用了什么DLL文件,在結(jié)合上邊用FC命令比較出來(lái)的結(jié)果,又能進(jìn)一步來(lái)確定是否中了DLL后門。如果沒有優(yōu)化大師,可以使用TaskList,這個(gè)小工具也可以顯示進(jìn)程調(diào)用的DLL文件,而且還有源代碼,方便修改。

  3,普通后門連接需要打開特定的端口,DLL后門也不例外,不管它怎么隱藏,連接的時(shí)候都需要打開端口。我們可以用netstat –an來(lái)查看所有TCP/UDP端口的連接,以發(fā)現(xiàn)非法連接。大家平時(shí)要對(duì)自己打開的端口心中有數(shù),并對(duì)netstat –an中的state屬性有所了解。當(dāng)然,也可以使用Fport來(lái)顯示端口對(duì)應(yīng)的進(jìn)程,這樣,系統(tǒng)有什么不明的連接和端口,都可以盡收眼底。

  4,定期檢查系統(tǒng)自動(dòng)加載的地方,比如:注冊(cè)表,Winstart.bat,Autoexec.bat,win.ini,system.ini,wininit.ini,Autorun.inf,Config.sys等。其次是對(duì)服務(wù)進(jìn)行管理,對(duì)系統(tǒng)默認(rèn)的服務(wù)要有所了解,在發(fā)現(xiàn)有問(wèn)題的服務(wù)時(shí),可以使用Windows 2000 Server Resource Kit中的SC來(lái)刪除。以上這些地方都可以用來(lái)加載DLL后門的Loader,如果我們把DLL后門Loader刪除了,試問(wèn)?DLL后門還怎么運(yùn)行?!

  通過(guò)使用上邊的方法,我想大多數(shù)DLL后門都可以“現(xiàn)形”,如果我們平時(shí)多做一些備份,那對(duì)查找DLL后門會(huì)啟到事半功倍的效果。

  后記

  通過(guò)詳細(xì)的介紹了DLL后門的一些知識(shí)。其實(shí),從上文中不難看出,DLL后門并沒有想象的這么可怕,清除起來(lái)也比較簡(jiǎn)單?。。?/FONT>


  • 作者:互聯(lián)網(wǎng)  來(lái)源:本站整理  發(fā)布時(shí)間:2006-02-04 21:11:10


------------------------------- · 相關(guān)文檔瀏覽 · --------------------------------------------------------------------- · 熱門文檔瀏覽 · -------------------------------------