WindowsNT2000系統(tǒng)下進程的隱藏_第1頁
WindowsNT2000系統(tǒng)下進程的隱藏_第2頁
WindowsNT2000系統(tǒng)下進程的隱藏_第3頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、木馬程序(也稱后門程序)是能被控制的運行在遠程主機上的程序,由于木馬 程序是運行在遠程主機上,所以進程的隱藏無疑是大家關心的焦點。本文分析了 WindowsNT/2000系統(tǒng)下進程隱藏的基本技術和方法,并著重討 論運用線程嫁接技術如何實現(xiàn) WindowsNT/2000系統(tǒng)中進程的隱藏。1基本原理在WIN95/98中,只需要將進程注冊為系統(tǒng)服務就能夠從進程查看器中隱形, 可是這一切在 WindowsNT/2000中去完全不同,無論木馬從端口、啟動文件上如 何巧妙地隱藏自己,始終都不能躲過 WindowsNT/2000的任務管理器, WindowsNT/2000的任務管理器均能輕松顯示出木馬進程,

2、難道在 WindowsNT/2000下木馬真的再也無法隱藏自己的進程了 ?我們知道,在 WINDOWS系統(tǒng)下,可執(zhí)行文件主要是Exe和Com文件,這兩種文件在運行時都 有一個共同點,會生成一個獨立的進程,尋找特定進程是我們發(fā)現(xiàn)木馬的方法之 一,隨著入侵檢測軟件的不斷發(fā)展,關聯(lián)進程和SOCKEE經(jīng)成為流行的技術,假設一個木馬在運行時被檢測軟件同時查出端口和進程,我們基本上認為這個木馬的隱藏已經(jīng)完全失敗。在WindowsNT/2000下正常情況用戶進程對于系統(tǒng)管理 員來說都是可見的,要想做到木馬的進程隱藏,有兩個辦法,第一是讓系統(tǒng)管理 員看不見你的進程;第二是不使用進程。本文以第二種方法為例加以討

3、論,其基 本原理是將自已的木馬以線程方式嫁接于遠程進程之中,遠程進程則是合法的用戶程序,這樣用戶管理者看到的只是合法進程,而無法發(fā)現(xiàn)木馬線程的存在,從而達到隱藏的目的。2實現(xiàn)方法為了弄清實現(xiàn)方法,我們必須首先了解 Windows系統(tǒng)的另一種“可執(zhí)行文件 -DLL DLL是 DynamicLinkLibrary劭態(tài)鏈接庫)的縮寫,DLL文件是 Windows 的 基礎,因為所有的API函數(shù)都是在DLL中實現(xiàn)的。DLL文件沒有程序邏輯,是由多個功能函數(shù)構成,它并不能獨立運行,一般都是由進程加載并調用的。因為 DLL文件不能獨立運行,所以在進程列表中并不會出現(xiàn)DLL假設我們編寫了一個木馬DLL并且通

4、過別的進程來運行它,那么無論是入侵檢測軟件還是進程列 表中,都只會出現(xiàn)那個進程而并不會出現(xiàn)木馬DLL,如果那個進程是可信進程,(例如瀏覽器程序IEXPLORE.EX救人會懷疑它是木馬吧?)那么我們編寫的DLL作 為那個進程的一部分,也將成為被信賴的一員,也就達到了隱藏的目的。運行DLL方法有多種,但其中最隱蔽的方法是采用動態(tài)嵌入技術,動態(tài)嵌入技術指的是將自己的代碼嵌入正在運行的進程中的技術。理論上來說,在 Windows中的每個進程都有自己的私有內存空間,別的進程是不允許對這個私有 空間進行操作的,但是實際上,我們仍然可以利用種種方法進入并操作進程的私 有內存。動態(tài)嵌入技術有多種如:窗口 Ho

5、ok、掛接APk遠程線程等,這里介紹 一下遠程線程技術,它只要有基本的進線程和動態(tài)鏈接庫的知識就可以很輕松地 完成動態(tài)嵌入。遠程線程技術指的是通過在另一個進程中創(chuàng)建遠程線程的方法進入那個進 程的內存地址空間。我們知道,在進程中,可以通過CreateThread函數(shù)創(chuàng)建線程, 被創(chuàng)建的新線程與主線程(就是進程啟動時被同時自動建立的那個線程)共享地址 空間以及其他的資源。但是很少有人知道,通過CreateRemoteThread也同樣可以在另一個進程內創(chuàng)建新線程,被創(chuàng)建的遠程線程同樣可以共享遠程進程(是遠程進程)的地址空間,所以,實際上,我們通過一個遠程線程,進入了遠程進程 的內存地址空間,也就擁

6、有了那個遠程進程相當?shù)臋嘞蕖?實施步驟1)用Process32Next(兩數(shù)找到宿主進程,獲取宿主進程ID,并用OpenProcess(1S數(shù)打開宿主進程。2)用VirtualAllocEx()函數(shù)分配遠程進程地址空間中的內存3)用WhteProcessMemory()函數(shù)將待隱藏的DLL的路徑名。4)拷貝到步驟二已經(jīng)分配的內存中。5)用 GetProcAddress(1S數(shù)獲取 LoadlibraryA()函數(shù)的實地址(在 kernel32.dll 中)。6)用CreateRemoteThread(由數(shù)在遠程進程中創(chuàng)建一個線程。7)它調用正確的LoadlibraryA()函數(shù)。8)為它傳遞步驟二中分配的內存地址。4結束語進程隱藏技術和方法有很多,而且這一

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論