Download presentation
Presentation is loading. Please wait.
1
網路安全管理 期中報告 -DLL後門 - A 黃志成 指導教授 梁明章
2
前言 由於人們的安全意識逐漸增強,防毒軟體普及,使的傳統的後門程式無法在隱藏自己,稍有電腦知識的人都會去查看port或工作行程。
因此,後門編寫者把目光放到dll動態鏈結程式庫上,把後門做成dll檔,然後由一個exe載體或使用Rundll32.exe來啟動,這樣就不會有工作行程,也不會開起port,也就實現了工作行程及port的隱藏。
3
DLL的原理(1) 動態鏈結程式庫 動態鏈結程式庫,全稱:Dynamic Link Library,簡稱:DLL
作用在於為應用程式提供擴展功能,所執掌的功能,大多屬於各種程式所常見的功能 。 DLL檔本身並不可以運行,需要應用程式調用。 由於DLL檔運行時必須插入到應用程式的記憶體模組當中,這就說明了:DLL檔無法刪除。這是由於Windows內部機制造成的:正在運行的程式不能關閉。
4
DLL的原理(2) DLL後門原理及特點 把一個實作後門功能的程式碼寫成一個DLL檔,然後插入到一個EXE檔當中,使其可以執行,這樣就不需要佔用工作行程,就可以在任務管理器中隱藏。 DLL檔本身和EXE檔相差不大,但必須使用程式(EXE)調用才能執行DLL檔。DLL檔的執行,需要EXE檔載入。 做DLL後門基本分為兩種: 1)把所有功能都在DLL檔中實現。 2)把DLL做成一個啟動檔,在需要的時候啟動一 個普通的EXE後門。
5
常見的編寫方法 (1) 只有一個DLL檔 把自己做成一個DLL檔,在註冊表Run鍵值或其他可以被系統自動載入的地方,使用Rundll32.exe來自動啟動。 Rundll32.exe是“執行32位的DLL檔”。它的作用是執行DLL檔中的內部函數,這樣在進程當中,只會有Rundll32.exe,而不會有DLL後門的工作行程。 系統中有多個Rundll32.exe代表Rundll32.exe啟動了多少個的DLL檔。
6
常見的編寫方法 (2) 替換系統中的DLL檔 這類後門做成一個和系統一樣的DLL檔,並把原來的DLL文件改名。遇到應用程式請求原來的DLL檔時, DLL後門就啟一個轉換的作用,把“參數”傳遞給原來的DLL檔;如果遇到特殊的請求時(比如用戶端),DLL後門就開始,啟動並運行了。 對於這類後門,把所有操作都在DLL檔中實現最為安全,但需要的編程知識也非常多,也非常不容易編寫。所以,這類後門一般都是把DLL檔做成一個"啟動"檔,在遇到特殊的情況下(比如用戶端的請求),就啟動一個普通的EXE後門;在用戶端結束連接之後,把EXE後門停止,然後DLL檔進入"休息"狀態,在下次用戶端連接之前,都不會啟動。
7
常見的編寫方法(3) 動態嵌入式 將DLL檔嵌入到正在運行的系統行程當中。在Windows系統中,每個行程都有自己的私有記憶體空間,但還是有種種方法來進入其行程的私有記憶體空間,來實現動態嵌入式。 遠端多執行緒技術指的是通過在一個工作行程中創建遠端線多執行緒的方法來進入那個工作行程的記憶體位址空間。當EXE載體(或Rundll32.exe)在那個被插入的多執行緒裏創建了遠端行程,並命令它執行某個DLL檔時,DLL後門就掛上去執行了。
8
DLL後門的啟動特性 啟動DLL後門的載體EXE是不可缺少的,也是非常重要的,它被稱為:Loader。
好的DLL後門會盡力保護自己的Loader不被查殺。 Loader的方式有很多,可以是為我們的DLL後門而專門編寫的一個EXE檔;也可以是系統自帶Rundll32.exe,即使停止了Rundll32.exe,DLL後門的主體還是存在的。
9
較有名的DLL後門 - 使用svchost.exe來啟動 - 服務端以DLL檔的形式插入到系統的Lsass.exe行程裡
PortLess BackDoor - 使用svchost.exe來啟動 -平常不開連接阜,可以進行反向連接 BITS.dll -修改現有組裏的現有服務,把它的ServiceDll指向自己的DLL後門 NOIR--QUEEN - 服務端以DLL檔的形式插入到系統的Lsass.exe行程裡
10
DLL的防範 (1) 備份system32目錄下的EXE和DLL檔 使用記憶體/模組工具來查看行程調用的DLL檔 - TaskList
11
DLL的防範 (2) 查看連接阜 - netstat 定期檢查系統自動載入的地方
- 使用Windows 2000 Server Resource Kit中的SC 來刪除
Similar presentations