[01] HEVD 双机调试环境搭建

0x00 前言

近期开始学习Windows内核漏洞,参考了很多博客和其他资料,决定还是边学习边分享整个分析的过程。新手上路,如有错误,欢迎指正。

整个学习主要以HEVD(HackSysExtremeVulnerableDriver)这个项目为主,它一个存在漏洞的内核的驱动,里面存在多个漏洞,通过ControlCode控制漏洞类型,这个项目的驱动里几乎涵盖了内核可能存在的所有漏洞,从最基础的栈溢出,到池溢出,释放后重用等等类型,是一个非常好的项目。

img

实验环境:Win10专业版+VMware Workstation 15 Pro+Win7 x86 sp1

实验工具:VS2015+Windbg+KmdManager+DbgViewer

0x01 搭建双机调试环境

配环境是真的辛苦,不过丝毫马虎不得,不然影响后面的工作呀。

VMware+win7

首先去官方网站下载VMware产品,按提示安装即可,如需序列码,网上序列号即可。

img

完成后,双击打开,是这样的:

img

接着需要去下载win7镜像,注意区分版本。img

配置虚拟机,当有了镜像和虚拟环境以后,直接参考教程即可,这里不再赘述。

成功启动,又见到了我们熟悉的界面:

img

Windbg

内核调试,离不开Windbg,那么首先需要下载安装SDK,直接官网下载安装即可。

img

安装完成后,需要配置虚拟机和主机串口,进行通信才能进行调试,借鉴前人经验,很快我们就可配置完成。

配置完成后,当我们打开调试模式后,windbg显示如下,及说明配置成功。

img

1
tips:安装完成后,可以保存快照,这样大大加速每次虚拟机开机效率。
编译驱动程序

我们需要安装Visual Studio 2015以及最新的SDK。还要安装Windows驱动程序工具包(WDK)。具体安装步骤可参考教程,安装完成后,下载项目。解压,打开Driver中的HEVD.sln文件,如下:

img

编译前,需要设置项目属性:

右键-属性-C/C++ - 警告等级 设置为等级3(/W3)

​ 将警告视为错误 改为 否(/WX-)

​ -代码生成 -安全检查 改为 禁用安全检查(/GS-)

​ -链接器 - 将连接器警告视为错误 改为 否(/WX:NO)

​ -Driver Settings - Target OS Version 改为Windows 7

然后编译,如下所示,即生成驱动文件。

img

多说一点,我第一次操作时,发现了编译不能成功,出现如下错误:

error : Invalid argument <HEVD.crt> for property .

经过长时间的查找资料,最终发现了解决方案,感谢海歌也疯狂的方法!

0x02 关于工具:

很多人都在用OSRLoader,我个人使用的是KmdManger和DbgViewer,有需要的可以点击下载

提取码:kooc

img

后面将开始对内核常见漏洞类型进行分析和学习,冲鸭!

img