探索ring0-內核漏洞概述 和 實驗環境配置

探索ring0

內核漏洞概述

內核漏洞的分類

​ 運行在ring0上的操作系統內核、設備驅動、第三方驅動能共享同一個虛擬地址空間,可以完全訪問系統空間的所有內存,而不像用戶態進程那樣擁有獨立私有的內存空間。由於內核程序的特殊性,內核程序漏洞類型也更加豐富。

​ 可以從漏洞的嚴重程度和漏洞的利用原理兩個角度來對內核漏洞進行分類。漏洞的嚴重程度是指漏洞利用後所造成的危害;漏洞的利用原理指漏洞利用過程中使用的原理和技術。

​ 按照漏洞嚴重程度依次可以分爲:遠程拒絕服務、本地拒絕服務、遠程任意代碼執行和本地權限提升。

  • 遠程拒絕服務。指能夠利用來使遠程系統崩潰或資源耗盡的內核程序bug或缺陷。
  • 本地拒絕服務。指能夠利用來使得本地系統崩潰或資源耗盡的內核程序bug或缺陷。

​ 另一方面,按照漏洞利用原理可以分爲以下4類:拒絕服務、緩衝區溢出、內存篡改和設計缺陷。

​ 其中內存篡改又可以分爲以下三個子類。

  • 任意地址寫任意數據:指能夠利用來向任意內核空間虛擬地址寫入任意數據的內核程序Bug或缺陷。
  • 固定地址寫任意數據:指能夠利用來使得向固定內核空間的虛擬地址寫入任意的內核程序bug或缺陷。
  • 任意地址寫固定數據:指能夠利用來使得向任意內核空間虛擬弟子寫入固定數據的內核程序bug或缺陷。

21.3.2 內核漏洞的研究過程

​ 對於初學者來說(就是俺這樣的),一個內核漏洞的學習過程可以總結爲四個環節:漏洞重現、漏洞分析、漏洞利用和漏洞總結。如圖21.3.5所示,展示了內核漏洞學習過程中四大環節可能涉及的工作。這四個環節環環相扣,每一個環節都很有難度,都值得去研究。只有通過這四個環節的學習和研究,才能不斷地積累內核漏洞的經驗,爲後續的內核漏洞挖掘打下基礎。

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-MctlvMVH-1589363845542)(assets/1589352355735.png)]

​ 漏洞重現環節。需要搭建測試環境,通常爲虛擬機環境;另外需要注意有漏洞的內核或驅動文件的版本,如果版本不對是不可能重現的;還需要確認該漏洞暫時還未打補丁;最後,如果該漏洞有公佈的POC源碼,還需要對POC源碼進行編譯。在漏洞重構先環節中,如果最終重現失敗,不能說明漏洞不存在,如果環境搭建的沒有問題,那可以考慮是否POC源碼有誤,或者該漏洞還依賴於其他條件。因此,建議先進行漏洞分析環節,通過漏洞分析可以加深對漏洞的理解,這樣邊分析邊重現,往往問題就迎刃而解了。從漏洞重現到漏洞分析是一個由表及裏的過程。

​ 漏洞分析環節,是整個漏洞學習的核心環節,如果分不清漏洞的前因後果,那麼漏洞利用也無從入手。漏洞分析其實是一個刨根究底的過程,也可以說是打破砂鍋問到底的過程,只不過是問自己而已。漏洞分析有很多方法,如果有源碼的話可以先對源碼進行白盒分析;如果沒有源碼可以對內核或者驅動PE文件反彙編分析;如果漏洞公佈中有POC源碼的話,還可以對POC源碼進行分析(通過閱讀POC源碼和註釋,可以很快地對該漏洞有一個準確的認識);如果該漏洞的的補丁已經發布了,還可以在打補丁後,提取新版本的內核或驅動文件,通過對比進行分析;另外還可以通過給有漏洞的內核或者驅動文件下斷點進行調試分析;如果能觸發有漏洞的內核或者驅動藍屏,還可以對藍屏後的Memory Dump文件進行藍屏分析。這些方法將在下節中介紹。

​ 漏洞利用環節,是在漏洞分析的基礎上,編寫出能夠利用該漏洞實現特定目標的代碼,並進行測試的過程。對於內核漏洞利用而言,主要有5種目標:特權特升、遠程溢出、本地溢出、遠程DOS和本地DOS。在實際漏洞利用過程中,最終達到的目標不外乎這5種,但是漏洞利用的細節各有不同。

​ 漏洞總結環節,實在完成了漏洞重現、漏洞分析和漏洞利用過程後,回過頭來審視造成該漏洞的根本原因,並提出修補方法的過程。如果把以上環節比喻爲攻擊,那麼漏洞總結必須站在攻擊與防禦的對立面,纔能有所題會和感悟,才能尋求到突破。通過漏洞總結,能夠將學習過程中獲得到的知識昇華爲一種經驗和能力。

​ 以上總結了內核漏洞的學習過程,當積累了一定的知識和經驗就可以去嘗試內核漏洞挖掘。

環境配置

​ 接下來繼續是環境配置,之前驅動開發的時候配好了Win7 64位的調試環境。看了本書的系統應該是xp的,包括後續要復現一下,將Win7 32位的也配置了一下。

https://www.microsoft.com/en-us/download/confirmation.aspx?id=11800 這裏下載WDK 7.1

主要是爲Windows XP 驅動編譯服務的,比較特殊。後續的版本的驅動使用VS編譯即可。

https://pan.baidu.com/s/1dFykgH7?fid=74623461367457 這裏貼出 Windows XP 32的下載地址

https://www.imsdn.cn/operating-systems/windows-7/ 貼出Win7 32位的下載地址

然後後續Win7的環境配置可以看之前的帖子裏提到的,Win Xp的跟着書來就可以了!

明日計劃

內核漏洞利用技術 實驗做起來

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章