九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

逆向工程實驗報告

上傳人:jun****875 文檔編號:17760893 上傳時間:2020-12-05 格式:DOC 頁數(shù):11 大小:137.41KB
收藏 版權(quán)申訴 舉報 下載
逆向工程實驗報告_第1頁
第1頁 / 共11頁
逆向工程實驗報告_第2頁
第2頁 / 共11頁
逆向工程實驗報告_第3頁
第3頁 / 共11頁

下載文檔到電腦,查找使用更方便

9.9 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《逆向工程實驗報告》由會員分享,可在線閱讀,更多相關(guān)《逆向工程實驗報告(11頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、電子科技大學(xué)信息與軟件工程學(xué)院逆向工程實驗報告姓 名:XXX學(xué) 號:201852090710指導(dǎo)教師:何興高一、題目基于MBR的Bootkit的逆向分析二、題目梗概 利用逆向工程技術(shù),從可運(yùn)行的程序系統(tǒng)出發(fā),運(yùn)用解密、反匯編、系統(tǒng)分析、程序理解等多種計算機(jī)技術(shù),對軟件的結(jié)構(gòu)、流程、算法、代碼等進(jìn)行逆向拆解和分析,推導(dǎo)出軟件產(chǎn)品的源代碼、設(shè)計原理、結(jié)構(gòu)、算法、處理過程、運(yùn)行方法及相關(guān)文檔等。隨著用戶需求的復(fù)雜度越來越高,軟件開發(fā)難度不斷上升,快速高效地軟件開發(fā)已成為項目成敗的關(guān)鍵之一。 Bootkit是一種比較舊的技術(shù),這個概念最早是在2005年由eEye Digital安全公司在他們的“Boo

2、tRoot項目中提及的。Rootkit是一種特殊的惡意軟件,它的功能是在安裝目標(biāo)上隱藏自身及指定的文件、進(jìn)程和網(wǎng)絡(luò)鏈接等信息,比較多見到的是Rootkit一般都和木馬、后門等其他惡意程序結(jié)合使用。Rootkit通過加載特殊的驅(qū)動,修改系統(tǒng)內(nèi)核,進(jìn)而達(dá)到隱藏信息的目的。rootkit并不一定是用作獲得系統(tǒng)root訪問權(quán)限的工具。實際上,rootkit是攻擊者用來隱藏自己的蹤跡和保留root訪問權(quán)限的工具。通常,攻擊者通過遠(yuǎn)程攻擊獲得root訪問權(quán)限,或者首先密碼猜測或者密碼強(qiáng)制破譯的方式獲得系統(tǒng)的訪問權(quán)限。進(jìn)入系統(tǒng)后,如果他還沒有獲得root權(quán)限,再通過某些安全漏洞獲得系統(tǒng)的root權(quán)限。接著,

3、攻擊者會在侵入的主機(jī)中安裝rootkit,然后他將經(jīng)常通過rootkit的后門檢查系統(tǒng)是否有其他的用戶登錄,如果只有自己,攻擊者就開始著手清理日志中的有關(guān)信息。通過rootkit的嗅探器獲得其它系統(tǒng)的用戶和密碼之后,攻擊者就會利用這些信息侵入其它的系統(tǒng)。所有在開機(jī)時比Windows內(nèi)核更早加載,實現(xiàn)內(nèi)核劫持的技術(shù),都可以稱之為Bootkit。Bootkit主要是利用其內(nèi)核準(zhǔn)入和開機(jī)過程的隱身技術(shù),在功能上無異于Rootkit。傳統(tǒng)的Rootkit利用系統(tǒng)啟動時提升權(quán)限,而Bootkit主要被安置在外設(shè)的主引導(dǎo)扇區(qū)(也有放于Ntldr文件、BIOS中的Bootkit)并駐留在整個系統(tǒng)的啟動過程。

4、Bootkit屬于Rootkit的一種,但它卻是更加高級的Rootkit,因為其存放于主引導(dǎo)扇區(qū)、啟動文件之類地方,在操作系統(tǒng)啟動之前駐留內(nèi)存并內(nèi)核運(yùn)行之前劫持內(nèi)核。 MBR即主引導(dǎo)扇區(qū)(Master Boot Record)是裝有Linux系統(tǒng)的硬盤的第一個扇區(qū),即C/H/S地址的0柱面0磁頭1扇區(qū)。這個扇區(qū)是系統(tǒng)開啟時必須訪問的扇區(qū),記錄本磁盤相關(guān)信息以及硬盤各個分區(qū)的大小和信息。 本實驗旨在對基于MBR的BootKit的啟動模塊代碼,也就是感染MBR后第1、第61、62扇區(qū)的模塊進(jìn)行逆向分析。三、涉及知識點在本項目中,逆向涉及到的知識點有以下幾個,分別是:l 保護(hù)模式下的匯編語言l 實模

5、式下的匯編語言l BIOS中斷服務(wù)l 多級HOOK技術(shù)l 計算機(jī)系統(tǒng)內(nèi)核原理l NTLDR(系統(tǒng)加載程序,用于裝載Windows xp 2003等版本)四、涉及工具在本項目中,涉及到的工具有以下幾個,分別是:l IDA(主要靜態(tài)分析Bootkit)、l Windbgl Bochs(主要是用于動態(tài)調(diào)試這個Bootkit)l Winhex工具五、源程序見附件六、過程及分析 首先介紹一下這個樣本黑盒后的癥狀:感染MBR(感染的具體形式為:真正的MBR被挪到了第63個扇區(qū),Bootkit啟動模塊的代碼在第1、61、62個扇區(qū)。)直接在硬盤上寫入了一個驅(qū)動(這種寫入不是普通的在磁盤上釋放一個文件,在系統(tǒng)

6、的文件系統(tǒng)里面是看不見這個驅(qū)動的,在實驗的虛擬機(jī)上是寫入了未分區(qū)的空間中,通過Winhex工具可以查看到);生成一個DLL并運(yùn)行然后10分鐘后自動關(guān)機(jī)。第1、61、62個扇區(qū)的代碼中,第1個扇區(qū)的代碼是實模式下的匯編語言,第61、62個扇區(qū)是保護(hù)模式下的匯編語言,所以在用IDA分析的時候要進(jìn)行選擇,至于這三個扇區(qū)的代碼直接用Winhex截取出來然后進(jìn)行逆向分析。 這個Bootkit的啟動代碼主要用了三級HOOK,分別為HOOK INT13h、HOOK NTLDR的特征碼,HOOK內(nèi)核的特征碼。下面將主要分析這三級HOOK的行為。1、第一級HOOK(HOOK INT13h)seg000:7C35

7、 HOOK_INT13H:seg000:7C35 xor bx, bxseg000:7C37 mov eax, bx+4Chseg000:7C3B mov es:73h, eaxseg000:7C40 mov word ptr bx+4Ch, 66h ; fseg000:7C45 mov word ptr bx+4Eh, esseg000:7C48 push esseg000:7C49 push 4Dh ; Mseg000:7C4C retf上面的代碼實現(xiàn)了HOOK INT13h ,即HOOK了BIOS的磁盤中斷服務(wù)。下面為HOOK INT13h后的主要代碼,其中主要是搜索了NTLDR文件的特

8、征碼,特征碼為:SignatureCode is : 8B F0 mov esi,eax 85 F6 test esi,esi 74 21 jz $+23h 80.這段代碼運(yùn)行后內(nèi)核和BootDriver已經(jīng)加載到內(nèi)存中,當(dāng)找到這段代碼以后就對這段特征碼進(jìn)行HOOK,HOOK的過程用到了CALL NEARoffset32,即相對的尋址方式。這個HOOK利用了eEye BootRoot 里面的技術(shù)。上面的主要代碼是在第一個扇區(qū)中的代碼實現(xiàn)的,是實模式下執(zhí)行的代碼。2、第二級HOOK(HOOK NTLDR的特征碼)這里主要為HOOK了NLTDR以后代碼執(zhí)行的過程,第二個HOOK的代碼主要是在第61

9、個扇區(qū)中實現(xiàn)的。首先第二個HOOK會去搜索NTLDR中的特征碼,搜索這個特征碼是為了定位到BlLoaderBlock這個變量,這個變量中包括了很多有用的信息,如內(nèi)核和BootDriver等等。搜索過程為下圖:圖1當(dāng)搜索到以后就可以定位到BlLoaderBlock,然后BlLoaderBlock+0就正好為模塊鏈表的指針。這個指針?biāo)赶虻慕Y(jié)構(gòu)的一些主要成員為:+00h LIST_ENTRY module list links+08h 10h 不太了解+18h PTR image base address+1Ch PTR module entry point+20h DWORD size of l

10、oaded module in memory+24h UNICODE_STRING full module path and file name+2Ch UNICODE_STRING module file name下圖的代碼就是利用上面介紹BlLoaderBlock的結(jié)構(gòu)定位到了內(nèi)核的基址。圖2當(dāng)定位到內(nèi)核以后,Bootkit將搜索內(nèi)核的特征代碼,然后對內(nèi)核進(jìn)行HOOK。搜索的內(nèi)核代碼為: push 4Bh 6Ah 4Bh push 19h 6Ah 19h call InbvSetProgressBarSubset(x,x) E8 E8 DD E6 FF push ebp+var_470 F

11、F B5 90 FB FF FFcall IoInitSystem(x) E8 53 E6 FF FF當(dāng)搜索到了上面的內(nèi)核特征碼后,就對內(nèi)核的call IoInitSystem(x)進(jìn)行了HOOK,這個搜索特征碼的過程如下圖所示:圖3當(dāng)搜索到特征碼后接下就會對Kernel的特征碼進(jìn)行HOOK,HOOK的特征碼為:call IoInitSystem(x) E8 53 E6 FF FF修改的地方為后面四個字節(jié)的偏移量。通過這個HOOK Bootkit就能在內(nèi)核運(yùn)行的時候再次獲得執(zhí)行的機(jī)會。下面的代碼便是對內(nèi)核進(jìn)行HOOK的操作: 圖4 從上圖的代碼看出,在這個過程中Bootkit會將HOOK內(nèi)核的

12、代碼挪到內(nèi)存中內(nèi)核映像文件的末尾位置,大小正好為200個字節(jié)。 上面便是Bootkit的第二個HOOK所完成的工作。3、第三級HOOK(HOOK Kernel的特征碼)當(dāng)HOOK Kernel后的代碼運(yùn)行時,主要的代碼是在第62個扇區(qū)中。其中的代碼有些復(fù)雜,這里只介紹主要的執(zhí)行流程。這個HOOK代碼主要的功能實現(xiàn)了加載并運(yùn)行一個驅(qū)動程序。第三級HOOK中首先是通過內(nèi)核的輸出表定位到ExAllocatePool函數(shù),搜索這個內(nèi)核的函數(shù)是通過Hash的比較。當(dāng)找到這個函數(shù)的地址以后就調(diào)用這個函數(shù)分配一片內(nèi)存池,然后把下面的代碼拷貝到這份內(nèi)存中并在內(nèi)存池中執(zhí)行Bootkit后面的代碼。上面這個過程具

13、體實現(xiàn)如下入所示:圖5接下來Bootkit會把調(diào)用之前被HOOK的IoInitSystem(x)函數(shù),即去Call這個函數(shù),讓IO去初始化系統(tǒng)。當(dāng)執(zhí)行完這步操作以后,則會在內(nèi)核中搜索和多函數(shù),如NtReadFile、NtOpenFile、NtClose等函數(shù),調(diào)用這些函數(shù)主要是為了能夠把驅(qū)動直接從磁盤上讀出來,然后運(yùn)行。具體過程為如下。首先調(diào)用NtOpenFile打開磁盤,并定位那個驅(qū)動的位置。過程為:圖6 接下來調(diào)用NtReadFile函數(shù),把驅(qū)動從磁盤上讀到內(nèi)存中,過程為下圖所示:圖7當(dāng)把驅(qū)動讀入到內(nèi)存以后Bootkit還有一個將驅(qū)動進(jìn)行內(nèi)存對齊的操作。具體過程為下圖所示:圖8當(dāng)對驅(qū)動進(jìn)行

14、內(nèi)存對齊以后,就開始根據(jù)偏移定位到驅(qū)動的入口地址,然后運(yùn)行驅(qū)動程序,具體過程下圖所示為:圖9當(dāng)驅(qū)動執(zhí)行完畢后,則把控制權(quán)交還給Bootkit的啟動代碼,Bootkit最后做的善后處理為:把正在運(yùn)行的內(nèi)存池里面的代碼清零,然后把控制權(quán)交給操作系統(tǒng)的內(nèi)核,讓內(nèi)核繼續(xù)進(jìn)行計算機(jī)的啟動過程。以上便是這個Bootkit樣本的啟動模塊代碼執(zhí)行流程。 最后附上一個圖,下圖為HOOK Kernel處留下的痕跡。圖10Call IoInitSystem(x)被替換成了Call 806cee00,而806cee00地址處的代碼是Bootkit第三個HOOK的代碼。七、心得 逆向工程是一個實踐性很強(qiáng)的學(xué)科,通過在線課程的學(xué)習(xí)以及親手上機(jī)實驗使得我在本次課程中收獲很大,通過對程序的逆向工程的分析,本人對計算機(jī)技術(shù)有了更加深刻的認(rèn)識。 感謝何興高老師在課堂上的諄諄教誨,更感謝何老師在休息時間對我們的耐心講解。

展開閱讀全文
溫馨提示:
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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔

相關(guān)搜索

關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!