Anti MBR-Rootkit技術(shù)研究
出處:電子技術(shù)網(wǎng) 發(fā)布于:2014-02-13 09:15:26
摘要:本文主要對磁盤主引導(dǎo)記錄MBR和Windows操作系統(tǒng)的啟動過程進行了闡述,對Rootkit和MBR-Rootkit技術(shù)特點進行了總結(jié),對MBR-Rootkit結(jié)構(gòu)和實例的行為特點進行了深入研究和剖析,針對WinXP操作系統(tǒng)的MBR-Rootkit實例,提出了檢測和清除方法。
1.前言
基于Windows啟動過程的Rootkit作為目前前沿的Rootkit技術(shù),把存放地由傳統(tǒng)的操作系統(tǒng)磁盤文件擴展到了硬盤主引導(dǎo)扇區(qū)等位置,同時將自身的啟動提前到了Windows系統(tǒng)內(nèi)核啟動相同的級別,甚至還要更早的階段。這樣基于Windows啟動過程的Rootkit就能較早的取得對計算機的控制權(quán),從而實現(xiàn)較強的隱藏和控制功能?;贛BR的Rootkit技術(shù)是通過感染MBR實現(xiàn)的,這種Rootkit會在操作系統(tǒng)還沒運行的時候先獲得控制權(quán),這種技術(shù)在磁盤中會留下感染痕跡,通常安全軟件也是利用這個弱點,首先檢測MBR是否被篡改了,如果是則修復(fù)這個被篡改的MBR,當(dāng)修復(fù)成功后,下次計算機重啟過程中Rootkit失去作用。
2.磁盤主引導(dǎo)記錄MBR
MBR(Master Boot Record),即主引導(dǎo)記錄,它是由FDISK等磁盤分區(qū)命令寫在硬盤0扇區(qū)的一段數(shù)據(jù),它由主引導(dǎo)程序、硬盤分區(qū)表及扇區(qū)結(jié)束標(biāo)志字(55AA)這3個部分組成。位于整個硬盤的0柱面0磁道1扇區(qū),共占用63個扇區(qū),但實際只使用1個扇區(qū)(512字節(jié))。在總共512字節(jié)的主引導(dǎo)記錄中,引導(dǎo)代碼占用446字節(jié),分區(qū)表占用64字節(jié),結(jié)束標(biāo)志55AA占用兩個字節(jié)。
引導(dǎo)代碼的作用是讓硬盤具備可以引導(dǎo)的功能,如果引導(dǎo)代碼丟失,分區(qū)表還在,那么這個硬盤作為從盤所有分區(qū)數(shù)據(jù)都還在,只是這個硬盤自己不能夠用來啟動進系統(tǒng)。
如果要恢復(fù)引導(dǎo)代碼,可用D O S下命令:
FDISK/MBR;這個命令只是用來恢復(fù)引導(dǎo)代碼,不會引起分區(qū)改變丟失數(shù)據(jù)。此外,可用工具軟件如DISKGEN、WINHEX等。但分區(qū)表如果丟失,后果就是整個硬盤一個分區(qū)沒有,就好象剛買來一個新硬盤沒有分過區(qū)一樣。是很多病毒喜歡破壞的區(qū)域。因為主引導(dǎo)記錄MBR多只能描述4個分區(qū)項,如果想要在一個硬盤上分多于4個區(qū),就要采用擴展MBR的辦法EBR(Extended MBR)。MBR、EBR是分區(qū)產(chǎn)生的。比如MBR和EBR各都占用63個扇區(qū),C盤占用143532個扇區(qū)等,則硬盤分區(qū)結(jié)構(gòu)如表1所示:

例主引導(dǎo)記錄(部分數(shù)據(jù))“80 01 0100 0B FE BF FC 3F 00 00 00 7E 86 BB00”,“80”是一個分區(qū)的激活標(biāo)志,表示系統(tǒng)可引導(dǎo);“01 01 00”表示分區(qū)開始的磁頭號為01,開始的扇區(qū)號為01,開始的柱面號為00;“0B”表示分區(qū)的系統(tǒng)類型是FAT32,其他比較常用的有04(FAT16)、07(NTFS);“FE BF FC”表示分區(qū)結(jié)束的磁頭號為254,分區(qū)結(jié)束的扇區(qū)號為63、分區(qū)結(jié)束的柱面號為764;“3F 00 00 00”表示首扇區(qū)的相對扇區(qū)號為63;“7E 86 BB 00”
表示總扇區(qū)數(shù)為12289622.
3.Windows操作系統(tǒng)啟動過程
W i n d o w s操作系統(tǒng)啟動過程是一個復(fù)雜的過程,可簡單的分為預(yù)啟動、NTLDR引導(dǎo)、內(nèi)核裝載和初始化以及用戶登錄五個階段。預(yù)啟動首先是通電自檢,由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支持多重啟動,在安裝時會首先將已存在的其它操作系統(tǒng)引導(dǎo)扇區(qū)保存為BOOTSECT.
DOS文件,并修改系統(tǒng)引導(dǎo)扇區(qū),以便系統(tǒng)啟動時加載NTLDR文件,從而達到多重啟動的目的。NTLDR引導(dǎo)過程中NTLDR把CPU從實模式轉(zhuǎn)換為32位保護模式,并讀取BOOT.INI文件,它的作用是使系統(tǒng)在啟動過程中出現(xiàn)選擇菜單,由用戶選擇要啟動system.如果選擇Windows2000/XP,NTLDR會繼續(xù)引導(dǎo)進行以下過程;如果選擇為非Windows2000/XP,NTLDR則會讀取BOTSECT.DOS轉(zhuǎn)入啟動相應(yīng)系統(tǒng)。內(nèi)核裝載和初始化由OSloader模塊裝載位于System32文件夾中Windows2000/XP的內(nèi)核NTOSKRNL.EXE.隨后,HAL(硬件抽象層)被加載,啟動會話管理器Smss.exe創(chuàng)建系統(tǒng)環(huán)境變量和虛擬內(nèi)存頁面文件。啟動過程的一個階段是開始登錄進程。由WIN32子系統(tǒng)啟動Winlogon.exe,并由它啟動LSASS.EXE(LOCALSECURITY AUTHORITY)顯示登錄對話框。
4.MBR-Rootkit技術(shù)
4.1 Rootkit技術(shù)
Rootkit的定義是能夠持久地、可靠地、并且無法檢測地存在于計算機系統(tǒng)上的一組程序和代碼,其強大的無法檢測的隱藏特性,己成為研究熱點,并且發(fā)展迅速。
Rootkit源于UNIX系統(tǒng)中的超級用戶賬號,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ù),從而達到隱藏目的。
4.2 MBR-Rootkit技術(shù)
MBR-Rootkit技術(shù)通過感染MBR的方式把Rootkit的代碼放在原來MBR的位置,然后在MBR加載到內(nèi)存的時候獲得控制權(quán),然后采用運行時補丁技術(shù)修改windows啟動過程的NTLDR和NDIS文件,通過邏輯修改函數(shù)的執(zhí)行,把原函數(shù)的執(zhí)行轉(zhuǎn)向Rootkit自己的代碼中,實現(xiàn)對該函數(shù)的劫持修改,在操作系統(tǒng)的啟動過程中得以順利加載并運行。
成功繞過Windows操作系統(tǒng)安全防御,在NDIS驅(qū)動中留下后門。由于WinXP系統(tǒng)的限制,一般手法改寫MBR會被系統(tǒng)判定為非法,這種繞過Winxp的安全限制,直接改寫MBR的技術(shù)一般稱之為MBR-Rootkit.
MBR-Rootkit的技術(shù)特點有:
1)在操作系統(tǒng)啟動之前完全控制機器引導(dǎo)過程中代碼的執(zhí)行;
2)Rootkit不需要文件,代碼能存在于磁盤的某些扇區(qū)中,不會被當(dāng)作普通文件刪除;
3)Rootkit不需要注冊表入口,因為它是由MBR加載的;
4)Rootkit只要控制很少的一些扇區(qū)就能隱藏自己。
典型MBR-Rootkit包括:安裝程序、MBR加載程序、內(nèi)核修改程序、驅(qū)動加載程序、扇區(qū)隱藏/保護程序和內(nèi)核驅(qū)動程序。
安裝程序:r o o t k i t的安裝程序把惡意內(nèi)核驅(qū)動程序(244 736字節(jié))的內(nèi)容寫到磁盤的幾個扇區(qū)(offset:2 142 830592),然后修改扇區(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ā)的M B R加載程序,只不過修改了源代碼使Rootkit用來修改windows內(nèi)核,而不是NDIS驅(qū)動程序。
內(nèi)核修改程序:MBR rootkit加載程序勾住了13號中斷用來控制NTLDR所加載的扇區(qū)。它修改了內(nèi)核的兩處區(qū)域:個是NT!IoInitSystem函數(shù)調(diào)用,第二個是內(nèi)核映像的一頁。在開始的時候Rootkit調(diào)用原始nt!IoInitSystem函數(shù)并且加載它自己的驅(qū)動程序。
內(nèi)核驅(qū)動加載程序:Rootkit加載程序的主要部分打開“\??\PhysicalDrive0”設(shè)備,把惡意驅(qū)動程序的內(nèi)容從磁盤里讀取出來,Rootkit用它自己的代碼把映像加載到內(nèi)存里,加載程序轉(zhuǎn)到入口點執(zhí)行。
扇區(qū)隱藏/保護程序:為了隱藏MBR和其他扇區(qū)的真實內(nèi)容,Rootkit Hook“\Driver\Disk”的IRP_MJ_READ請求。通常情況下,當(dāng)API讀取0扇區(qū)(也就是MBR)時,Rootkit修改磁盤IRP_MJ_READ調(diào)用并返回62扇區(qū)的原始MBR副本。第二個鉤子(IRP_MJ_WRITE)保護自身不被刪除或覆蓋。
內(nèi)核驅(qū)動程序:Rootkit的內(nèi)核驅(qū)動程序在引導(dǎo)過程的一步被加載。驅(qū)動程序是rootkit的主要部分,主要負責(zé)網(wǎng)絡(luò)通訊和隱藏被感染扇區(qū)的真實內(nèi)容。
4.3 MBR-Rootkit實例“鬼影病毒”
2010年3月15日,金山安全實驗室捕獲一種被命名為“鬼影”的電腦病毒,該病毒寄生在MBR,病毒釋放的驅(qū)動程序,能夠破壞大多數(shù)安全工具和系統(tǒng)輔助工具。當(dāng)系統(tǒng)再次重啟時,該病毒會早于操作系統(tǒng)內(nèi)核先行加載。而當(dāng)病毒成功運行后,在進程中、系統(tǒng)啟動加載項里找不到任何異常。即使格式化重裝系統(tǒng),也無法將該病毒清除。2011年9月2日,捕獲鬼影病毒變種,該變種會改寫特定型號的主板BIOS芯片。若改寫成功,鬼影病毒破壞的MBR(硬盤主引導(dǎo)記錄)就被保護,殺毒軟件修復(fù)受損MBR的操作會失敗。該病毒只針對WinXP系統(tǒng),尚不能破壞Vista和Win7系統(tǒng)。
鬼影病毒的主要代碼是寄生在硬盤MBR,即使受害者格式化硬盤重裝系統(tǒng),鬼影病毒也無法清除。鬼影病毒是中國內(nèi)地引導(dǎo)區(qū)者病毒,它具備“三無”特征--無文件、無系統(tǒng)啟動項、無進程模塊,而且即使用戶重格式硬盤和重裝系統(tǒng)也依然無效。
病毒作者將存放在磁盤第5扇區(qū)的病毒的主要代碼插入NTLDR文件中,這樣就解決了自身代碼在WINDOWS下的加載問題,這一思路也為真正的BIOS病毒提供了一個非常好的實現(xiàn)方法。
鬼影病毒具體行為有以下幾點:
1)該病毒偽裝為某共享軟件,欺騙用戶安裝。病毒文件中包含3部分文件:A、原正常的共享軟件。B、“鬼影”病毒,修改系統(tǒng)引導(dǎo)區(qū)(mbr),結(jié)束殺軟,AV終結(jié)者病毒。C、捆綁IE篡改器,修改用戶瀏覽器,桌面添加多余的快捷方式。
2)“鬼影”病毒運行后,會釋放2個驅(qū)動到用戶電腦中,并加載。
3)驅(qū)動會修改系統(tǒng)的引導(dǎo)區(qū)(mbr),并將b驅(qū)動寫入磁盤,保證病毒是優(yōu)先于系統(tǒng)啟動,且病毒文件保存在系統(tǒng)之外。這樣進入系統(tǒng)后,病毒加載入內(nèi)存,但找不到任何啟動項、找不到病毒文件、在進程中找不到任何進程模塊。
4)病毒母體自刪除。
5)重啟系統(tǒng)后,存在在引導(dǎo)區(qū)中的惡意代碼會對windows系統(tǒng)的整個啟動過程進行監(jiān)控,發(fā)現(xiàn)系統(tǒng)加載ntldr文件時,插入惡意代碼,使其加載寫入引導(dǎo)區(qū)第五個扇區(qū)的b驅(qū)動。
6)b驅(qū)動加載起來后,會監(jiān)視系統(tǒng)中的所有進程模塊,若存在安全軟件的進程,直接結(jié)束。
7)b驅(qū)動會av終結(jié)者到電腦中,并運行。
8)av終結(jié)者會修改系統(tǒng)文件,對安全軟件進程添加大量的映像劫持,大量的盜號木馬病毒。進一步盜取用戶的虛擬財產(chǎn)。
4.4 MBR-Rootkit檢測
基于MBR的Rootkit技術(shù)是通過感染MBR實現(xiàn)的,這種Bootkit會在操作系統(tǒng)還沒運行的時候先獲得控制權(quán),但這種技術(shù)的弱點則是在磁盤中留下了感染的痕跡,通常安全軟件也是利用了這個弱點,首先去檢測MBR是否被篡改,如果是則會修復(fù)這個被篡改的MBR,當(dāng)修復(fù)成功以后,在下次計算機重啟的過程中MBR-Rootkit就失去作用。
檢測的方法基于MBR扇區(qū)的比較。用戶模式用Windows API函數(shù)讀取一份假的MBR內(nèi)容:
hFile=CreateFile(“\\PHYSICALDRIVE0″,GENERIC_READ,.
ReadFile(hFile,Buffer,512,
掃描程序的內(nèi)核部分可以用”\Driver\Disk“設(shè)備的原始指針MajorFunction[IRP_MJ_READ]=CLASSPNP!
ClassReadWrite讀取真實MBR的內(nèi)容。
如果兩份MBR的內(nèi)容不一樣,機器就是被感染了。
4.5 鬼影病毒清除
1)使用各大電腦安全廠商推出的相應(yīng)的鬼影病毒專殺工具;
2)MBR有做過備份的,直接還原MBR備份即可;
3)MBR沒做過備份的,用XP系統(tǒng)安裝盤進入故障恢復(fù)控制臺,在命令提示符下輸入Fixmbr,然后系統(tǒng)提示是否更新MBR主引導(dǎo)記錄,選擇是,并且再輸入Fixboot,修復(fù)boot區(qū)引導(dǎo)即可;
4)DOS引導(dǎo)盤啟動,運行磁盤分區(qū)命令fdisk/mbr重建MBR代碼;
注意:有些病毒可能會使得分區(qū)表和指針出現(xiàn)偏移,此時使用fdisk/mbr命令,指向分區(qū)表的指針會丟失,這樣的結(jié)果是,引導(dǎo)能力丟失,無法啟動系統(tǒng)。
5)DEBUG下運行以下代碼和命令,將MRB清零,再重新分區(qū)。
A /MOV AX,0301 /MOV BX,1000 /MOV CX,1/MOV DX,80 /INT 13 /INT 3 /F 1000 FFFF 0/G /Q
修復(fù)MBR后,還必須進行殺毒。目前,金山毒霸可查殺傳播”鬼影“病毒的母體文件,金山網(wǎng)盾也已將傳播該病毒的惡意URL加入阻止訪問的列表。
5.結(jié)束語
Windows 操作系統(tǒng)存在很多的漏洞,Windows Rootkit正是利用了這些漏洞進入操作系統(tǒng)或計算機硬件部位,所以對操作系統(tǒng)未知漏洞的發(fā)掘和對已知漏洞的保護工作值得研究。從Windows操作系統(tǒng)的引導(dǎo)與啟動過程可以看出,不僅BIOS、MBR、NTLDR、boot.ini這些位置可以被修改以達到Bootkit的目的,還有很多諸如BootSector,Ntoskrnl.exe,Bootvid.dll,Hal.dll,Ntdetect.com等,都可以加以利用,如何有效的保護這些關(guān)鍵位置;對于WindowsBootkit檢測及防御的研究具有重大意義。(作者:陳頌頌, 李必云)
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 汽車電子常用電子元器件選型指南2026/4/13 16:04:25
- MOSFET驅(qū)動與隔離方案設(shè)計2026/4/13 15:12:18
- 安防監(jiān)控設(shè)備連接器應(yīng)用分析2026/4/13 13:48:56
- MOSFET反向恢復(fù)特性對系統(tǒng)的影響2026/4/10 11:07:36
- 連接器耐腐蝕性能測試方法2026/4/10 10:56:32









