Windows内核安全之配置双机调试

admin 2022年11月15日03:10:48程序逆向评论8 views1773字阅读5分54秒阅读模式

调试是进行研究的一个必经之路,有本书里提到“调试器下无秘密”也说明了调试的重要性,学习的过程就是慢慢积累解决问题的过程。针对内核级别(ring0)的调试则由于调试时会导致内核中断所以会采用配置双机调试与虚拟机辅助的手段来方便调试内核。这里就简单记录下配置过程,当然配置过程或多或少会存在一些坑,因此有必要一一梳理下,对于后续的重新安装配置环境也是一种参照。

双机调试的环境的物理机为Windows10,可以在应用商店直接安装Windbg Preview为调试做好准备,如下。

Windows内核安全之配置双机调试

利用系统环境变量设置符号服务器,Windbg Preview可以不用设置微软公共符号服务器地址也可以自行下载微软的符号。(也许是现在没有被墙了,记得2019年下半年的时候突然就访问不了,比较麻烦还需要设置代理网络才能下载到符号),地址为https://msdl.microsoft.com/download/symbols。

Windows内核安全之配置双机调试

Win7环境双机内核调试

虚拟机安装的宿主机Win7开启关闭数字签名验证与测试模式,如下。

Windows内核安全之配置双机调试

接着在虚拟机设置中配置串行端口,命名管道:\.pipecom1,注意这里需要重启下Win7系统,虚拟机设置才能生效。

Windows内核安全之配置双机调试

设置系统为调试模式,以管理员身份运行DOS控制台在控制台中依次输入以下命令:

bcdedit /copy {current} /d "Win7-双机调试模式"    // 这是系统副本的名字,任意即可

bcdedit /timeout 10

Windows内核安全之配置双机调试

Windows内核安全之配置双机调试

重启后成功,如下。

Windows内核安全之配置双机调试

使用管理员权限打开Windbg Preview,如下。

Windows内核安全之配置双机调试

点击Break会中断下来,如下表示成功中断了内核。

Windows内核安全之配置双机调试

命令g表示运行,如下。

Windows内核安全之配置双机调试

调试之前编写的样例驱动程序,首先创建服务,但不启动。

Windows内核安全之配置双机调试

因为已经复制样例驱动的pdb文件至Win7系统里,命中后会自动出现源代码窗口,如果未出现源代码窗口需要重置加载对应的pdb文件,如下。

Windows内核安全之配置双机调试

Windows内核安全之配置双机调试

调试器配置信息如下:

Windows内核安全之配置双机调试

Windows 10 1909配置双机内核调试

调试驱动由于微软的安全机制导致需要使用测试签名,请在编译驱动的时候设置测试签名选项(需要VS中进行配置)。然后在执行的系统中以管理员模式打开cmd,执行下面指令,然后重启电脑:

允许测试签名的指令:bcdedit /set testsigning on

允许调试:bcdedit /debug on

重启后右下角会有测试模式的标识

如果要恢复成禁止测试签名的状态,就运行下面的指令:

禁止测试签名的指令:bcdedit /set testsigning off

禁止调试:bcdedit /debug off

目前采用网络调试配置,使用网络调试比串口调试速度要快些。

首先保证两个机器互联(能ping通,如果不行的话需要配置下防火墙)

打开内核调试:bcdedit /debug on

允许测试签名的指令:bcdedit /set testsigning on

设置网络接口调试:bcdedit /dbgsettings net hostip:w.x.y.z port:n key:1.2.3.4

w.x.y.z是host的ip,host指运行windbg的那个机器

port是target上开通的调试端口,不被占用就行,例如50001

key是一个四个数字,用点号隔开。例如1.2.3.4

然后需要查询一下网卡的pci地址(Powershell执行)

Get-NetAdapterHardwareInfo -InterfaceDescription *Intel* | select Name, InterfaceDescription, DeviceType, Busnumber, Devicenumber, Functionnumber | FL

然后:bcdedit /set "{dbgsettings}" busparams b.d.f

其中b是bus号,d是device号,f是function号,按照上面查询到的结果填。例如这里填0.31.6

设置完毕,重启。查网卡设置busparams这一步不做可能也可以。

Windows内核安全之配置双机调试

在Windbg Preview进行网络调试配置,之后连接成功,如果不行的话,还需要重启下虚拟机内的待调试系统。

Windows内核安全之配置双机调试

Windows内核安全之配置双机调试

可以中断看看效果,如下表明中断成功可以正常调试,如果中断不成可能会因为符号文件下载未能完成导致,需要查看网络情况或者等待符号下载完毕。

Windows内核安全之配置双机调试

原文始发于微信公众号(OnionSec):Windows内核安全之配置双机调试

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年11月15日03:10:48
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  Windows内核安全之配置双机调试 http://cn-sec.com/archives/1409758.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: