windbg使用网线(kdnet)联调机器如何配置

调试环境搭建
用网线把目标机器和主机直连 ,并且手动为它们的有线网卡配制IP地址,且主机和目标机器IP地址必须
ipv4格式。
要求:被调试的目标机器必须是win8或是Windows Server 2012及以上系统( win8 system32 目录下有个 kdnet.dll ,正是这个库支持的网络调试

目标机器必须网卡支持才能进行网络内核调试,查询是否支持的方法
打开设备管理器,找着网络适配器,找着本地的有线网卡右键属性然后选中详细信息选项卡,再在其属性
下拉列表框中选择硬件id,然后在   https://msdn.microsoft.com/zh- cn/library/windows/hardware/dn337010.aspx 上查询该网卡是否支持网络内核调试。




设置目标机器步骤
1 、在CMD下,以管理员权限分别执行命令
bcdedit /debug on
bcdedit /dbgsettings net hostip:w.x.y.z port:n
w.x.y.z为调试端的IP地址,n为调试端的端口号.
端口号应从动态和/或私有端口(Dynamic and/or Private Ports):端口号从49152到65535中选择一个未被占用的端口。
可在cmd中netstat -ano枚举端口后查看空闲端口,也可以netstat -aon | findstr 50000直接查看某个指定端口是否被占用。
如果执行第一条命令失败且提示信息为尝试修改调试程序设置出错,可能是UEFI启动方式。该值受安全引导策略保 护,无法进行
改或删除。解决办法是进入BIOS中,把“secure boot”设为“disable” .
2 、此时会生成一个key,在你网络调试中需要用到该key,所以把该值保存下来。当然该key也可 以指定Key,方法如下:
      bcdedit /dbgsettings net hostip: w.x.y.z port: n key: Key
     key格式为:X.Y.Z.Q        其中X Y Z Q 必须为数字和字母的组合不可以由特殊符号
3   bcdedit /set testsigning on
4、 bcdedit /set "{dbgsettings}" busparams b.d.f
b d f是在设备管理器中,选中网络适配器找到你要使用的有线网卡,然后在常规选项卡中,   那个位置里b
为PCI总线,d为设备,f为功能。


4 、然后重启目标机器


主机端的话打开windbg,在File菜单下选择Kernel Debugging,然后切换到NET选项卡,正确填写端口号
和key的值点确定即可。
 如果windbg输出“KDNET protocol version unsupported.  You may need to upgrade your  
 debugger.”说明你用的windbg版本太低,需要用更新的版本。

最后一点 windbg连接的时间稍微有点长耐心等待即可。




备注:1.端口分类
(1)公认端口(Well Known Ports):这类端口也常称之为"常用端口"。这类端口的端口号从0到1024,它们紧密绑定于一些特定的服务。通常这些端口的通信明确表明了某种服务的协议,这种端口是不可再重新定义它的作用对象。例如: 80端口实际上总是HTTP通信所使用的,而23号端口则是Telnet服务专用的。这些端口通常不会像木马这样的黑客程序利用。为了使大家对这些常用端口多一些认识,在本章后面将详细把这些端口所对面应的服务进行列表,供各位理解和参考。
(2) 注册端口(Registered Ports):端口号从1025到49151。它们松散地绑定于一些服务。也是说有许多服务绑定于这些端口,这些端口同样用于许多其他目的。这些端口多数没有明确的定义服务对象,不同程序可根据实际需要自己定义,如后面要介绍的远程控制软件和木马程序中都会有这些端口的定义的。记住这些常见的程序端口在木马程序的防护和查杀上是非常有必要的。常见木马所使用的端口在后面将有详细的列表。
(3) 动态和/或私有端口(Dynamic and/or Private Ports):端口号从49152到65535搜索。理论上,不应把常用服务分配在这些端口上。实际上,有些较为特殊的程序,特别是一些木马程序就非常喜欢用这些端口,因为这些端口常常不被引起注意,容易隐蔽。
如果根据所提供的 服务方式的不同,端口又可分为" TCP协议端口"和" UDP协议端口"两种。因为计算机之间相互通信一般采用这两种通信协议。前面所介绍的"连接方式"是一种直接与接收方进行的连接,发送信息以后,可以确认信息是否到达,这种方式大多采用 TCP协议;另一种是不是直接与接收方进行连接,只管把信息放在网上发出去,而不管信息是否到达,也就是前面所介绍的"无连接方式"。这种方式大多采用 UDP协议IP协议也是一种无连接方式。对应使用以上这两种通信协议的服务所提供的端口,也就分为" TCP协议端口"和" UDP协议端口"。
参考资料:https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/setting-up-a-network-debugging-connection(官方文档强烈推家,网上很多方法都是翻译的这个)
https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/setting-up-a-network-debugging-connection

版权声明:本文为a3125504x原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。