Wireshark抓包分析(ARP TCP DNS HTTP)

目录

一、ARP

二、DNS

三、TCP

TCP的总过程:

​TCP三次握手:

 TCP四次挥手:

 四、HTTP


一、ARP

1.ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。

我们要抓ARP 同网段内的访问网关的情况。

先cmd执行 arp -a 命令,从ARP表中查看本网段内有哪些主机

然后 arp -d 清空ARP表

cmd执行 arp -a,验证ARP表已被清空(ARP的自主学习)

2.Ping本网段内任意主机

1)cmd执行下面这条命令获取局域网内所有主机:

命令的意思是:ping 10.200.1.xxx到 10.200.1.255 之间的所有IP,注意将IP地址改成自己的网段。

for /L %i IN (1,1,254) DO ping -w 2 -n 1 10.200.1.%i

ipconfig -all 查看本机IP及MAC地址:

全部ping网段 或者ping网关或某个ip

3.过滤ARP协议的数据包

显示过滤器中输入:arp,过滤ARP协议的数据包。

两个数据包,第一个包是ARP请求包,第二个包是ARP响应包。

先看第一个数据包,源地址(Source字段)是我自己的MAC地址(8d:e4:71)。
目标地址(Destination字段)是 Broadcast,就是广播的意思。
Info 字段,是对当前动作的描述。

总结一下第一个数据包做了什么:
我的电脑,发送了一个广播,广播的内容是 “谁是10.200.1.8?告诉10.200.1.36”
10.200.1.36是我电脑的IP,意思就是:呼叫10.200.1.8,收到请回复我。

第二个数据包的目的地址(Destination 字段)是我电脑的MAC地址

结合 Info 字段的信息,总结一下第二个数据包做了什么:
有个主机,向我的电脑发送了一个信息,信息的内容是 “10.200.1.36 是 c0-25-a5-8d-e4-71”
这个主机把MAC地址告诉了我的电脑。

结论:

ARP地址解析协议就像一个队内语音,他会向局域网内所有主机广播请求,索要目标IP的MAC地址;知道的主机就会响应具体的MAC地址。

4.数据包内容分析

接下来我们根据包的数据分析一下,这两个包是怎么做的:

1)第一个包的数据:

  • 第一处:ARP后面的括号里是 request,说明这是个请求包
  • 第二处:源IP、源MAC、目标IP都有值,目标MAC却全是0,意思就是告诉他们:我不知道这个IP的MAC地址。

2)第二个包的数据:

  • 第一处:ARP后面的括号里是 reply,说明这是个响应包
  • 第二处:源IP、源MAC、目标IP、目标MAC都有值,接收方可以从这里获取IP对应的MAC地址。

5.ARP自主学习

再次使用 arp -a 查看ARP表

可以发现,表中添加了我们刚才 ping 的IP,以及对应的MAC地址,这就是ARP的学习能力:解析成功的MAC地址会被临时缓存,以节约资源。

第六步:再次访问
1)Wireshark开启抓包,重新访问这个主机

2)查看ARP请求包的目的MAC地址

由于是第二次访问,ARP表中已经缓存了MAC地址,所以这次ARP请求不再广播,而是直接从ARP表中获取。

二、DNS

        DNS是一个应用层协议,基于TCP/IP传输,一般的DNS报文传输层是UDP报文。查询的时候一般请求DNS服务器的53端口号。

        启动wireshark,在浏览器输入www.xiaomi.com,访问小米的官网。(ps:网址会自动跳转到www.mi.com,这是因为小米官网做了域名重定向。)

 ping www.xiaomi.com 

 

 请求报文:

172.16.7.1(DNS服务器地址)

响应报文: 

可以看到,经过DNS查询,得到了IP地址123.125.103.192 和111.202.1.202

三、TCP

        传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流传输层通信协议,由IETFRFC 793 [1]  定义。

wireshark数据包详细栏每个字段对应的分层。

TCP的总过程:

TCP三次握手:

TCP三次握手示意图 

 

 

1)第一次握手

可以看到,客户端发起一个SYN请求,初始序列号为0

2)第二次握手

服务端返回SYN+ACK,并且包含服务端的一个初始序列号seq=0,同时返回一个确认号ack=1

 3) 第三次握手

客户端返回一个ACK,并且返回一个确认号ack=1,并且将自己的序列号seq更新为1

  到此,TCP三次握手就结束了。客户端与服务端之间已经成功建立起连接。

 TCP四次挥手:

 TCP四次挥手示意图

 第一次挥手:客户端发起一个FIN,表示客户端希望断开连接。

 第二次挥手:服务端返回一个ACK,表示对客户端断开请求的应答。

 第三次挥手:服务端发起一个FIN,表示服务端希望断开连接。

 第四次挥手:客户端返回一个ACK,表示对服务端断开请求的应答。

 1)第一次挥手

        客户端发起一个FIN请求(表示客户端希望断开连接),

序列号seq=1,应答号ack=1。注意这里的应答是上一次数据通信过程中的应答。

2)第二次

        服务端返回一个ACK(表示对客户端断开请求的应答) 

应答号ack=2,序列号seq=1

 3)第三次挥手

         服务端返回一个ACK(表示对客户端断开请求的应答)+FIN(表示服务端希望发起断开请求)

应答号ack=2,序列号seq=1      

4)第四次挥手

         客户端返回一个ACK(表示对服务端断开请求的应答)

应答号ack=2,序列号seq=2

附:

访问www.xiaomi.com的TCP总过程: 

 四、HTTP

         超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。

HTTP报文由三部分组成,开始行、首部行和实体主体,如图。

在请求报文中,开始行就是请求行。

以超星学习通为例吧:

因为现在大部分网站都是用https加密了。

超星

鲨鱼抓包:

 200的响应码:

小米的 mi.com:

 TLS协议Client Hello

 服务端发出的Server Hello

 到此,TLS的握手过程就结束了,后面可以加密传输消息了。

  • 11
    点赞
  • 79
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用Wireshark抓包分析各种协议的步骤如下: 1. 打开Wireshark软件,选择需要抓包网络接口,点击“开始”按钮开始抓包。 2. 在抓包过程中,可以通过筛选器选择需要分析的协议,比如PPPIPARP、ICMP、DNS、UDP、TCP等。 3. 分析PPPIP协议的步骤: a. 在Wireshark中打开抓包文件,选择“Statistics”菜单下的“Protocol Hierarchy”选项。 b. 在协议分层结构图中,可以看到PPPIP协议的层级结构。 c. 选择PPPIP协议的数据包,可以在“Packet Details”窗口中查看PPPIP协议的详细信息,包括协议头部信息和数据负载。 4. 分析ARP协议的步骤: a. 在Wireshark中打开抓包文件,选择“Statistics”菜单下的“Conversations”选项。 b. 在“Conversations”窗口中选择“ARP”协议,可以查看所有ARP协议的数据包。 c. 选择ARP协议的数据包,可以在“Packet Details”窗口中查看ARP协议的详细信息,包括协议头部信息和数据负载。 5. 分析ICMP协议的步骤: a. 在Wireshark中打开抓包文件,选择“Statistics”菜单下的“Endpoints”选项。 b. 在“Endpoints”窗口中选择“ICMP”协议,可以查看所有ICMP协议的数据包。 c. 选择ICMP协议的数据包,可以在“Packet Details”窗口中查看ICMP协议的详细信息,包括协议头部信息和数据负载。 6. 分析DNS协议的步骤: a. 在Wireshark中打开抓包文件,选择“Statistics”菜单下的“Endpoints”选项。 b. 在“Endpoints”窗口中选择“DNS”协议,可以查看所有DNS协议的数据包。 c. 选择DNS协议的数据包,可以在“Packet Details”窗口中查看DNS协议的详细信息,包括协议头部信息和数据负载。 7. 分析UDP协议的步骤: a. 在Wireshark中打开抓包文件,选择“Statistics”菜单下的“Protocol Hierarchy”选项。 b. 在协议分层结构图中,可以看到UDP协议的层级结构。 c. 选择UDP协议的数据包,可以在“Packet Details”窗口中查看UDP协议的详细信息,包括协议头部信息和数据负载。 8. 分析TCP协议的步骤: a. 在Wireshark中打开抓包文件,选择“Statistics”菜单下的“Protocol Hierarchy”选项。 b. 在协议分层结构图中,可以看到TCP协议的层级结构。 c. 选择TCP协议的数据包,可以在“Packet Details”窗口中查看TCP协议的详细信息,包括协议头部信息和数据负载。 以上就是使用Wireshark抓包分析PPPIPARP、ICMP、DNS、UDP、TCP协议的步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值