windows kernel exploitation environment setup

Introduction

Windows 内核漏洞利用的环境配置。

Prerequisites

  • VMWare 或者 VirtualBox
  • Windows7 x86 VM

Setting up VM

安装 Windows7 x86 的虚拟机,从微软官网下载 VM download page 将其作为 Debuger。

win7vm

Setting up the Debugger

在 win7 的虚拟机里面安装好 Windows SDK

winsdk.png

安装完后就可以使用 windbg 了,再添加一些 Symbols。添加系统环境变量:

Variable Name: _NT_SYMBOL_PATH
Variable Value: SRV*C:\Symbols*https://msdl.microsoft.com/download/symbols

addsymbol

配置完成后启用调试模式,以管理员身份运行 cmd,执行以下命令:

bcdedit /copy {current} /d "win7dbg"
bcdedit /debug {c2d32060-4071-11e8-aa4d-9bd7a2f7302e} on
bcdedit /dbgsettings

enabledbg

Setting up the debugee

将 Debuger 关掉,点击 Manage -> Clone

clone1

clone2

复制出来将其作为 Debugee。

Setting up the connection

现在配置它们的连接,使用 Serial Port,设置 Debuger 和 Debugee 具有相同的 pipe name,

使用 linux 作为本机需要设置 pipe name 为:

/tmp/dbg

如果使用 windows 作为本机则设置 pipe name 为:

\\.\pipe\wke_pipe

配置 Debuger:

serialport

配置 Debugee 只需将 From: 值改为 client。

然后先打开 Debuger,选择没有 debug enable 的启动项:

bootdbger

开启之后打开 windbg,选择 File -> kernel Debug

kerneldbg

dbgwait

让其等待连接

继续打开 debugee,这次选择 debug enable 的启动项:

bootdbgee

如果设置正确,接下来会连接上 windbg

conned

可以选择 break 按钮获取命令交互:

break

dbg

运行以下命令可以确认符号表是否被正确加载:

!sym noisy
.reload

Reference