Ea5ter's Bolg

Wireshark-DHCP流量分析

字数统计: 1.1k阅读时长: 4 min
2018/11/13 Share

动态主机设置协议(英语:Dynamic Host Configuration Protocol,DHCP)是一个局域网的网络协议,使用UDP协议工作,主要有两个用途:

  • 用于内部网或网络服务供应商自动分配IP地址给用户
  • 用于内部网管理员作为对所有计算机作中央管理的手段

(以上摘自维基百科)

DHCP流量产生

打开命令行输入ipconfig/release释放当前IP,主机IP变为0.0.0.0 。在wireshark生成一条Release数据包。

输入ipconfig/renew主机重新获取IP,wireshark生成四条新的数据包,Discover、Offer、Request、ACK。

流量包分析

Release

Release包的UDP报头如下:

首先客户机的68端口与服务器的67端口建立UDP连接,再实现的DHCP。其中服务器的IP 192.168.1.1就是网关

Release数据包如下:

简单介绍下其中各个参数:

Message type: Boot Request (1) #DHCP消息类型,这是一个请求包,所以选项值为1;#

Hardware type: Ethernet (0x01) #硬件类型#

Hardware address length: 6 #硬件地址长度#

Hops: 0 #经过DHCP的中继数量#

Transaction ID: 0x11086465 #事务ID#

Seconds elapsed: 0 #客户端启动时间#

Bootp flags: 0x0000 (Unicast) #BOOTP标志字段#

Client IP address: 192.168.1.107

Your (client) IP address: 0.0.0.0 (0.0.0.0) #自己(客户端)的地址#

Next server IP address: 0.0.0.0 (0.0.0.0) #下一阶段的DHCP服务器地址#

Relay agent IP address: 0.0.0.0 (0.0.0.0) #DHCP中继器的IP地址#

Client MAC address: f4:8e:38:f2:2a:88#客户端的MAC地址#

Client hardware address padding: 00000000000000000000 #客户端硬件地址填充#

Server host name not given #服务器主机名#

Boot file name not given #启动文件名#

Magic cookie: DHCP #与BOOTP兼容#

Option: (53) DHCP Message Type (Discover) #DHCP消息类型#

Option: (61) DHCP Server identifier #服务器标识符#

Option: (61) Client identifier #客户端标识符#

Discover

客户机通过Discover在以太网中广播,来确定DHCP服务器的位置。IP:255.255.255.255表示整个广播域。
通过 Discover 包客户端可以向服务端申请 IP 。

Offer:

服务器在广播域发送Offer,其中在Your (client) IP address中包含了即将发送的IP地址。

Request

当客户机收到了DHCP Offer包以后(如果有多个可用的DHCP服务器,那么可能会收到多个DHCP Offer包),确认有可以和它交互的DHCP服务器存在,于是客户机发送Request数据包,请求分配IP。
此时的源IP和目的IP依然是0.0.0.0和255.255.255.255。

在Requested IP Address中,显示了客户机请求到的IP Address。

Ack:

最终服务端对客户端进行正式确认,并返回 ACK 数据包。

在数据包中包含以下信息,表示将这些资源信息分配给客户端。

Your(client) IP address:分配给客户端的可用IP。

后面有许多项option信息,前两项是DHCP服务器发送的消息类型(ACK)和服务器的身份标识,后面几项是:

Subnet Mask: 客户端端分配到的IP的子网掩码;

Router:路由器

Domain Name Server:DNS,域名服务器

Domain Name:域名

IP Address Lease Time:IP租用期。

关于DHCP攻击

实现这一攻击还在进行中,在这就简单说一下我自己对其的理解。

DHCP攻击又叫做DHCP饥饿攻击。原理是耗尽DHCP服务器所有的IP地址资源,使其无法正常提供地址分配服务。

攻击者在局域网中发送大量伪造的 Discover 包,来消耗DHCP服务器的IP池,进而导致受害者申请不到有效的IP。此时攻击者伪造再一台DHCP服务器提供服务,给客户端分配IP,将客户端的默认网关和DNS都设置成自己的机器,于是便可以对客户端进行中间人攻击。

不过对于这种DHCP攻击方式,只能单向截获从被攻击主机发往互联网的数据,而无法截获从互联网发回给被攻击主机的数据,这是由于DHCP攻击无法去攻击默认网关等网络出口设备,要想真正实现双向截获数据的中间人攻击,还是要通过ARP欺骗等攻击方式。

参考链接

Wireshark分析DHCP:https://blog.csdn.net/qq_24421591/article/details/50936469

Wireshark数据包分析之DHCP协议包解读:http://blog.51cto.com/13444271/2125343

DHCP攻击的实施与防御:http://blog.51cto.com/yttitan/1975137

CATALOG
  1. 1. DHCP流量产生
  2. 2. 流量包分析
    1. 2.1. Release
    2. 2.2. Discover
    3. 2.3. Offer:
    4. 2.4. Request
    5. 2.5. Ack:
  3. 3. 关于DHCP攻击
  4. 4. 参考链接