# 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