WEB开发网
开发学院网络安全安全技术 详解如何利用Windows设备驱动 阅读

详解如何利用Windows设备驱动

 2009-02-12 13:55:33 来源:WEB开发网   
核心提示:设备驱动漏洞现在正在增长成为Windows 和其他操作系统安全的主要威胁,这是一个相关的新领域,详解如何利用Windows设备驱动,但是很少有公开的技术文档讲述这个方面,据我所知,Windows 系统使用了两种权限模式(ring0 和ring3),Driver loader在我发布那个简单驱动之前,第一个windows

设备驱动漏洞现在正在增长成为Windows 和其他操作系统安全的主要威胁。这是一个相关的新领域,但是很少有公开的技术文档讲述这个方面。据我所知,第一个windows 设备驱动攻击是由SEC-LABS小组在Win32 Device Drivers Communication Vulnerabilities白皮书中提到的。这个文章公开了一些有用的驱动溢出技术,并且描绘了未来研究的蓝图。

第二个值得一读的文章是Barnaby Jack的文章,叫做“Remote Windows Kernel Exploitation Stepinto the Ring 0”。由于这方面技术文档的缺乏,我决定共享我自己的研究成果。在这个文章中,我将会介绍我的设备驱动攻击技术,提供一些详细的可用技术的细节,包括完整的攻击代码和用于测试的样例驱动的代码。

读者需要拥有IA-32 汇编阅读能力和软件漏洞攻击经验。另外,强烈建议你要去阅读之前提过的两篇白皮书。

实验环境的组建

过程中我使用了我的小型“实验室”:

- 一台1G 内存的电脑;

- 虚拟机软件,比如Vmware;

- windbg 或者softice。我在VMware 中使用第二种,但是它并不怎么稳定;

- IDA 反汇编器;

- 一些软件我会在后面提到。

在虚拟机和主机之间使用pipe 进行远程调试,但是通常其他方式更好一点。如果你想进一步研究驱动的话,这个环境的组建是非常重要的。

用户态代码(软件)在Ring3 模式下运行(它没有访问Ring0 模式的权限),并且不能直接访问操作系统的函数,如果想使用这些函数只能通过call请求他们。这个叫做函数封装。用户模式内存地址是由0x00000000 到0x7FFFFFFF。

Windows 系统使用了两种权限模式(ring0 和ring3)。

Driver loader

在我发布那个简单驱动之前,我们先来简单看下如何加载它。这是实现这个功能的代码:

1 2 3 4 5 6  下一页

Tags:详解 如何 利用

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接