【愚公系列】2022年02月 wireshark系列-数据抓包分析之DHCP协议02

举报
愚公搬代码 发表于 2022/02/28 22:08:41 2022/02/28
【摘要】 一、数据抓包分析之DHCP协议02分析DHCP数据包分析之前,我们先来学习下DHCP报文格式1.DHCP报文格式在DHCP获取IP地址及其他网络配置参数的过程中,DHCP客户端和服务器之间要交换很多的消息报文,这些DHCP报文共有8种类型。每种报文的格式相同,只是某些字段的取值不同。DHCP报文格式如下DHCP报文格式各字段解释如下:op:报文的操作类型。分为请求报文和响应报文,1是请求报...

一、数据抓包分析之DHCP协议02

分析DHCP数据包

分析之前,我们先来学习下DHCP报文格式

1.DHCP报文格式

在DHCP获取IP地址及其他网络配置参数的过程中,DHCP客户端和服务器之间要交换很多的消息报文,这些DHCP报文共有8种类型。每种报文的格式相同,只是某些字段的取值不同。DHCP报文格式如下

DHCP报文格式在这里插入图片描述
各字段解释如下:

op:报文的操作类型。分为请求报文和响应报文,1是请求报文,2是响应报文。具体的报文类型在option字段中标识。

htype:DHCP客户端的硬件地址类型。1表示ethernet地址。

hlen:DHCP客户端的硬件地址长度。ethernet为6。

hops:DHCP报文经过的DHCP中继的数据。初始化为0,报文每经过一个DHCP中继,该字段就会增加1。

xid:客户端发起一次请求时选择的随机数,用来标识一次地址请求过程。

secs:DHCP客户端开始DHCP请求后所经过的时间,目前尚未使用,固定其0。

flags:DHCP服务器响应报文是采用单播还是广播方式发送。只使用第0比特位,0表示采用单播方式,1表示使用广播方式,其他比特保留不用。

ciaddr:DHCP客户端的IP地址。

yiaddr:DHCP服务器分配给客户端的IP地址。

siaddr:DHCP客户端获取IP地址等信息的服务器IP地址。

giaddr:DHCP客户端发出请求报文后经过的第一个DHCP中继的IP地址。

chaddr: DHCP客户端的硬件地址。

sname: DHCP客户端获取IP地址等信息的服务器名称。

file:DHCP服务器为DHCP客户端指定的启动配置文件名称及路径信息。

option:可选变长选项字段,包括报文的类型、有效租期、DNS服务器的IP地址和WINS服务器的IP地址等配置信息。

需要注意的是,上表DHCP报文格式中,每一个字段后的数字表示该字段在报文中占用的字节数。其中,option字段的长度要根据服务器所提供参数的多少而定,是可变的。

2.DHCP报文类型

DHCP有8种类型的报文,每种报文的格式相同,只是报文中的某些字段取值不同。具体如下在这里插入图片描述
介绍完这些知识点后,我们来真正的分析下抓到的数据包。由于获取DHCP的特殊性(实验环境在使用ipconfig /Release后无法连接),实验环境已经有了抓完保存好的数据包,请学习者在自己的机器上抓取,并分析对照。本次实验将介绍下流程中常见的四个格式,其他的,小伙伴学完之后,自己分析是一样的。

3.分析发现数据包

打开dhcp.pcapng包,在Fileter中输入bootp(输入DHCP是无效的),可以看到下面的DHCP协议数据,在这里插入图片描述
在输入"ipconfig /Release"后,会出现DHCP Release数据包。在使用"ipconfig /renew’后,或出现Discover至ACK的数据包。下面,我们来分析DHCP Discover数据包,在这里插入图片描述
其他的协议,我们不做分析,有兴趣的同学,可以看其他的实验,我们来看DHCP协议。

由于Wireshark在处理DHCP时,使用的是BOOTP协议,所以在Packet Detail 面板中看到的是Bootstrap Protocol,而不是DHCP。

Bootstrap Protocol (Discover) 

Message type: Boot Request (1)   #DHCP消息类型,1表示 请求包

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

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

Hops: 0                      #经过DHCP中继数为0

Transaction ID: 0xe007659f      # 事务ID为0xe007659f

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

Bootp flags: 0x0000 (Unicast)     #BOOTP标志字段,此处是单播

    0... .... .... .... = Broadcast flag: Unicast

   .000 0000 0000 0000 = Reserved flags: 0x0000  

Client IP address: 0.0.0.0 (0.0.0.0)                     #客户端IP地址

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

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

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

Client MAC address: 02:00:04:78:01:7b (02:00:04:78:01:7b) #客户端的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消息类型为53 

    Length: 1                                   #长度为1

    DHCP: Discover (1)                          #发现包

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

    Length: 7                                   #长度为7

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

   Client MAC address: 02:00:04:78:01:7b (02:00:04:78:01:7b)    #客户端MAC地址

Option: (50) Requested IP Address                 #请求IP地址

    Length: 4                                                                            #长度为4

    Requested IP Address: 10.1.1.142 (10.1.1.142)      #请求的IP地址

Option: (12) Host Name                #客户端主机名

    Length: 10                   #长度为10

    Host Name: heetian-PC             #主机名为heetian-PC

Option: (60) Vendor class identifier        #供应商类标识符

    Length: 8                      #长度为8

    Vendor class identifier: MSFT 5.0       #供应商标识符为MSFT 5.0

Option: (55) Parameter Request List       #参数请求列表

     Length: 12                   #长度是12

     Parameter Request List Item: (1) Subnet Mask     #子网掩码

     Parameter Request List Item: (15) Domain Name  #域名

     Parameter Request List Item: (3) Router          #路由

     Parameter Request List Item: (6) Domain Name Server #域名服务

     Parameter Request List Item: (44) NetBIOS over TCP/IP Name Server #NetBIOS名称服务

     Parameter Request List Item: (46) NetBIOS over TCP/IP Node Type #NetBIOS节点类型

     Parameter Request List Item: (47) NetBIOS over TCP/IP Scope  #NetBIOS作用范围

     Parameter Request List Item: (31) Perform Router Discover  #完成路由发现

     Parameter Request List Item: (33) Static Route     #静态路由

     Parameter Request List Item: (121) Classless Static Route   #无类静态路由

     Parameter Request List Item: (249) Private/Classless Static Route (Microsoft) #私有静态路由

     Parameter Request List Item: (43) Vendor-Specific Information  #供应商特定信息

Option: (255) End

     Option End: 255

Padding

通过对展开内容的介绍,每条信息的值都可以对应到DHCP报文格式中,如下表

DHCP Discover报文格式在这里插入图片描述
在上表中,填写了DHCP Discover 包的报文信息。在上表中,没有填的内容表示空值,由于该包中的选项值太多了,所以将该部分内容省略了。

4.分析响应数据包

响应数据是dhcp.pcapng包中的第1540帧,如下图,我们来看下,和发现数据包有什么不同。在这里插入图片描述

Bootstrap Protocol (Offer)

Message type: Boot Reply (2)   #DHCP消息类型,2表示 响应包

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

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

Hops: 0                      #经过DHCP中继数为0

Transaction ID: 0xe007659f      # 事务ID为0xe007659f

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

Bootp flags: 0x0000 (Unicast)     #BOOTP标志字段,此处是单播

    0... .... .... .... = Broadcast flag: Unicast

   .000 0000 0000 0000 = Reserved flags: 0x0000  

Client IP address: 0.0.0.0 (0.0.0.0)                     #客户端IP地址

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

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

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

Client MAC address: 02:00:04:78:01:7b (02:00:04:78:01:7b) #客户端的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消息类型为53 

     Length: 1                                   #长度为1

     DHCP: Offer (2)                             #响应包

Option: (54) DHCP Server Identifier                    #DHCP服务标识符

     Length: 4                                      #长度为4

     DHCP Server Identifier: 10.1.1.1 (10.1.1.1)            #DHCP服务标识符

Option: (51) IP Address Lease Time          #IP地址租约的最短时间

     Length: 4                                      #长度为4

     IP Address Lease Time: (4294967295s) infinity   #IP地址租约的最短时间为无限期

Option: (1) Subnet Mask                 #子网掩码

      Length: 4                                      #长度为4

      Subnet Mask: 255.255.255.0 (255.255.255.0)       #子网掩码值是255.255.255.0

Option: (28) Broadcast Address        # 广播地址

      Length: 4                                      #长度为4

      Broadcast Address: 10.1.1.255 (10.1.1.255)   #广播地址值为10.1.1.255

Option: (6) Domain Name Server   #域名服务

      Length: 12                       #长度为12

      Domain Name Server: 10.1.1.1 (10.1.1.1)   #域名服务地址为10.1.1.1

      Domain Name Server: 8.8.8.8 (8.8.8.8)   #域名服务地址为8.8.8.8

      Domain Name Server: 8.8.8.8 (8.8.8.8)  #域名服务地址为8.8.8.8

Option: (3) Router      #路由

      Length: 4

      Router: 10.1.1.1 (10.1.1.1)   #路由器地址为10.1.1.1

Option: (15) Domain Name    #域名

      Length: 17

      Domain Name: cs2cloud.internal #域名为cs2cloud.internal

Option: (43) Vendor-Specific Information  #供应商特定信息

      Length: 7

      Value: 020400000001ff

Option: (60) Vendor class identifier    #供应商类标识符

      Length: 8

      Vendor class identifier: MSFT 5.0

Option: (255) End

      Option End: 255

Padding

通过上面的信息,我们可以清楚的了解到DHCP服务器提供的详细信息。例如,提供给客户端的IP地址为10.1.1.142,DHCP服务标识符是10.1.1.1,子网掩码是255.255.255.0,IP地址的租约是无期限等。这里就不在列举其他的信息了,将每条信息的值对应到DHCP报文中,如下

DHCP Offer报文格式在这里插入图片描述
5.分析请求数据包

下面我们来看下请求数据包,第1541帧在这里插入图片描述

Bootstrap Protocol (Request)

Message type: Boot Request (1)   #DHCP消息类型,1表示 请求包

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

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

Hops: 0                      #经过DHCP中继数为0

Transaction ID: 0xe007659f      # 事务ID为0xe007659f

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

Bootp flags: 0x0000 (Unicast)     #BOOTP标志字段,此处是单播

    0... .... .... .... = Broadcast flag: Unicast

   .000 0000 0000 0000 = Reserved flags: 0x0000  

Client IP address: 0.0.0.0 (0.0.0.0)                     #客户端IP地址

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

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

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

Client MAC address: 02:00:04:78:01:7b (02:00:04:78:01:7b) #客户端的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 (Request)       #DHCP消息类型为53 

     Length: 1                                   #长度为1

     DHCP: Discover (3)                          #请求包

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

     Length: 7                                   #长度为7

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

     Client MAC address: 02:00:04:78:01:7b (02:00:04:78:01:7b)    #客户端MAC地址

Option: (50) Requested IP Address                 #请求IP地址

     Length: 4                                                                            #长度为4

     Requested IP Address: 10.1.1.142 (10.1.1.142)      #请求的IP地址

Option: (54) DHCP Server Identifier           #DHCP服务器标识符

     Length: 4

     DHCP Server Identifier: 10.1.1.1 (10.1.1.1)  #DHCP标识符为10.1.1.1

Option: (12) Host Name                #客户端主机名

     Length: 10                   #长度为10

     Host Name: heetian-PC             #主机名为heetian-PC

Option: (81) Client Fully Qualified Domain Name   #客户端完全合格域名

     Length: 13

     Flags: 0x00              #标志位

     0000 .... = Reserved flags: 0x00               #保留标志位

     .... 0... = Server DDNS: Some server updates    #服务器DDNS

     .... .0.. = Encoding: ASCII encoding       #编码格式

     .... ..0. = Server overrides: No override #服务重写

     .... ...0 = Server: Client

     A-RR result: 0

     PTR-RR result: 0

     Client name: heetian-PC            #客户端名称

Option: (60) Vendor class identifier        #供应商类标识符

      Length: 8                      #长度为8

      Vendor class identifier: MSFT 5.0       #供应商标识符为MSFT 5.0

Option: (55) Parameter Request List       #参数请求列表

      Length: 12                   #长度是12

      Parameter Request List Item: (1) Subnet Mask     #子网掩码

      Parameter Request List Item: (15) Domain Name  #域名

      Parameter Request List Item: (3) Router          #路由

      Parameter Request List Item: (6) Domain Name Server #域名服务

      Parameter Request List Item: (44) NetBIOS over TCP/IP Name Server #NetBIOS名称服务

      Parameter Request List Item: (46) NetBIOS over TCP/IP Node Type #NetBIOS节点类型

      Parameter Request List Item: (47) NetBIOS over TCP/IP Scope  #NetBIOS作用范围

      Parameter Request List Item: (31) Perform Router Discover  #完成路由发现

      Parameter Request List Item: (33) Static Route     #静态路由

      Parameter Request List Item: (121) Classless Static Route   #无类静态路由

      Parameter Request List Item: (249) Private/Classless Static Route (Microsoft) #私有静态路由

      Parameter Request List Item: (43) Vendor-Specific Information  #供应商特定信息

Option: (255) End

      Option End: 255

Padding

通过对展开内容的介绍,每条信息的值都可以对应到DHCP报文中,如下

DHCP Request报文格式

在这里插入图片描述
6.分析确认数据包

确认报文,第1542帧,如下在这里插入图片描述

Bootstrap Protocol (ACK)

Message type: Boot Reply (2)   #DHCP消息类型,2表示 响应包

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

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

Hops: 0                      #经过DHCP中继数为0

Transaction ID: 0xe007659f      # 事务ID为0xe007659f

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

Bootp flags: 0x0000 (Unicast)     #BOOTP标志字段,此处是单播

    0... .... .... .... = Broadcast flag: Unicast

    .000 0000 0000 0000 = Reserved flags: 0x0000  

Client IP address: 0.0.0.0 (0.0.0.0)                     #客户端IP地址

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

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

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

Client MAC address: 02:00:04:78:01:7b (02:00:04:78:01:7b) #客户端的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 (ACK)       #DHCP消息类型为53 

     Length: 1                                   #长度为1

     DHCP: ACK (5)                             #确认包

Option: (54) DHCP Server Identifier                    #DHCP服务标识符

     Length: 4                                      #长度为4

     DHCP Server Identifier: 10.1.1.1 (10.1.1.1)            #DHCP服务标识符

Option: (51) IP Address Lease Time          #IP地址租约的最短时间

     Length: 4                                      #长度为4

     IP Address Lease Time: (4294967295s) infinity   #IP地址租约的最短时间为无限期

Option: (1) Subnet Mask                 #子网掩码

     Length: 4                                      #长度为4

     Subnet Mask: 255.255.255.0 (255.255.255.0)       #子网掩码值是255.255.255.0

Option: (28) Broadcast Address        # 广播地址

     Length: 4                                      #长度为4

     Broadcast Address: 10.1.1.255 (10.1.1.255)   #广播地址值为10.1.1.255

Option: (81) Client Fully Qualified Domain Name   #客户端完全合格域名

     Length: 30

     Flags: 0x03              #标志位

     0000 .... = Reserved flags: 0x00               #保留标志位

     .... 0... = Server DDNS: Some server updates    #服务器DDNS

     .... .0.. = Encoding: ASCII encoding       #编码格式

     .... ..1. = Server overrides: No override #服务重写

     .... ...1 = Server: Client

     A-RR result: 255

     PTR-RR result: 255

     Client name: Client name: win7-64-1.cs2cloud.internal           #客户端名称

Option: (6) Domain Name Server   #域名服务

     Length: 12                       #长度为12

     Domain Name Server: 10.1.1.1 (10.1.1.1)   #域名服务地址为10.1.1.1

     Domain Name Server: 8.8.8.8 (8.8.8.8)   #域名服务地址为8.8.8.8

     Domain Name Server: 8.8.8.8 (8.8.8.8)  #域名服务地址为8.8.8.8

Option: (3) Router      #路由

     Length: 4

     Router: 10.1.1.1 (10.1.1.1)   #路由器地址为10.1.1.1

Option: (15) Domain Name    #域名

     Length: 17

     Domain Name: cs2cloud.internal #域名为cs2cloud.internal

Option: (43) Vendor-Specific Information  #供应商特定信息

     Length: 7

     Value: 020400000001ff

Option: (60) Vendor class identifier    #供应商类标识符

     Length: 8

     Vendor class identifier: MSFT 5.0

Option: (255) End

     Option End: 255

Padding

报文格式表格如下

DHCP ACK报文格式在这里插入图片描述

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。