写文章 初学Windows内核漏洞利用(一):搭建实验环境

写文章 初学Windows内核漏洞利用(一):搭建实验环境_第1张图片

最近我刚刚开始学习Windows内核漏洞利用,因此决定以博客的形式分享一些我的学习心得。

本部分主要是关于搭建实验环境;接下来的部分我计划介绍一下如何使用Ashfaq Ansari所开发的“HackSys Extreme Vulnerable Driver”(HEVD,项目网址为:hacksysteam/HackSysExtremeVulnerableDriver)来做一些练习。

希望对大家有所帮助!

本文中我所用的环境如下:

·使用Kali Linux作为主机系统(当然,你可以选择你所偏好的任何系统);

·VirtualBox虚拟机软件(下载网址:Oracle VM VirtualBox);

·2台虚拟机,操作系统为Windows 7(32位),且都安装了Virtual Guest Additions工具(译者注:类似于VMware Workstation上的VMTools)——其中一台虚拟机用作调试方,另一台作为被调试方;

·WinDbg调试器(可以在Windows SDK中找到,下载网址:Windows 10 SDK - Windows app development)。

当我们进行用户级的调试时,调试方与被调试方在同一台机器上;而在内核级调试的情况下这不可能,因为我们需要对被调试的操作系统进行完全控制(即,如果我们中断程序执行,整个系统都将冻结)。这就是为什么我们需要两台虚拟机扮演不同的角色。

建立调试方

调试方是指我们用于监视被调试方的机器;因此,我们需要在上面安装WinDbg调试器,并配置符号以解析系统结构。

为了安装WinDbg调试器,我们需要下载Windows SDK(下载网址:Windows 10 SDK - Windows app development);根据Windows系统版本,有时我们还需要安装一些必要的更新。

在安装选项中,必须选择调试工具,如下图所示。

写文章 初学Windows内核漏洞利用(一):搭建实验环境_第2张图片

WinDbg调试器安装后,我们应该添加符号;为此,我们只需要添加一个环境变量“_NT_SYMBOL_PATH”,WinDbg调试器将自动引用该变量。

然后使用能够下载符号的链接为其赋值,如下所示:

Symbol information

完整的变量内容看起来就像这样(含义:下载的符号将存储于C:\Symbols文件夹中):

1

SRV*C:\Symbols*https://msdl.microsoft.com/download/symbols

建立被调试方

我们需要配置被调试方,使其能够被外部控制。为此,我们在启动菜单中添加一个额外选项;当我们以该配置启动系统时,将启用调试功能。

我们需要用到一个工具“bcdedit”。首先,我们将当前设置复制到一个新的选项,比方说名为“Debug me”。具体命令格式如下:

1

bcdedit /copy {current} /d "Debug me"

该命令将返回一个新选项的GUID,我们需要复制并开启该选项的调试功能。具体命令格式如下:

1

bcdedit /debug {MY_GUID} on

最后,我们可以看一下调试接口可用的设置,具体命令如下:

1

bcdedit /dbgsettings

在调试方与被调试方之间建立连接

调试方与被调试方将通过串行端口COM1进行通信,而该串口是通过主机系统上的命名管道仿真实现的。配置非常简单,我们只需要保证调试方与被调试方具有相同的管道命名集合。调试方创建管道,之后被调试方连接已存在的管道(这就是必须先运行调试方的原因)。

我使用Linux系统作为主机系统,因此选择管道名称如下:

1

/tmp/wke_pipe

请注意,如果你使用Windows系统作为主机系统,你的管道名称应该遵循不同的约定,例如:

1

\\.\pipe\wke_pipe

更多内容请参阅网址:Named pipe - Wikipedia

测试连接

万事俱备,现在我们只需要测试环境是否正确运行!首先启动调试方,运行WinDbg,然后让其等待被调试方的连接。例如:

“文件”菜单 -> “内核模式调试”选项,如下图所示。

选择COM作为接口,如下图所示。

写文章 初学Windows内核漏洞利用(一):搭建实验环境_第3张图片

然后我们运行被调试方主机;当确定被调试方连接到管道时,我们可以将其中断。例如:

写文章 初学Windows内核漏洞利用(一):搭建实验环境_第4张图片

被调试方连接上管道,如下图所示。

现在我们可以将其中断,选择“调试”菜单 -> “中断”选项,如下图所示。

写文章 初学Windows内核漏洞利用(一):搭建实验环境_第5张图片

当命令行窗口提示符为“kd”时,代表我们正控制着被调试方,如下图所示。

写文章 初学Windows内核漏洞利用(一):搭建实验环境_第6张图片

此时被调试方被冻结,等待着调试方的命令。通过运行“g”命令,我们可以释放被调试方并使其继续运行,如下图所示。

写文章 初学Windows内核漏洞利用(一):搭建实验环境_第7张图片
写文章 初学Windows内核漏洞利用(一):搭建实验环境_第8张图片

本文由 看雪翻译小组 木无聊偶 编译,来源 hasherezade's 1001 nights

转载请注明来自看雪论坛

你可能感兴趣的:(写文章 初学Windows内核漏洞利用(一):搭建实验环境)