廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 5276 個閱讀者
 
發表文章 發表投票 回覆文章
  可列印版   加為IE收藏   收藏主題   上一主題 | 下一主題   
skinheadon
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x6
分享: 轉寄此文章 Facebook Plurk Twitter 版主評分 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
推文 x0
[心得分享] 惱人的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檔進入"休息"狀態,在下次用戶端連接之前,都不會啟動。但隨著微軟的"數字簽名"和"檔恢復"的功能出臺,這種後門已經逐步衰落。

提示:
  在WINNT/system32目錄下,有一個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()函數,為處理服務任務提供支援。

  呵呵!看了上邊的理論,是不是有點蒙(我都快睡著了),別著急,我們來看看具體的內容(如圖1)。從圖1中,我們可以看到HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/RpcSs下的Parameters子鍵,其鍵值為%SystemRoot%/system32/rpcss.dll。這就說明:啟動RpcSs服務時。Svchost調用WINNT/system32目錄下的rpcss.dll。

在來看看圖2,這是註冊表的HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Svchost,裏邊存放著Svchost啟動的組和組內的各個服務,其中netsvcs組的服務最多。要使用Svchost啟動某個服務,則該服務名就會出現在HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Svchost下。這裏有四種方法來實現:
1, 添加一個新的組,在組裏添加服務名
2, 在現有組裏添加服務名
3, 直接使用現有組裏的一個服務名,但是本機沒有安裝的服務
4, 修改現有組裏的現有服務,把它的ServiceDll指向自己的DLL後門

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

注:由於本文只是介紹清除方法,使用方法在此略過。

  後門的Loader把SvchostDLL.dll插入Svchost進程當中,所以,我們先打開Windows優化大師中的Windows進程管理2.5,查看Svchost進程中的模組資訊(如圖3),從圖3中我們可以看到,SvchostDLL.dll已經插入到Svchost進程中了,在根據"直接使用現有組裏的一個服務名,但是本機沒有安裝的服務"的提示,我們可以斷定,在"管理工具"—"服務"中會有一項新的服務。圖4證明了我的說法,此服務名稱為:IPRIP,由Svchost啟動,-k netsvcs表示此服務包含在netsvcs服務組中。

  我們把該服務停掉,然後打開註冊表編輯器(開始—運行--regedit),來到HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/IPRIP下,查看其Parameters子鍵(如圖5)。Program鍵的鍵值SvcHostDLL.exe為後門的Loader;ServiceDll的鍵值C:/WINNT/system32/svchostdll.dll為調用的DLL文件,這正是後門的DLL文件。現在我們刪除IPRIP子鍵(或者用SC來刪除),然後在來到HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Svchost下,編輯netsvcs服務組,把49 00 70 00 72 00 69 00 70 00 00 00刪除,這裏對應的就是IPRIP的服務名,具體如圖6所示。然後退出,重啟。重啟之後刪除WINNT/system32目錄下的後門檔即可。

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_MACHINE/SYSTEM/CurrentControlSet/Services/RasAuto下搜索到了bits.dll,查看Parameters子鍵下的ServiceDll,其鍵值為C:/WINNT/system32/bits.dll(如圖8)。原來,該後門把RasAuto服務原來的DLL檔替換為bits.dll了,這樣來實現自動載入。知道了原因就好辦了,現在我們把ServiceDll的鍵值修改為RasAuto服務原有的DLL檔,即%SystemRoot%/System32/rasauto.dll,退出,重啟。之後刪除WINNT/system32目錄下的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_MACHINE/SYSTEM/CurrentControlSet/Services/QoSserver,直接刪除QoSserver鍵,然後重啟。重啟之後,我們在來到服務列表中,會看到QoSserver服務還在,但沒有啟動,類別是自動,我們把他修改為"已禁用";然後往上看,會發現一個服務名為AppCPI的服務,其可執行程式指向QoSserver.exe(原因後邊我會說到),具體如圖11所示。我們再次打開註冊表,來到HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/AppCPI,刪除AppCPI鍵,重啟,再刪除QoSserver,最後刪除WINNT/system32目錄下的後門檔。

  本人和這個後門"搏鬥"了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,來到WINNT/system32目錄下,執行: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檔,比托韃?250ows優化大師中的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後門會啟到事半功倍的效果


[ 此文章被upside在2006-10-17 16:18重新編輯 ]

此文章被評分,最近評分記錄
財富:50 (by upside) | 理由: 感謝您的參與 讓本板區能更加豐富 若能增加出處連結 再加圖片解說 就會更加完整了



獻花 x1 回到頂端 [樓 主] From:台灣 和信超媒體寬帶網 | Posted:2006-10-17 11:36 |
lens690 手機
個人頭像
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x1 鮮花 x51
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

請問,PortLess BackDoor 的圖一及圖二在哪?

另外,在(2),替換系統中的DLL檔提到,若要修改DLL,必需先將system32\dllcache中的修改掉,
那之前我在碰上這類的DLL時,我是使用別台電腦去替換這顆硬碟中的這個檔案,這樣子,還需要對dllcache中的檔案做置換嗎?



確保電腦安全,勿點選不明檔案或網址
獻花 x0 回到頂端 [1 樓] From:局域網對方和您在同一內部網 | Posted:2006-10-17 12:34 |
netgrand
數位造型
個人文章 個人相簿 個人日記 個人地圖
路人甲
級別: 路人甲 該用戶目前不上站
推文 x0 鮮花 x2
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

確實解說的非常詳細,希望真的可以解決我的問題。謝謝!


獻花 x0 回到頂端 [2 樓] From:台灣數位聯合 | Posted:2006-10-17 12:37 |
cjwu
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x0 鮮花 x68
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

這一篇文章,我好像曾經在一個大陸的網站看過,
當然也是如大大所貼的,
並沒有看到什麼圖1 或圖2 或圖3 等等的,
而且除了了解如何清除後門,
我會比較想要了解如何自已製做一個dll檔。


==================================
好站推薦 [url] http://vions.net/?fromuid=43941[/url]

^_^
獻花 x0 回到頂端 [3 樓] From:台灣台灣固網 | Posted:2006-10-17 15:17 |
upside 手機 葫蘆墩家族
個人頭像
個人文章 個人相簿 個人日記 個人地圖
特殊貢獻獎 社區建設獎 優秀管理員勳章
頭銜:反病毒 反詐騙 反虐犬   反病毒 反詐騙 反虐犬  
版主
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

後門!相信這個詞語對您來說一定不會陌生,它的危害不然而欲,但隨著人們的安全意識逐步增強,又加上殺毒軟體的"大力支持",使傳統的後門無法在隱藏自己,任何稍微有點電腦知識的人,都知道"查埠""看進程",以便發現一些"蛛絲馬跡"。所以,後門的編寫者及時調整了思路,把目光放到了動態鏈結程式庫上,也就是說,把後門做成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檔進入"休息"狀態,在下次用戶端連接之前,都不會啟動。但隨著微軟的"數位簽名"和"檔恢復"的功能出臺,這種後門已經逐步衰落。

系統保護只用兩三招 病毒木馬不上門
網友世界 【轉載】 作者:胖貓

同在一個宿舍中,共用同一條寬帶,木瓜的電腦總是感染一些木馬病毒或是流氓軟體,而我的電腦上卻是“一塵不染”。這樣在木瓜每次氣急敗壞的重裝系統時,就會說我沒義氣。聽到兄弟這麼說,我還真是感覺有些冤枉,其實保護系統的方法不過就這兩三招,還是統統都傳授給他吧!
一、赤手空拳防木馬
  木瓜的Windows XP系統可稱得上是一個“毒窩”了,不僅有木馬程式“潛伏”,各類惡意插件也在其中死纏爛打。而造成這種情況的主要原因就是給予了登錄帳戶和上網者過多的使用權限,使木馬和插件能夠堂而皇之的出入系統。所以,要想有效的加強系統安全,就要在帳戶許可權上加以限制。
  步驟一:建立受限帳戶
  打開“運行”對話方塊,在其中輸入命令“net user xiaoyao 123456 /add”,回車執行後,即可在系統中添加一個名為“xiaoyao”的新帳戶,密碼為“123456”。
  用“net user”命令添加的新帳戶,其默認許可權為“USERS組”,所以只能運行許可的程式,而不能隨意添加刪除程式和修改系統設置,這樣便可避免大部分的木馬程式和惡意網頁的破壞。
  步驟二:金蠶脫殼 加固IE
  惡意網頁是系統感染木馬病毒及流氓插件的最主要途徑,因此很有必要對IE作一些保護設置。
  1.建殼
  刪除桌面上的IE圖示,打開“C:\Program Files\Internet Explorer”文件夾,右鍵點擊“Iexplore.exe”程式,選擇“發送到”→“桌面快捷方式”命令,在桌面上創建一個新的IE快捷圖示。接著回到桌面,右鍵點擊新建的IE圖示,選擇“屬性”命令,在彈出視窗中,切換到“快捷方式”選項卡,點擊“高級”按鈕,勾選“以其他用戶身份運行”選項(如圖1),確定後關閉對話方塊。


圖1

  2.脫殼
  現在以管理員帳戶或其他非“xiaoyao”帳戶登錄Windows XP系統後,雙擊桌面上的IE快捷方式時,就會彈出一個運行身份對話方塊,在其中輸入之前新建的帳戶名“xiaoyao”及密碼,確定後便可進行正常上網操作(如圖2)。


圖2

接下來,我們試試IE是否還能受到惡意插件的騷擾。進入“baidu.com...”,點擊百度頁面中的“把百度設為首頁”按鈕,修改IE的主頁。然後點擊頁面中的“更多”→“搜霸”鏈結,下載“百度搜霸”。當下載完畢後,該插件將自動運行安裝程式,此時會看到它彈出了一個身份認證對話方塊,默認是以“xiaoyao”身份進行安裝的(如圖3)。


圖3

  在安裝完成後,以“xiaoyao”帳戶身份再次運行IE時,將會發現首頁已變成了百度。以非“xiaoyao”帳戶運行IE時,可看到IE首頁沒有任何改變。而之前安裝的百度搜霸,則無論以什麼帳戶運行IE,都不會見到它的蹤影!
  此時我們是以“xiaoyao”這個USERS組的帳戶,來進行上網操作的。由於“xiaoyao”帳戶在當前並未登陸,所以百度搜霸根本無法安裝並載入到IE中,網頁也僅能對“xiaoyao”帳戶的IE首頁進行修改。也就是說,以“xiaoyao”帳戶身份運行IE後,流覽到的惡意網頁只能對“xiaoyao”帳戶的IE設置進行修改,而惡意網頁中的流氓軟體或木馬間諜運行後,根本就無法對當前帳戶和系統產生任何影響。

  3.換殼
  如果“xiaoyao”帳戶的IE設置被更改或破壞,那麼可在“運行”對話方塊中執行“net user xiaoyao /delete”命令,來刪除“xiaoyao”帳號。之後,再次執行創建帳戶命令,新建一個名為“xiaoyao”的帳戶,即可使IE“完好如初”。
  步驟三:加固系統
  通過網頁流覽感染系統,只是木馬病毒和流氓插件的一種途徑。如果不小心以當前帳戶身份運行了木馬病毒程式,系統還是會被破壞。只是這類破壞“跡象”都較明顯,不像惡意網頁在後臺進行“暗箱操作”,因此我們可提前阻止它們。
  1.禁止程式啟動
  很多木馬病毒都是通過註冊表載入啟動的,因此可通過許可權設置,禁止病毒和木馬對註冊表的啟動項進行修改。
  啟動註冊表編輯器,依次展開“HKEY_LOCAL_MACHINE\Software\ Microsoft\Windows\CurrentVersion\Run”分支,在“Run”分支上點擊右鍵,選擇“許可權”命令,將當前帳戶對該分支的“讀取”許可權設置為“允許”,並取消對“完全控制”許可權的選擇(如圖4)。使用同樣方法設置以下註冊表啟動鍵的許可權:
HKEY_LOCAL_MACHINE\Software\ Microsoft\Windows\CurrentVersion\RunOnce
HKEY_LOCAL_MACHINE\Software\ Microsoft\Windows\CurrentVersion\RunEx
HKEY_LOCAL_MACHINE\Software\ Microsoft\Windows\CurrentVersion\Policies\ Explorer\Run
HKEY_LOCAL_MACHINE\Software\ Microsoft\Windows\CurrentVersion\RunServices
在“HKEY_CURRENT_USER”下,也有相同的多個註冊表啟動項需要設置許可權。


圖4

2.禁止服務啟動
  一些高級的木馬病毒會通過系統服務進行載入,對此可禁止木馬病毒啟動服務的許可權。
  可依次展開“HKEY_LOCAL_ MACHINE\SYSTEM\CurrentControlSet\ Services”分支,將當前帳戶的“讀取”許可權設置為“允許”,同時取消其“完全控制”許可權。
  3.系統安全設置
  最厲害的木馬病毒會採用DLL注入方式,或者搶先系統啟動運行,對此可在註冊表中限制其啟動許可權。
  設置的方法同上,需設置許可權的註冊表項有以下分支:
HKEY_LOCAL_MACHINE\Software\Microsoft \Windows NT\CurrentVersion\Winlogon\UserInit
HKEY_LOCAL_MACHINE\Software\Microsoft \Windows NT\CurrentVersion\Winlogon\Shell
HKEY_LOCAL_MACHINE\Software\Microsoft \Windows NT\CurrentVersion\Winlogon\GinaDll
HKEY_LOCAL_MACHINE\Software\Microsoft \Windows NT\CurrentVersion\Winlogon\System
HKEY_CURRENT_USER\Software\ Microsoft\Windows\CurrentVersion\Policies\

  4.保護檔關聯
  有些狡猾的木馬,還會通過更改系統檔關聯,達到啟動運行目的。對此可展開“HKEY_CLASSES_ ROOT”分支,將其下的“.exe”、.“com”、“.cmd”、“.BAT”、“.VBS”等項目設置許可權,操作方法同上。
  使用設置了註冊表許可權的帳戶登錄系統後,是無法安裝軟體或進行重要系統更改設置的。如要安裝軟體,可更換為管理員帳戶登錄系統,並進行正常的安裝操作。
二、另類“還原精靈”保系統

  對於木瓜這種超級懶惰的人來說,使用手動設置來保護系統顯得太過繁瑣了,所以最好還是給他一款軟體來達到自動保護系統的目的。而他提出使用“還原精靈”之類的軟體,真是太耗費系統資源了,搞不好還會把硬碟鎖死了,這裏我有更高級的“秘密武器”。

1.IE從此無憂’
  安裝這款名為“Sandboxie”的軟體後,它會隨系統自動運行,利用軟體的沙盤功能,即可保護系統不受任何病毒和插件的侵襲。
  右鍵點擊桌面上的IE圖示,在彈出功能表中選擇“Run Sandboxed”命令,即可以沙盤保護方式運行IE(如圖5)。此時流覽任意惡意帶毒的網站,系統都會經過“沙盤”的過濾保護,保證自身不會受到任何影響。即使木馬病毒程式已下載到硬碟中,也會隨著Sandboxie的關閉而自動消失。


圖5

  如果要保存通過“沙盤”下載的檔,可右鍵點擊系統託盤區的沙盤圖示,在彈出功能表中選擇“從沙盤恢復檔”命令。在打開的對話方塊中,選擇沙盤中暫存的檔,點擊“恢復到同一檔夾”按鈕,即可將檔保存到硬碟中了(如圖6)。


圖6

  2.告別木馬病毒
  下載了好多軟體要安裝,但不能確定其中是否夾帶著流氓插件或木馬,這時可使用右鍵點擊程式檔,通過“Run Sandboxed”命令運行安裝,此時程式對系統所作的修改都會被沙盤攔截保護,在關閉沙盤後安裝的木馬病毒也將隨之消失。
  如果在沙盤中安裝運行後,確認程式是安全的,那麼就可再次以正常方式安裝運行程式了。

三、程式許可權輕鬆設
  雖然限制用戶許可權保護系統安全的方法很好用,但對於木瓜這種經常安裝卸載軟體的用戶來說,不時彈出的“許可權不夠”提示便顯得太過“煩人”了,這裏就在給出一個兩全其美的方法。
  安裝名為“DropMyRights”的軟體,用這個軟體啟動其他程式,這樣啟動的程式就只具有基本的許可權,無法對系統產生破壞了。方法很簡單,以IE為例。
  右鍵點擊桌面IE快捷圖示,選擇“屬性”→“快捷方式”,在“目標”位置中輸入如下命令(如圖7):
"C:\程式安裝目錄\DropMy Rights.exe" "C:\Program Files\Internet Explorer\Iexplore.exe" N
程式後面的參數“N”,代表以普通用戶許可權運行程式。確定後關閉對話方塊,雙擊該快捷方式就能以指定的身份啟動IE流覽器,以後流覽到惡意網頁也不用擔心系統會遭到破壞了,所達到的效果與前面提到的“金蠶脫殼”法差不多(如圖8)。


圖7


圖8


爸爸 你一路好走
獻花 x0 回到頂端 [4 樓] From:台灣 和信超媒體寬帶網 | Posted:2006-10-17 16:13 |

首頁  發表文章 發表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.079059 second(s),query:16 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言