史萊姆論壇

返回   史萊姆論壇 > 教學文件資料庫 > 應用軟體使用技術文件
忘記密碼?
論壇說明

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2006-04-06, 03:19 PM   #1
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 DLL後門清除

前言
  後門!相信這個詞語對您來說一定不會陌生,它的危害不然而欲,但隨著人們的安全意識逐步增強,又加上殺毒軟體的「大力支持」,使傳統的後門無法在隱藏自己,任何稍微有點電腦知識的人,都知道「查連接阜」「看工作」,以便發現一些「蛛絲馬跡」。所以,後門的編寫者及時調整了思法,把目光放到了動態連接程序庫上,也就是說,把後門做成DLL文件,然後由某一個EXE做為媒體,或者使用Rundll32.exe來啟動,這樣就不會有工作,不開連接阜等特點,也就實現了工作、連接阜的隱藏。本文以「DLL的原理」「DLL的清除」「DLL的防範」為主題,並展開論述,旨在能讓大家對DLL後門「快速上手」,不在恐懼DLL後門。好了,進入我們的主題。
一,DLL的原理
1,動態連接程序庫
  動態連接程序庫,全稱:Dynamic Link Library,簡稱:DLL,作用在於為應用程式提供增強功能。應用程式想要使用DLL文件,需要跟其進行「動態連接」;從編程的角度,應用程式需要知道DLL文件匯出的API函數方可使用。由此可見,DLL文件本身並不可以執行,需要應用程式使用。正因為DLL文件執行時必須插入到應用程式的記憶體模組當中,這就說明了:DLL文件無法移除。這是由於Windows內部機製造成的:正在執行的程序不能關閉。所以,DLL後門由此而生!
2,DLL後門原理及特點
  把一個實現了後門功能的程式碼寫成一個DLL文件,然後插入到一個EXE文件當中,使其可以執行,這樣就不需要佔用工作,也就沒有相對應的PID號,也就可以在工作管理器中隱藏。DLL文件本身和EXE文件相差不大,但必須使用程序(EXE)使用才能執行DLL文件。DLL文件的執行,需要EXE文件載入,但EXE想要載入DLL文件,需要知道一個DLL文件的入口函數(既DLL文件的匯出函數),所以,根據DLL文件的編寫標準:EXE必須執行DLL文件中的DLLMain()作為載入的條件(如同EXE的mian())。做DLL後門基本分為兩種:1)把所有功能都在DLL文件中實現;2)把DLL做成一個啟動檔案,在需要的時候啟動一個普通的EXE後門。
一般的編寫方法:
  (1),只有一個DLL文件
  這類後門很簡單,只把自己做成一個DLL文件,在註冊表Run鍵值或其他可以被系統自動載入的地方,使用Rundll32.exe來自動啟動。Rundll32.exe是什麼?顧名思意,「執行32位的DLL文件」。它的作用是執行DLL文件中的內部函數,這樣在工作當中,只會有Rundll32.exe,而不會有DLL後門的工作,這樣,就實現了工作上的隱藏。如果看到系統中有多個Rundll32.exe,不必驚慌,這證明用Rundll32.exe啟動了多少個的DLL文件。當然,這些Rundll32.exe執行的DLL文件是什麼,我們都可以從系統自動載入的地方找到。
  現在,我來介紹一下Rundll32.exe這個文件,意思上邊已經說過,功能就是以指令行的方式使用動態連接程序庫。系統中還有一個Rundll.exe文件,他的意思是「執行16位的DLL文件」,這裡要注意一下。在來看看Rundll32.exe使用的函數原型:
  Void CALLBACK FunctionName (
  HWND hwnd,
  HINSTANCE hinst,
  LPTSTR lpCmdLine,
  Int nCmdShow
  );
  其指令行下的使用方法為:Rundll32.exe DLLname,Functionname [Arguments]
  DLLname為需要執行的DLL檔案名;Functionname為前邊需要執行的DLL文件的具體引出函數;[Arguments]為引出函數的具體參數。
  (2),取代系統中的DLL文件
  這類後門就比上邊的先進了一些,它把實現了後門功能的程式碼做成一個和系統匹配的DLL文件,並把原來的DLL文件改名。遇到應用程式請求原來的DLL文件時, DLL後門就啟一個轉發的作用,把「參數」傳送給原來的DLL文件;如果遇到特殊的請求時(比如客戶端),DLL後門就開始,啟動並執行了。對於這類後門,把所有操作都在DLL文件中實現最為安全,但需要的編程知識也非常多,也非常不容易編寫。所以,這類後門一般都是把DLL文件做成一個「啟動」文件,在遇到特殊的情況下(比如客戶端的請求),就啟動一個普通的EXE後門;在客戶端結束連接之後,把EXE後門停止,然後DLL文件進入「休息」狀態,在下次客戶端連接之前,都不會啟動。但隨著微軟的「數位簽名」和「文件恢復」的功能出台,這種後門已經逐步衰落。
  提示:
  在WINNTsystem32目錄下,有一個dllcache資料夾,裡邊存放著眾多DLL文件(也包括一些重要的EXE文件),在DLL文件被非法修改之後,系統就從這裡來恢復被修改的DLL文件。如果要修改某個DLL文件,首先應該把dllcache目錄下的同名DLL文件移除或更名,否則系統會自動恢復。
(3),動態嵌入式
  這才是DLL後門最常用的方法。其意義是將DLL文件嵌入到正在執行的系統工作當中。在Windows系統中,每個工作都有自己的私有記憶體空間,但還是有種種方法來進入其工作的私有記憶體空間,來實現動態嵌入式。由於系統的關鍵工作是不能終止的,所以這類後門非常隱蔽,查殺也非常困難。一般的動態嵌入式有:「掛接API」「全局引上鉤(HOOK)」「遠端執行緒」等。
  遠端執行緒技術指的是通過在一個工作中新增遠端執行緒的方法來進入那個工作的記憶體位址空間。當EXE媒體(或Rundll32.exe)在那個被插入的工作裡新增了遠端執行緒,並指令它執行某個DLL文件時,我們的DLL後門就掛上去執行了,這裡不會產生新的工作,要想讓DLL後門停止,只有讓這個連接DLL後門的工作終止。但如果和某些系統的關鍵工作連接,那就不能終止了,如果你終止了系統工作,那Windows也隨即被終止!!!
3,DLL後門的啟動特性
  啟動DLL後門的媒體EXE是不可缺少的,也是非常重要的,它被稱為:Loader。如果沒有Loader,那我們的DLL後門如何啟動呢?因此,一個好的DLL後門會盡力保護自己的Loader不被查殺。Loader的方式有很多,可以是為我們的DLL後門而專門編寫的一個EXE文件;也可以是系統原有的的Rundll32.exe,即使停止了Rundll32.exe,DLL後門的主體還是存在的。3721網路實名就是一個例子,雖然它並不是「真正」的後門。
二,DLL的清除
  本節以三款比較有名的DLL後門例,分別為「SvchostDLL.dll」「BITS.dll」「QoServer.dll」。詳細講解其手動式清除方法。希望大家在看過這三款DLL後門的清除方法之後,能夠舉一反三,靈活運用,在不懼怕DLL後門。其實,手動式清除DLL後門還是比較簡單的,無非就是在註冊表中做文章。具體怎麼做,請看下文。
1,PortLess BackDoor
  這是一款功能非常強大的DLL後門程序,除了可以獲得Local System權限的Shell之外,還支持如「檢測複製帳戶」「安裝終端服務」等一系列功能(具體可以參見程序說明 ),適用Windows2000/xp/2003等系統。程序使用svchost.exe來啟動,平常不開連接阜,可以進行反向連接(最大的特點哦),對於有防火牆的主機來說,這個功能在好不過了。
  在介紹清除方法之前,我們先來簡單的介紹一下svchost.exe這個系統的關鍵服務:
  Svchost只是做為服務的宿主,本身並不實現什麼功能,如果需要使用Svchost來啟動服務,則某個服務是以DLL形式實現的,該DLL的媒體Loader指向svchost,所以,在啟動服務的時候由svchost使用該服務的DLL來實現啟動的目的。使用svchost啟動某個服務的DLL文件是由註冊表中的參數來決定的,在需要啟動服務的下邊都有一個Parameters子鍵,其中的ServiceDll表明該服務由哪個DLL文件負責,並且這個DLL文件必須匯出一個ServiceMain()函數,為處理服務工作提供支持。
  哈哈!看了上邊的理論,是不是有點蒙(我都快睡著了),別著急,我們來看看具體的內容)。我們可以看到HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesRpcSs下的Parameters子鍵,其鍵值為%SystemRoot%system32rpcss.dll。這就說明:啟動RpcSs服務時。Svchost使用WINNTsystem32目錄下的rpcss.dll。
  這是註冊表的HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionSvchost,裡邊存放著Svchost啟動的組和組內的各個服務,其中netsvcs組的服務最多。要使用Svchost啟動某個服務,則該服務名就會出現在HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionSvchost下。這裡有四種方法來實現:
  1, 增加一個新的組,在組裡增加服務名
  2, 在現有組裡增加服務名
  3, 直接使用現有組裡的一個服務名,但是本地機沒有安裝的服務
  4, 修改現有組裡的現有服務,把它的ServiceDll指向自己的DLL後門
  我測試的PortLess BackDoor使用的第三種方法。
  好了,我想大家看完了上邊的原理,一定可以想到我們清除PortLess BackDoor的方法了,對,就是在註冊表的Svchost鍵下做文章。好,我們現在開始。
  註:由於本文只是介紹清除方法,使用方法在此略過。
  後門的Loader把SvchostDLL.dll插入Svchost工作當中,所以,我們先開啟Windows最佳化大師中的Windows工作管理2.5,檢視Svchost工作中的模組訊息,SvchostDLL.dll已經插入到Svchost工作中了,在根據「直接使用現有組裡的一個服務名,但是本地機沒有安裝的服務」的提示,我們可以斷定,在「系統管理工具」—「服務」中會有一項新的服務。證明了我的說法,此服務名稱為:IPRIP,由Svchost啟動,-k netsvcs表示此服務包含在netsvcs服務組中。
  我們把該服務停掉,然後開啟註冊表編輯器(開始—執行--regedit),來到HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesIPRIP下,檢視其Parameters子鍵)。Program鍵的鍵值SvcHostDLL.exe為後門的Loader;ServiceDll的鍵值C:WINNTsystem32svchostdll.dll為使用的DLL文件,這正是後門的DLL文件。現在我們移除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原理基本一樣,不過這裡使用的是上邊介紹的第四種方法,即「修改現有組裡的現有服務,把它的ServiceDll指向自己的DLL後門」。換句話說,該後門修改現有的某一個服務,把其原有服務的DLL指向自己(也就是BITS.dll),這樣就達到了自動載入的目的;其次,該後門沒有自己的Loader,而是使用系統原有的的Rundll32.exe來載入。我們還是用Windows 工作管理2.5來檢視,從圖7中,我們可以看到bits.dll已經插入到Svchost工作當中。
  好,現在我們來看看具體的清除方法,由於該後門是修改現有服務,而我們並不知道具體是修改了哪個服務,所以,在註冊表中搜尋bits.dll,最後在HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesRasAuto下搜尋到了bits.dll,檢視Parameters子鍵下的ServiceDll,其鍵值為C:WINNTsystem32bits.dll(如圖8)。原來,該後門把RasAuto服務原來的DLL文件取代為bits.dll了,這樣來實現自動載入。知道了原因就好辦了,現在我們把ServiceDll的鍵值修改為RasAuto服務原有的DLL文件,即%SystemRoot%System32rasauto.dll,結束,重啟。之後移除WINNTsystem32目錄下的bits.dll即可。
3,NOIR--QUEEN
  NOIR--QUEEN(守護者)是一個DLL後門&木馬程序,服務端以DLL文件的形式插入到系統的Lsass.exe工作裡,由於Lsass.exe是系統的關鍵工作,所以不能終止。在來介紹清除方法之前,我先介紹一下Lsass.exe工作:
  這是一個本機的安全使用權服務,並且它會為使用Winlogon服務的使用權用戶產生一個工作,如果使用權是成功的,Lsass就會產生用戶的進入令牌,令牌使用啟動初始 的Shell。其他的由用戶啟始化的工作會繼承這個令牌。
  從上邊的介紹我們就可以看出Lsass對系統的重要性,那具體怎麼清除呢?請看下文。
  後門在安裝成功後,會在服務中增加一個名為QoSserver的服務,並把QoSserver.dll後門文件插入到Lsass工作當中,使其可以隱藏工作並自動啟動(如圖9)。現在我們開啟註冊表,來到HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesQoSserver,直接移除QoSserver鍵,然後重啟。重啟動之後,我們在來到服務列表中,會看到QoSserver服務還在,但沒有啟動,類別是自動,我們把他修改為「已禁用」;然後往上看,會發現一個服務名為AppCPI的服務,其可執行程序指向QoSserver.exe(原因後邊我會說到),具體如圖11所顯示。我們再次開啟註冊表,來到HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesAppCPI,移除AppCPI鍵,重啟,再移除QoSserver,最後移除WINNTsystem32目錄下的後門文件。
  本人和這個後門「搏鬥」了3個多小時,重啟N次。原因在於即使移除了QoSserver服務,後門還是在執行,而且服務列表中的QoSserver服務又「死灰復燃」。後來才知道原因:在我移除了QoSserver服務並重啟動之後,插入到Lsass工作當中的QoSserver.dll文件又恢復了QoSserver服務,並且產生了另外一個服務,即AppCPI,所以我們必須在到註冊表中移除AppCPI服務才算是把該後門清除。由此可以看出,現在的後門的保護措施,真是一環扣環。
  注意:在移除QoSserver服務並重啟動之後,恢復的QoSserver的啟動類別要修改為「已禁用」,否則即便移除了AppCPI服務,QoSserver服務又執行了。
三,DLL的防範
  看了上邊的例子,我想大家對清除DLL後門的方法有了一定的瞭解,但在現實中,DLL後門並不會使用預設值的檔案名,所以你也就不能肯定是否中了DLL後門。對於DLL後門,system32目錄下是個好地方,大多數後門也是如此,所以這裡要非常注意。下面我來具體介紹一下怎麼發現DLL後門,希望對大家有所說明 。
  1,安裝好系統和所有的應用程式之後,制作備份system32目錄下的EXE和DLL文件:開啟CMD,來到WINNTsystem32目錄下,執行:dir *.exe>exe.txt & dir *.dll>dll.txt,這樣,就會把所有的EXE和DLL文件制作備份到exe.txt和dll.txt文件中;日後,如發現異常,可以使用相同的指令再次制作備份EXE和DLL文件(這裡我們假設是exe0.txt和dll0.txt),並使用:fc exe.txt exe0.txt>exedll.txt & fc dll.txt dll0.txt>exedll.txt,其意思為使用FC指令比較兩次的EXE文件和DLL文件,並將比較結果儲存到exedll.txt文件中。通過這種方法,我們就可以發現多出來的EXE和DLL文件,並通過文件大小,新增時間來判斷是否是DLL後門。
  2,使用記憶體/模組工具來檢視工作使用的DLL文件,比如Windows最佳化大師中的Windows 工作管理 2.5。這樣,可以發現工作到底使用了什麼DLL文件,在結合上邊用FC指令比較出來的結果,又能進一步來確定是否中了DLL後門。如果沒有最佳化大師,可以使用TaskList,這個小工具也可以顯示工作使用的DLL文件,而且還有來源碼,方便修改。
  3,普通後門連接需要開啟特定的連接阜,DLL後門也不例外,不管它怎麼隱藏,連接的時候都需要開啟連接阜。我們可以用netstat –an來檢視所有TCP/UDP連接阜的連接,以發現非法連接。大家平時要對自己開啟的連接阜心中有數,並對netstat –an中的state內容有所瞭解。當然,也可以使用Fport來顯示連接阜對應的工作,這樣,系統有什麼不明的連接和連接阜,都可以盡收眼底。
  4,定期檢查系統自動載入的地方,比如:註冊表,Winstart.bat,Autoexec.bat,win.ini,system.ini,wininit.ini,Autorun.inf,Config.sys等。其次是對服務進行管理,對系統預設值的服務要有所瞭解,在發現有問題的服務時,可以使用Windows 2000 Server Resource Kit中的SC來移除。以上這些地方都可以用來載入DLL後門的Loader,如果我們把DLL後門Loader移除了,試問?DLL後門還怎麼執行?!
  通過使用上邊的方法,我想大多數DLL後門都可以「現形」,如果我們平時多做一些制作備份,那對搜尋DLL後門會啟到事半功倍的效果。
  後記
  本文詳細的介紹了DLL後門的一些知識。其實,從上文中不難看出,DLL後門並沒有想像的這麼可怕,清除起來也比較簡單
__________________
http://bbsimg.qianlong.com/upload/01/08/29/68/1082968_1136014649812.gif
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
舊 2006-04-06, 10:04 PM   #2 (permalink)
長老會員
榮譽勳章
UID - 5880
在線等級: 級別:10 | 在線時長:156小時 | 升級還需:9小時級別:10 | 在線時長:156小時 | 升級還需:9小時級別:10 | 在線時長:156小時 | 升級還需:9小時級別:10 | 在線時長:156小時 | 升級還需:9小時級別:10 | 在線時長:156小時 | 升級還需:9小時
註冊日期: 2002-12-08
文章: 296
精華: 0
現金: 172 金幣
資產: 1255044 金幣
預設

好詳細的資料,瞭解一下,看如何 DEL DLL.
b16465 目前離線  
送花文章: 0, 收花文章: 4 篇, 收花: 4 次
舊 2006-08-05, 06:39 PM   #3 (permalink)
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

動態嵌入式DLL木馬發現與清除的方法

  隨著MS的操作系統從Win98過渡到Winnt系統(包括2k/xp),MS的任務管理器也一下子脫胎換骨,變得火眼金睛起來(在WINNT下傳統木馬再也無法隱藏自己的工作行程),這使得以前在win98下靠將工作行程註冊為系統服務就能夠從任務管理器中隱形的木馬面臨前所未有的危機,所以木馬的開發者及時調整了開發思路,所以才會有今天這篇討論如何清除動態嵌入式DLL木馬的文章。

  首先,我們來瞭解一下什麼是動態嵌入式木馬,為了在NT系統下能夠繼續隱藏工作行程,木馬的開發者們開始利用DLL(Dynamic Link Library動態鏈接庫)文件,起初他們只是將自己的木馬寫成DLL形式來替換系統中負責Win Socket1.x的函數呼叫wsock32.dll(Win Socket2中則由WS2_32.DLL負責),這樣通過對約定函數的操作和對未知函數的轉發(DLL木馬替換wsock32.dll時會將之更名,以便實現日後的函數轉發)來實現遠端控制的功能。但是隨著MS數位簽名技術和文件恢復功能的出台,這種DLL馬的生命力也日漸衰弱了,於是在開發者的努力下出現了時下的主流木馬--動態嵌入式DLL木馬,將DLL木馬嵌入到正在執行的系統工作行程中.explorer.exe、svchost.exe、smss.exe等無法結束的系統關鍵工作行程是DLL馬的最愛,這樣這樣在任務管理器裡就不會出現我們的DLL文件,而是我們DLL的載體EXE文件.當然通過進一步的加工DLL木馬還可以實現另外的一些如連接阜劫持/復用(也就是所謂的無連接阜)、註冊為系統服務、開多線程保護、等功能。簡而言之,就是DLL木馬達到了前所未有的隱蔽程度。

  那麼我們如何來發現並清除DLL木馬呢?

  一,從DLL木馬的DLL文件入手,我們知道system32是個捉迷藏的好地方,許多木馬都削尖了腦袋往那裡鑽,DLL馬也不例外,針對這一點我們可以在安裝好系統和必要的應用程式後,對該目錄下的EXE和DLL文件作一個記錄:執行CMD--轉換目錄到system32--dir *.exe>exeback.txt& dir *.dll>dllback.txt,這樣所有的EXE和DLL文件的名稱都被分別記錄到exeback.txt和dllback.txt中,日後如發現異常但用傳統的方法查不出問題時,則要考慮是不是系統中已經潛入DLL木馬了.這是我們用同樣的命令將system32下的EXE和DLL文件記錄到另外的exeback1.txt和dllback1.txt中,然後執行CMD--fc exeback.txt exeback1.txt>diff.txt & fc dllback.txt dllback1.txt>diff.txt.(用FC命令比較前後兩次的DLL和EXE文件,並將結果輸入到diff.txt中),這樣我們就能發現一些多出來的DLL和EXE文件,然後通過檢視創建時間、版本、是否經過壓縮等就能夠比較容易地判斷出是不是已經被DLL木馬光顧了。沒有是最好,如果有的話也不要直接DLL掉,我們可以先把它移到資源回收筒裡,若系統沒有異常反應再將之徹底刪除或者提交給殺毒軟件公司。
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
舊 2006-08-05, 06:41 PM   #4 (permalink)
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

二、上文也曾提到一些系統關鍵工作行程是這類木馬的最愛,所以一旦我們懷疑係統已經進駐了DLL木馬,我們當然要對這些關鍵工作行程重點照顧了,怎麼照顧?這裡推薦一個強大的脫殼工具工具Procedump.exe他可以幫您看出工作行程到底呼叫了那些DLL文件(如圖1)但是由於有的工作行程呼叫的DLL文件非常多,使得靠我們自己去一個核對變的不太現實,所以我們會用到一個shotgun寫的NT工作行程/記憶體模塊檢視器ps.exe,用命令ps.exe /a /m >nowdlls.txt將系統目前呼叫地所有DLL文件地名稱儲存到nowdlls.txt,然後我們再用fc將之於事先備份dllback.txt比較一下,這樣也能夠縮小排查範圍。

  三、還記得木馬的特徵之一連接阜麼?所有的木馬只要進行連接,只要它接受/發送資料則必然會打開連接阜,DLL木馬也不例外,這也為我們發現他們提供了一條線索,我們可以使用foundstone的工作行程連接阜檢視工具Fport.exe來檢視與連接阜對應的工作行程,這樣可以將範圍縮小到具體的工作行程,然後結合Procedump來查找DLL木馬就比較容易了.當然有如上文提到的有些木馬會通過連接阜劫持或者連接阜重用的方法來進行通信,139、80、1443、等常見連接阜則是木馬的最愛。因為即使即使用戶使用連接阜掃瞄軟件檢查自己的連接阜,發現的也是類似TCP UserIP:1026 ControllerIP:80ESTABLISHED 的情況,稍微疏忽一點,您就會以為是自己在瀏覽網頁(防火牆也會這麼認為的)。所以光看連接阜還不夠,我們要對連接阜通信進行監控,這就是第四點要說的。

  四、我們可以利用嗅探器來瞭解打開的連接阜到底在傳輸些什麼資料。通過將網卡設為混雜模式就可以接受所有的IP報文,嗅探程式可以從中選擇值得關注的部分進行分析,剩下的無非是按照RFC文檔對協議進行解碼。這樣就可以確定木馬使用的連接阜,結合Fport和Procedump我們就能夠查找到該DLL木馬了。至於嗅探器個人推薦使用IRIS,圖形界面比較容易上手。

  五、通常說道查殺木馬我們會習慣性地到註冊表碰碰運氣,以前可能還蠻有效的,但如果碰到註冊為系統服務的木馬(原理:在NT/2K/XP這些系統中,系統啟動時會載入指定的服務程式)這時候檢查:啟動組/註冊表/autoexec.bat/win.ini/sysytem.ini/wininit.ini/*.inf(例如autorun.inf)/config.sys等文件就發現不了絲毫的異樣,這時候我們就應該檢視一下系統服務了:右擊我的電腦--管理--服務和應用程式--服務,這時您會看到100多個服務,(MS也真是的,其中75%對個人用戶無用,可以禁止。),慢慢找吧,看誰不順眼就把它拎出來,當然如果您以前曾經用匯出列表功能對服務備份過,則用文件比較的方法會很容易發現哪些是外來客,這時您可以記錄下服務載入的是那個文件,然後用Resource Kits裡提供的srvinstw.exe來移除該服務並清除被載入的文件。

  通過以上五步,基本能發現並清除狡猾的動態嵌入式DLL木馬了,也許您也發現如果適當地做一些備份,會對我們的查找木馬的過程有很大的幫助,當然也會減輕不少工作的壓力哦。
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
 



發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 10:16 AM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1