# 10 Fuzzing Windows 驅動
對于 hacker 來說,攻擊 Windows 驅動程序已經不再神秘。
從前,驅動程序常被遠程溢出,而如今驅動漏洞越來越多的用于本地提權。在前面我們使用 Sulley 找出了 WarFTPD 的溢出漏洞。
WarFTPD 在遠程的機器上由一個受限的用戶啟動,我們在遠程溢出它之后,就會獲得一個 受限的權限,這個權限一般是很小的,如果似乎,很多信息都無法獲取,很多服務都訪問不 了。如果這時候我們擁有一個本地驅動的 exploit,那就能夠將權限提升到系統級別,you are god now!
驅動在內核模式下運行,而我們的程序在用戶模式下運行,為了在兩種模式之間進行交 互,就要使用 IOCTLs(input/output controls )。當 IOCTLs 處理代碼有問題的時候,我們就 能利用它獲取系統權限。
接下來,我們首先要介紹下如何通過實現 IOCTLs 來和本地的設備進行聯系,并且嘗試 使用 Immunity 變形 IOCTLs 數據。然后,學會使用 Immunity 提供的 driverlib 庫獲取驅動信 息,以及從一個編譯好的驅動文件中解碼出重要的控制流程,設備名,和 IOCTL 代碼。最 后用從 drivelib 獲得的數據構建測試數據,使用 ioctlizer(我寫的一個驅動 fuzzer)進行一次 driver fuzz。
- 序
- 1 搭建開發環境
- 1.1 操作系統準備
- 1.2 獲取和安裝 Python2.5
- 1.3 配置 Eclipse 和 PyDev
- 2 調試器設計
- 2.1 通用 CPU 寄存器
- 2.2 棧
- 2.3 調試事件
- 2.4 斷點
- 3 自己動手寫一個 windows 調試器
- 3.2 獲得 CPU 寄存器狀態
- 3.3 實現調試事件處理
- 3.4 全能的斷點
- 4 PyDBG---純 PYTHON 調試器
- 4.1 擴展斷點處理
- 4.2 處理訪問違例
- 4.3 進程快照
- 5 IMMUNITY----最好的調試器
- 5.1 安裝 Immunity 調試器
- 5.2 Immunity Debugger 101
- 5.3 Exploit 開發
- 5.4 搞定反調試機制
- 6 HOOKING
- 6.1 用 PyDbg 實現 Soft Hooking
- 6.2 Hard Hooking
- 7 Dll 和代碼注入
- 7.1 創建遠線程
- 7.2 邪惡的代碼
- 8 FUZZING
- 8.1 Bug 的分類
- 8.2 File Fuzzer
- 8.3 改進你的 Fuzzer
- 9 SULLEY
- 9.1 安裝 Sulley
- 9.2 Sulley primitives
- 9.3 獵殺 WarFTPD
- 10 Fuzzing Windows 驅動
- 10.1 驅動通信
- 10.2 用 Immunity fuzzing 驅動
- 10.4 構建 Driver Fuzzer
- 11 IDAPYTHON --- IDA 腳本
- 11.1 安裝 IDAPython
- 11.2 IDAPython 函數
- 11.3 腳本例子
- 12 PyEmu
- 12.1 安裝 PyEmu
- 12.2 PyEmu 一覽
- 12.3 IDAPyEmu