可製作殭屍網絡的Bootkit淺析

最近翻出自己以前存的黑防的雜誌,又興致勃勃的看起來,索性把自己的學得記下來,今天的話題是Bootkit,首先介紹下所謂的Bootkit這個技術,其實就是Rootkit的增強版,所以還是先介紹Rootkit吧,Rootkit就是入侵者爲了隱藏自己的蹤跡和保存root權限的工具(也可以說是一種技術),同樣這裏Bootkit的目的也一樣,這裏就是不擴展講rootkit的實現了,因爲這裏涉及windows內核提權等大量知識,如果對rootkit有興趣的可以自己Google,這裏回過頭來講Bootkit,說到這裏不得不提下Bootkit技術製作的經典傑作-"鬼影"病毒,簡單介紹下鬼影病毒,她是通過修改MBR(Main Boot Record,主引導記錄)實現開機過程中還未加載windows的時候就執行惡意代碼的能力,這裏關鍵的問題是這種鬼影病毒一旦種植在您的電腦上就難以根除,原因有以下幾點:1。他自己所在的位置不是普通硬盤簇裏,而是在第0片盤片的引導扇區,而非文件系統中的文件。2.存在與MBR的代碼在Windows加載之前就已經被加載執行了,所以他的權限極高,對殺軟可以做到先發制人。

下面爲了能進一步講下去,先給大家科普下計算機的引導過程,首先當你按下電源使CPU加電之後,首先會執行在主板上固化的一段代碼(一次性只讀硬件燒錄上的,一般修改不了,但是如果BIOS支撐刷寫,那就可以做BIOS bootkit),這段代碼就是BIOS (Bisic Input Output System)程序,這裏的做的一些固定的活就是對硬盤,CPU,內存等基本固件做健康檢查,如果這的硬件檢查通過,下一步就按照在Boot step(BIOS中可設置的系統引導啓動順序表)中的先後順序去找系統啓動引導(大概有 本地硬盤引導,USB引導,網絡位置引導幾種,在沒修改的情況下默認是先找本地硬盤引導排在第一位),這裏BIOS就會去本地硬盤上的第一個分區的第一個扇區去找DBR(DOS Boot Record,DOS引導記錄)在DBR中找尋加載系統的程序NTLDR(NT Loader Record),在Win 7和VISTA中就叫bootmgr,這裏暫且都叫他們NTLDR了,找到這裏後BIOS就將CPU的使用權交給這段代碼用來加載和初始化後續的正式系統,但是要記住這裏的幾個過程還是在CPU實模式下。

這裏總結下引導流程:BIOS->MBR->DER->NTLDR(bootmgr),這四個流程其實都是可以被劫持的,隨便劫持哪個過程,但是因爲這裏是在實模式下直接執行的代碼,這裏直接啓動和讀取讀取不同的IO硬件,所以在不同機器上代碼的執行效果很難一致,也就是兼容性不同,如果做BIOS bootkit,這個就要判斷不同的硬件是否支持刷寫,並且對於不同廠家的BIOS還得分別做兼容處理,相反的,如果是在引導啓動的後半部分也就是NTLDR的硬件差異性就會小很多,所以劫持代碼相對簡單,執行的成功率更高,所以,你懂的,對於Boot防護功能的殺軟如Symantec的諾頓(Norton)和病毒們,NTLDR那快地兒到底是有多麼的寶貴,多少人在默默的爭搶。

這裏專門做了個實驗,在Windows 7 下,直接以管理員權限將bootmgr移出,造成的後果就是"boot missing , please use ctrl+alt+delete to restart" ,這個文件是一個混合的PE文件,其中即有16位程序也有32位程序,因爲這裏的系統引導文件bootmgr仍然是運行在實模式下,所以這裏執行的始終還是16位的程序在執行,看到在黑防上逆向了NTLDR,當然是16位模式下的反編譯, 看到開頭就有jmp的跳轉,所以在理論上實現劫持這個跳轉是可以實現的,我們可以這樣做,首先將跳轉地址保存下來,然後先指向自己的代碼地址,然後執行完了在還原現場,其中自己的代碼可以在文件尾插入也可以在文件中間的空白處插入,當然實際的shellcode不是這麼簡單的,比如要注意使用到的字符串需要修正地址,如果有時間,去找段可行的代碼貼下。

這裏因爲還沒有進入正式的操作系統,所以系統版本對於劫持bootmgr/NTLDR的影響不太大,其實就是但上面的16位的shellcode的編寫就很要求彙編額度技術功底,這類技術現在已經是在走下坡路了,因爲在將來我們逐漸去掉這種實模式引導啓動的方式,甚至都不需要BIOS(只是猜測),如果你經常擺弄BIOS,你會看到裏面已經有的UEFI(Unified Extensible Firemware Interface)的選項(ASUS A43S 反正是有的),這中啓動方式更加靈活,如果等到他普及了,直接取代BIOS也是有可能的,到那時有或許是Bootkit的終結了,就像緩衝區溢出技術逐漸終結一樣(隨着C++ 11 標準的普及,C++ 14 標準都要出現了).但是新技術亦有新挑戰,學無止境!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章