Anti MBR-Rootkit技術(shù)研究-基礎(chǔ)電子_第1頁
Anti MBR-Rootkit技術(shù)研究-基礎(chǔ)電子_第2頁
Anti MBR-Rootkit技術(shù)研究-基礎(chǔ)電子_第3頁
Anti MBR-Rootkit技術(shù)研究-基礎(chǔ)電子_第4頁
Anti MBR-Rootkit技術(shù)研究-基礎(chǔ)電子_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

精品文檔-下載后可編輯AntiMBR-Rootkit技術(shù)研究-基礎(chǔ)電子

摘要:本文主要對(duì)磁盤主引導(dǎo)記錄MBR和Windows操作系統(tǒng)的啟動(dòng)過程進(jìn)行了闡述,對(duì)Rootkit和MBR-Rootkit技術(shù)特點(diǎn)進(jìn)行了總結(jié),對(duì)MBR-Rootkit結(jié)構(gòu)和實(shí)例的行為特點(diǎn)進(jìn)行了深入研究和剖析,針對(duì)WinXP操作系統(tǒng)的MBR-Rootkit實(shí)例,提出了檢測(cè)和清除方法。

1.前言

基于Windows啟動(dòng)過程的Rootkit作為目前前沿的Rootkit技術(shù),把存放地由傳統(tǒng)的操作系統(tǒng)磁盤文件擴(kuò)展到了硬盤主引導(dǎo)扇區(qū)等位置,同時(shí)將自身的啟動(dòng)提前到了Windows系統(tǒng)內(nèi)核啟動(dòng)相同的級(jí)別,甚至還要更早的階段。這樣基于Windows啟動(dòng)過程的Rootkit就能較早的取得對(duì)計(jì)算機(jī)的控制權(quán),從而實(shí)現(xiàn)較強(qiáng)的隱藏和控制功能?;贛BR的Rootkit技術(shù)是通過感染MBR實(shí)現(xiàn)的,這種Rootkit會(huì)在操作系統(tǒng)還沒運(yùn)行的時(shí)候先獲得控制權(quán),這種技術(shù)在磁盤中會(huì)留下感染痕跡,通常安全軟件也是利用這個(gè)弱點(diǎn),首先檢測(cè)MBR是否被篡改了,如果是則修復(fù)這個(gè)被篡改的MBR,當(dāng)修復(fù)成功后,下次計(jì)算機(jī)重啟過程中Rootkit失去作用。

2.磁盤主引導(dǎo)記錄MBR

MBR(MasterBootRecord),即主引導(dǎo)記錄,它是由FDISK等磁盤分區(qū)命令寫在硬盤0扇區(qū)的一段數(shù)據(jù),它由主引導(dǎo)程序、硬盤分區(qū)表及扇區(qū)結(jié)束標(biāo)志字(55AA)這3個(gè)部分組成。位于整個(gè)硬盤的0柱面0磁道1扇區(qū),共占用63個(gè)扇區(qū),但實(shí)際只使用1個(gè)扇區(qū)(512字節(jié))。在總共512字節(jié)的主引導(dǎo)記錄中,引導(dǎo)代碼占用446字節(jié),分區(qū)表占用64字節(jié),結(jié)束標(biāo)志55AA占用兩個(gè)字節(jié)。

引導(dǎo)代碼的作用是讓硬盤具備可以引導(dǎo)的功能,如果引導(dǎo)代碼丟失,分區(qū)表還在,那么這個(gè)硬盤作為從盤所有分區(qū)數(shù)據(jù)都還在,只是這個(gè)硬盤自己不能夠用來啟動(dòng)進(jìn)系統(tǒng)。

如果要恢復(fù)引導(dǎo)代碼,可用DOS下命令:

FDISK/MBR;這個(gè)命令只是用來恢復(fù)引導(dǎo)代碼,不會(huì)引起分區(qū)改變丟失數(shù)據(jù)。此外,可用工具軟件如DISKGEN、WINHEX等。但分區(qū)表如果丟失,后果就是整個(gè)硬盤一個(gè)分區(qū)沒有,就好象剛買來一個(gè)新硬盤沒有分過區(qū)一樣。是很多病毒喜歡破壞的區(qū)域。因?yàn)橹饕龑?dǎo)記錄MBR多只能描述4個(gè)分區(qū)項(xiàng),如果想要在一個(gè)硬盤上分多于4個(gè)區(qū),就要采用擴(kuò)展MBR的辦法EBR(ExtendedMBR)。MBR、EBR是分區(qū)產(chǎn)生的。比如MBR和EBR各都占用63個(gè)扇區(qū),C盤占用143532個(gè)扇區(qū)等,則硬盤分區(qū)結(jié)構(gòu)如表1所示:

例主引導(dǎo)記錄(部分?jǐn)?shù)據(jù))“800101000BFEBFFC3F0000007E86BB00”,“80”是一個(gè)分區(qū)的激活標(biāo)志,表示系統(tǒng)可引導(dǎo);“010100”表示分區(qū)開始的磁頭號(hào)為01,開始的扇區(qū)號(hào)為01,開始的柱面號(hào)為00;“0B”表示分區(qū)的系統(tǒng)類型是FAT32,其他比較常用的有04(FAT16)、07(NTFS);“FEBFFC”表示分區(qū)結(jié)束的磁頭號(hào)為254,分區(qū)結(jié)束的扇區(qū)號(hào)為63、分區(qū)結(jié)束的柱面號(hào)為764;“3F000000”表示首扇區(qū)的相對(duì)扇區(qū)號(hào)為63;“7E86BB00”

表示總扇區(qū)數(shù)為12289622.

3.Windows操作系統(tǒng)啟動(dòng)過程

Windows操作系統(tǒng)啟動(dòng)過程是一個(gè)復(fù)雜的過程,可簡(jiǎn)單的分為預(yù)啟動(dòng)、NTLDR引導(dǎo)、內(nèi)核裝載和初始化以及用戶登錄五個(gè)階段。預(yù)啟動(dòng)首先是通電自檢,由BIOS(即基本輸入輸出系統(tǒng))完成基本硬件配置,然后讀取MBR(主引導(dǎo)記錄)檢查硬盤分區(qū)表以確定引導(dǎo)分區(qū),并將引導(dǎo)分區(qū)上的操作系統(tǒng)引導(dǎo)扇區(qū)調(diào)入內(nèi)存中執(zhí)行,此處即執(zhí)行NTLDR(操作系統(tǒng)加載器)文件。Windows2000/XP支持多重啟動(dòng),在安裝時(shí)會(huì)首先將已存在的其它操作系統(tǒng)引導(dǎo)扇區(qū)保存為BOOTSECT.

DOS文件,并修改系統(tǒng)引導(dǎo)扇區(qū),以便系統(tǒng)啟動(dòng)時(shí)加載NTLDR文件,從而達(dá)到多重啟動(dòng)的目的。NTLDR引導(dǎo)過程中NTLDR把CPU從實(shí)模式轉(zhuǎn)換為32位保護(hù)模式,并讀取BOOT.INI文件,它的作用是使系統(tǒng)在啟動(dòng)過程中出現(xiàn)選擇菜單,由用戶選擇要啟動(dòng)system.如果選擇Windows2000/XP,NTLDR會(huì)繼續(xù)引導(dǎo)進(jìn)行以下過程;如果選擇為非Windows2000/XP,NTLDR則會(huì)讀取BOTSECT.DOS轉(zhuǎn)入啟動(dòng)相應(yīng)系統(tǒng)。內(nèi)核裝載和初始化由OSloader模塊裝載位于System32文件夾中Windows2000/XP的內(nèi)核NTOSKRNL.EXE.隨后,HAL(硬件抽象層)被加載,啟動(dòng)會(huì)話管理器Smss.exe創(chuàng)建系統(tǒng)環(huán)境變量和虛擬內(nèi)存頁面文件。啟動(dòng)過程的一個(gè)階段是開始登錄進(jìn)程。由WIN32子系統(tǒng)啟動(dòng)Winlogon.exe,并由它啟動(dòng)LSASS.EXE(LOCALSECURITYAUTHORITY)顯示登錄對(duì)話框。

4.MBR-Rootkit技術(shù)

4.1Rootkit技術(shù)

Rootkit的定義是能夠持久地、可靠地、并且無法檢測(cè)地存在于計(jì)算機(jī)系統(tǒng)上的一組程序和代碼,其強(qiáng)大的無法檢測(cè)的隱藏特性,己成為研究熱點(diǎn),并且發(fā)展迅速。

Rootkit源于UNIX系統(tǒng)中的超級(jí)用戶賬號(hào),UNIX系統(tǒng)是Rootkit工具初的攻擊目標(biāo)。

現(xiàn)在,Rootkit可用于多種操作系統(tǒng),包括UNIX、Linux和Windows.Rootkit常常被惡意代碼作者用于隱藏他們的代碼而不被發(fā)現(xiàn),它通過監(jiān)聽系統(tǒng)功能,用合法的數(shù)值代替返回的數(shù)據(jù),從而達(dá)到隱藏目的。

4.2MBR-Rootkit技術(shù)

MBR-Rootkit技術(shù)通過感染MBR的方式把Rootkit的代碼放在原來MBR的位置,然后在MBR加載到內(nèi)存的時(shí)候獲得控制權(quán),然后采用運(yùn)行時(shí)補(bǔ)丁技術(shù)修改windows啟動(dòng)過程的NTLDR和NDIS文件,通過邏輯修改函數(shù)的執(zhí)行,把原函數(shù)的執(zhí)行轉(zhuǎn)向Rootkit自己的代碼中,實(shí)現(xiàn)對(duì)該函數(shù)的劫持修改,在操作系統(tǒng)的啟動(dòng)過程中得以順利加載并運(yùn)行。

成功繞過Windows操作系統(tǒng)安全防御,在NDIS驅(qū)動(dòng)中留下后門。由于WinXP系統(tǒng)的限制,一般手法改寫MBR會(huì)被系統(tǒng)判定為非法,這種繞過Winxp的安全限制,直接改寫MBR的技術(shù)一般稱之為MBR-Rootkit.

MBR-Rootkit的技術(shù)特點(diǎn)有:

1)在操作系統(tǒng)啟動(dòng)之前完全控制機(jī)器引導(dǎo)過程中代碼的執(zhí)行;

2)Rootkit不需要文件,代碼能存在于磁盤的某些扇區(qū)中,不會(huì)被當(dāng)作普通文件刪除;

3)Rootkit不需要注冊(cè)表入口,因?yàn)樗怯蒑BR加載的;

4)Rootkit只要控制很少的一些扇區(qū)就能隱藏自己。

典型MBR-Rootkit包括:安裝程序、MBR加載程序、內(nèi)核修改程序、驅(qū)動(dòng)加載程序、扇區(qū)隱藏/保護(hù)程序和內(nèi)核驅(qū)動(dòng)程序。

安裝程序:rootkit的安裝程序把惡意內(nèi)核驅(qū)動(dòng)程序(244736字節(jié))的內(nèi)容寫到磁盤的幾個(gè)扇區(qū)(offset:2142830592),然后修改扇區(qū)0,扇區(qū)60,扇區(qū)61和扇區(qū)62.所隱藏扇區(qū)的內(nèi)容:0扇區(qū),MBRrootkit加載程序;61扇區(qū),加載程序的內(nèi)核部分;62扇區(qū),原始MBR的副本。

MBR加載程序:Rootkit重寫原始MBR代碼,并把原始MBR的副本保存在62扇區(qū)。

Rootkit的作者大多數(shù)使用eEye研究者開發(fā)的MBR加載程序,只不過修改了源代碼使Rootkit用來修改windows內(nèi)核,而不是NDIS驅(qū)動(dòng)程序。

內(nèi)核修改程序:MBRrootkit加載程序勾住了13號(hào)中斷用來控制NTLDR所加載的扇區(qū)。它修改了內(nèi)核的兩處區(qū)域:個(gè)是NT!IoInitSystem函數(shù)調(diào)用,第二個(gè)是內(nèi)核映像的一頁。在開始的時(shí)候Rootkit調(diào)用原始nt!IoInitSystem函數(shù)并且加載它自己的驅(qū)動(dòng)程序。

內(nèi)核驅(qū)動(dòng)加載程序:Rootkit加載程序的主要部分打開“\??\PhysicalDrive0”設(shè)備,把惡意驅(qū)動(dòng)程序的內(nèi)容從磁盤里讀取出來,Rootkit用它自己的代碼把映像加載到內(nèi)存里,加載程序轉(zhuǎn)到入口點(diǎn)執(zhí)行。

扇區(qū)隱藏/保護(hù)程序:為了隱藏MBR和其他扇區(qū)的真實(shí)內(nèi)容,RootkitHook“\Driver\Disk”的IRP_MJ_READ請(qǐng)求。通常情況下,當(dāng)API讀取0扇區(qū)(也就是MBR)時(shí),Rootkit修改磁盤IRP_MJ_READ調(diào)用并返回62扇區(qū)的原始MBR副本。第二個(gè)鉤子(IRP_MJ_WRITE)保護(hù)自身不被刪除或覆蓋。

內(nèi)核驅(qū)動(dòng)程序:Rootkit的內(nèi)核驅(qū)動(dòng)程序在引導(dǎo)過程的一步被加載。驅(qū)動(dòng)程序是rootkit的主要部分,主要負(fù)責(zé)網(wǎng)絡(luò)通訊和隱藏被感染扇區(qū)的真實(shí)內(nèi)容。

4.3MBR-Rootkit實(shí)例“鬼影病毒”

2010年3月15日,金山安全實(shí)驗(yàn)室捕獲一種被命名為“鬼影”的電腦病毒,該病毒寄生在MBR,病毒釋放的驅(qū)動(dòng)程序,能夠破壞大多數(shù)安全工具和系統(tǒng)輔助工具。當(dāng)系統(tǒng)再次重啟時(shí),該病毒會(huì)早于操作系統(tǒng)內(nèi)核先行加載。而當(dāng)病毒成功運(yùn)行后,在進(jìn)程中、系統(tǒng)啟動(dòng)加載項(xiàng)里找不到任何異常。即使格式化重裝系統(tǒng),也無法將該病毒清除。2011年9月2日,捕獲鬼影病毒變種,該變種會(huì)改寫特定型號(hào)的主板BIOS芯片。若改寫成功,鬼影病毒破壞的MBR(硬盤主引導(dǎo)記錄)就被保護(hù),殺毒軟件修復(fù)受損MBR的操作會(huì)失敗。該病毒只針對(duì)WinXP系統(tǒng),尚不能破壞Vista和Win7系統(tǒng)。

鬼影病毒的主要代碼是寄生在硬盤MBR,即使受害者格式化硬盤重裝系統(tǒng),鬼影病毒也無法清除。鬼影病毒是中國(guó)內(nèi)地引導(dǎo)區(qū)者病毒,它具備“三無”特征--無文件、無系統(tǒng)啟動(dòng)項(xiàng)、無進(jìn)程模塊,而且即使用戶重格式硬盤和重裝系統(tǒng)也依然無效。

病毒作者將存放在磁盤第5扇區(qū)的病毒的主要代碼插入NTLDR文件中,這樣就解決了自身代碼在WINDOWS下的加載問題,這一思路也為真正的BIOS病毒提供了一個(gè)非常好的實(shí)現(xiàn)方法。

鬼影病毒具體行為有以下幾點(diǎn):

1)該病毒偽裝為某共享軟件,欺騙用戶安裝。病毒文件中包含3部分文件:A、原正常的共享軟件。B、“鬼影”病毒,修改系統(tǒng)引導(dǎo)區(qū)(mbr),結(jié)束殺軟,AV終結(jié)者病毒。C、捆綁IE篡改器,修改用戶瀏覽器,桌面添加多余的快捷方式。

2)“鬼影”病毒運(yùn)行后,會(huì)釋放2個(gè)驅(qū)動(dòng)到用戶電腦中,并加載。

3)驅(qū)動(dòng)會(huì)修改系統(tǒng)的引導(dǎo)區(qū)(mbr),并將b驅(qū)動(dòng)寫入磁盤,保證病毒是優(yōu)先于系統(tǒng)啟動(dòng),且病毒文件保存在系統(tǒng)之外。這樣進(jìn)入系統(tǒng)后,病毒加載入內(nèi)存,但找不到任何啟動(dòng)項(xiàng)、找不到病毒文件、在進(jìn)程中找不到任何進(jìn)程模塊。

4)病毒母體自刪除。

5)重啟系統(tǒng)后,存在在引導(dǎo)區(qū)中的惡意代碼會(huì)對(duì)windows系統(tǒng)的整個(gè)啟動(dòng)過程進(jìn)行監(jiān)控,發(fā)現(xiàn)系統(tǒng)加載ntldr文件時(shí),插入惡意代碼,使其加載寫入引導(dǎo)區(qū)第五個(gè)扇區(qū)的b驅(qū)動(dòng)。

6)b驅(qū)動(dòng)加載起來后,會(huì)監(jiān)視系統(tǒng)中的所有進(jìn)程模塊,若存在安全軟件的進(jìn)程,直接結(jié)束。

7)b驅(qū)動(dòng)會(huì)av終結(jié)者到電腦中,并運(yùn)行。

8)av終結(jié)者會(huì)修改系統(tǒng)文件,對(duì)安全軟件進(jìn)程添加大量的映像劫持,大量的盜號(hào)木馬病毒。進(jìn)一步盜取用戶的虛擬財(cái)產(chǎn)。

4.4MBR-Rootkit檢測(cè)

基于MBR的Rootkit技術(shù)是通過感染MBR實(shí)現(xiàn)的,這種Bootkit會(huì)在操作系統(tǒng)還沒運(yùn)行的時(shí)候先獲得控制權(quán),但這種技術(shù)的弱點(diǎn)則是在磁盤中留下了感染的痕跡,通常安全軟件也是利用了這個(gè)弱點(diǎn),首先去檢測(cè)MBR是否被篡改,如果是則會(huì)修復(fù)這個(gè)被篡改的MBR,當(dāng)修復(fù)成功以后,在下次計(jì)算機(jī)重啟的過程中MBR-Rootkit就失去作用。

檢測(cè)的方法基于MBR扇區(qū)的比較。用戶模式用WindowsAPI函數(shù)讀取一份假的MBR內(nèi)容:

hFile=CreateFile(“\\PHYSICALDRIVE0″,GENERIC_READ,.

ReadFile(hFile,Buffer,512,

掃描程序的內(nèi)核部分可以用”\Driver\Disk“設(shè)備的原始指針MajorFunction[IRP_MJ_READ]=CLASSPNP!

ClassReadWrite讀取真實(shí)MBR的內(nèi)容。

如果兩份MBR的內(nèi)容不一樣,機(jī)器就是被感染了。

4.5鬼影病毒清除

1)使用各大電腦安全廠商推出的相應(yīng)的鬼影病毒專殺工具;

2)MBR有做過備份的,直接還原MBR備份即可;

3)MBR沒做過備份的,用XP系統(tǒng)安裝盤進(jìn)入故障恢復(fù)控制臺(tái),在命令提示符下輸入Fixmbr,然后系統(tǒng)提示是否更新MBR主引導(dǎo)記錄,選擇是,并且再輸入Fixboot,修復(fù)boot區(qū)引導(dǎo)即可;

4)DOS引導(dǎo)盤啟動(dòng),運(yùn)行磁盤分區(qū)命令fdisk/mbr重建MBR代碼;

注意:有些病毒可能會(huì)使得分區(qū)表和指針出現(xiàn)偏移,此時(shí)使用fdisk/mbr命令,指向分區(qū)表的指針會(huì)丟失,這樣的結(jié)果是,引導(dǎo)能力丟失,無法啟動(dòng)系統(tǒng)。

5)DEBUG下運(yùn)行以下代碼和命令,將MRB清零,再重新分區(qū)。

A/MOVAX,0301/MOVBX,1000/MOVCX,1/MOVDX,80/INT13/INT3/F1000FFFF0/G/Q

修復(fù)MBR后,還必須進(jìn)行殺毒。目前,金山毒霸可查殺傳播”鬼影“病毒的母體文件,金山網(wǎng)盾也已將傳播該病毒的惡意URL加入阻止訪問的列表。

5

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論