一次 DHCP 连接示意:
介绍
DHCP 又称动态主机设置协议,是一个用于 IP 网络的网络协议,使用 <font style="color:#DF2A3F;">UDP</font>
协议工作
在我们的设备连接到网络时,并没有分配 IP 地址等信息,那么我们的设备是如何获取 IP 、默认网关、子网掩码等信息的?这一切都靠 DHCP 协议进行获取
:::info
- DHCP 常用于客户端设备: PC 、手机
- 路由器、服务器等设备通常都是手动配置
:::
在小型 LAN 中,路由器充当 DHCP Server
分析
查看当前信息
C:\Windows\System32>ipconfig /all
以太网适配器 VMware Network Adapter VMnet8:
连接特定的 DNS 后缀 . . . . . . . :
描述. . . . . . . . . . . . . . . : VMware Virtual Ethernet Adapter for VMnet8
物理地址. . . . . . . . . . . . . : 00-50-56-C0-00-08
DHCP 已启用 . . . . . . . . . . . : 是
自动配置已启用. . . . . . . . . . : 是
本地链接 IPv6 地址. . . . . . . . : fe80::a860:21d1:6131:a716%20(首选)
IPv4 地址 . . . . . . . . . . . . : 10.0.173.192(首选)
子网掩码 . . . . . . . . . . . . : 255.255.255.128
获得租约的时间 . . . . . . . . . : 2023年2月24日 8:40:58
租约过期的时间 . . . . . . . . . : 2023年2月24日 20:40:58
默认网关. . . . . . . . . . . . . : fe80::c2b8:e6ff:fe51:3166%20
10.0.173.129
DHCP 服务器 . . . . . . . . . . . : 10.0.173.129
DHCPv6 IAID . . . . . . . . . . . : 106169819
DHCPv6 客户端 DUID . . . . . . . : 00-01-00-01-26-DB-F1-8D-54-05-DB-2B-8F-7B
DNS 服务器 . . . . . . . . . . . : 202.207.177.3
202.207.177.4
114.114.114.114
TCPIP 上的 NetBIOS . . . . . . . : 已启用
- 首选:PC 在上次请求 IP 时从 DHCP 处获取的 IP 地址,在下一次请求中还希望获得的 IP 地址
- 租约时间: 客户端会在租约到期之前释放该地址
- DHCP Server、DNS Server
释放当前 IP 地址
C:\Windows\System32>ipconfig /release
未知适配器 本地连接:
媒体状态 . . . . . . . . . . . . : 媒体已断开连接
连接特定的 DNS 后缀 . . . . . . . :
该命令将会先 DHCP Server 发出请求,请求释放我们当前的 IP 地址
WireShark 分析
获取 IP 地址
C:\Windows\System32>ipconfig /renew
本地链接 IPv6 地址. . . . . . . . : fe80::a860:21d1:6131:a716%20
IPv4 地址 . . . . . . . . . . . . : 10.0.173.192
子网掩码 . . . . . . . . . . . . : 255.255.255.128
默认网关. . . . . . . . . . . . . : fe80::c2b8:e6ff:fe51:3166%20
10.0.173.129
从 DHCP Server 获取 IP 地址涉及四个阶段:
- DHCP Discover : 来自客户端的广播
- DHCP Offer : DHCP Server 发送到客户端,提供客户端使用的 IP 、网关、DNS Server
- DHCP Request : DHCP 客户端发送,告诉服务器使用哪一个 IP 地址,因为可能会有多个返回
- DHCP ACK : 服务器到客户端,确认客户端可以使用请求的 IP 地址,只有当收到这个消息后,客户端才会配置 IP 地址
WireShark 分析
- DHCP Discover
- DHCP Offer
- DHCP Request
- DHCP ACK
DHCP 分析
笔记 | Wireshark 过滤器 |
---|---|
全局搜索 | + dhcp 或者 bootp |
过滤正确的 DHCP 数据包选项对于找到感兴趣的事件至关重要 + “DHCP Request”数据包包含主机名信息 + “DHCP ACK”数据包表示已接受的请求 + “DHCP NAK”数据包代表被拒绝的请求 由于协议的性质,只有“选项 53”(请求类型)具有预定义的静态值。您应该首先过滤数据包类型,然后您可以通过“应用为列”或使用“包含”和“匹配”等高级过滤器来过滤其余选项。 |
+ 要求:dhcp.option.dhcp == 3 + 确认:dhcp.option.dhcp == 5 + 否定:dhcp.option.dhcp == 6 |
“DHCP Request”选项可轻松获取唾手可得的果实: + 选项 12:主机名。 + 选项 50:请求的 IP 地址。 + 选项 51:请求的 IP 租用时间。 + Option 61:客户端的MAC地址。 |
+ dhcp.option.hostname contains “keyword” |
“DHCP ACK”选项用于抓住低垂的果实: + 选项 15:域名。 + 选项 51:分配的 IP 租用时间。 |
+ dhcp.option.domain_name contains “keyword” |
“DHCP NAK”选项用于抓住低垂的果实: + 选项 56:消息(拒绝详细信息/原因)。 |
由于根据情况/情况,消息可能是唯一的,建议阅读消息而不是过滤消息。因此,分析师可以通过了解事件情况来创建更可靠的假设/结果。 |