0


网络安全:WireShark 抓包及常用协议分析

WireShark 抓包及常用协议分析

在这里插入图片描述打开kali终端进入wireshark
在这里插入图片描述进入到wireshark点击选项

在这里插入图片描述勾选选项混杂模式开始抓包
在这里插入图片描述
进入终端打开火狐,打开百度进行抓包

在这里插入图片描述在这里插入图片描述这时我们抓到了很多类型的数据包

在这里插入图片描述上方的过滤器可以指定类型数据宝或者指定源地址目标地址等等,例如现在抓取arp协议的数据包

在这里插入图片描述我们ping一个地址
在这里插入图片描述我们可以用语法对源地址和目标地址进行过滤,ip.src_host代表源地址,ip.dst_host代表目标地址

在这里插入图片描述

使用 WireShark 对常用协议抓包并分析原理

1.ARP

地址解析协议 是一个解析网络层地址来找寻数据链路层地址的网络传输协议,ARP通过网络地址来定位MAC地址

开始过滤arp

在这里插入图片描述我们用nmap来基于arp协议进行扫描

在这里插入图片描述回到wireshark中我们选择第一个抓到的arp协议数据包进行分析

在这里插入图片描述
1.Address Resolution Protocol (request) //ARP地址解析协议 request请求包

2.Harfware type:Ethernet (1) //硬件类型

3.Protocol type:IPv4 (0x0800) //协议类型

4.Hardware size:6 //硬件地址

5.Protocol size:4 //协议长度

6.Opcode:request (1) //操作码 1表示请求包

7.Sender MAC address:VMware_91:59:6a (00:0c:29:91:59:6a) //源MAC地址

8.Sender IP address:192.168.91.132 //源IP地址

9.Target MAC address:00:00:00_00:00:00 (00:00:00_00:00:00) //目标MAC地址

10.Target IP address:192.168.91.2 //目标IP地址

下面分析下一个ARP应答数据包

在这里插入图片描述
1.Address Resolution Protocol (reply) //ARP地址解析协议 reply回复包

2.Harfware type:Ethernet (1) //硬件类型

3.Protocol type:IPv4 (0x0800) //协议类型

4.Hardware size:6 //硬件地址

5.Protocol size:4 //协议长度

6.Opcode:request (2) //操作码 2表示回复包

7.Sender MAC address:VMware_ff:2a:74 (00:50:56:ff:2a:74) //源MAC地址

8.Sender IP address:192.168.91.2 //源IP地址

9.Target MAC address:VMware_91:59:6a (00:0c:29:91:59:6a) //目标MAC地址

10.Target IP address:192.168.91.132 //目标IP地址

在这里插入图片描述通过图片很好理解,192.168.91.132发出广播发出arp请求,请求192.168.91.2的MAC地址,然后192.168.91.2收到请求后,回复给192.168.91.132自己的MAC地址

2.ICMP

ping一个IP地址,然后过滤ICMP协议的数据包

在这里插入图片描述
在这里插入图片描述在这里插入图片描述1.Type:8
//协议类型8
2.Code:0
//代码0 表示回显请求(ping请求)
3.Checksum: 0xb151 [correct]
//检验和 用于检查错误数据
4.[Checksum Status: Good]
//检验状态 Good
5.Identifier (BE): 34896 (0x8850)

6.Identifier (LE): 20616 (0x5088)
//ID值 在应答包中返回该字段
7.Sequence Number (BE): 1 (0x0001)

8.Sequence Number (LE): 256 (0x0100)
//序列号依旧在应答包中返回该字段
9.Response frame:4
//响应帧的序列号:7
10.Data (48 bytes)
//填充数据 共48字节

在这里插入图片描述应答包同理

3.tcp

模拟tcp会话建立,简单的方式就是利用Xshell远程连接kali,就会捕获到tcp的三次握手

在这里插入图片描述
在这里插入图片描述
下面我们分析TCP的数据包
TCP协议的核心概念无非就是三次握手四次挥手,我们先来看三次握手

在这里插入图片描述1.Source Port: 49164
//源端口
2.Destination Port: 22
//目的端口
3.Sequence Number: 0 (relative sequence number)
//序列号
4.Sequence Number (raw): 328436414
[Next Sequence Number: 1 (relative sequence number)]
//确认序列号
5.1000 . . . . =Header Length: 32 bytes (8)
//头部长度
6.Flags: 0x002 (SYN)
//标志位SYN
7.Window: 64240
//windows窗口大小
8.Checksum: 0xddd4 [unverified]
[Checksum Status: unverified]
//校验和

打开标志位查看详细信息

在这里插入图片描述从以上信息可以看出这是一个SYN数据包,SYN=1 表示发送一个链接请求,这时seq和ACK都为0

第二个数据包

在这里插入图片描述不同的是序列号 seq=0 ACK=1

标志位SYN/ACK 表示这是TCP三次握手的第二个数据包

在这里插入图片描述服务端收到SYN连接请求返回数据包SYN=1,ACK=1 表示回应第一个包

下面看第三个数据包

在这里插入图片描述可以看到seq=1 等于上一帧的确认序列号

在这里插入图片描述ACK=1 确认序列号有效
这样三次握手的过程就结束了
我们可以生成一个图表来观察数据交互的过程

在这里插入图片描述点击流量图

在这里插入图片描述灰色的那三个就是三次握手
我们清空一下数据包看一下断开链接时什么样的过程

在这里插入图片描述找到最下面灰色的部分

在这里插入图片描述这时我们直接来看流量图更直观一些

在这里插入图片描述

我们分析一下过程,我们在终端输入 EXIT 实际上是在我们 Kali 上执行的命令,表示我们 SSHD 的
Server 端向客户端发起关闭链接请求。
第一次挥手:服务端发送一个[FIN+ACK],表示自己没有数据要发送了,想断开连接,并进入
FIN_WAIT_1 状态
第二次挥手:客户端收到 FIN 后,知道不会再有数据从服务端传来,发送 ACK 进行确认,确认序号
为收到序号+1(与 SYN 相同,一个 FIN 占用一个序号),客户端进入 CLOSE_WAIT 状态。
第三次挥手:客户端发送 [FIN+ACK] 给对方,表示自己没有数据要发送了,客户端进入
LAST_ACK 状态,然后直接断开 TCP 会话的连接,释放相应的资源。

第四次挥手:服务户端收到了客户端的 FIN 信令后,进入 TIMED_WAIT 状态,并发送 ACK 确认消
息。服务端在 TIMED_WAIT 状态下,等待一段时间,没有数据到来,就认为对面已经收到了自己发送的
ACK 并正确关闭了进入 CLOSE 状态,自己也断开了 TCP 连接,释放所有资源。当客户端收到服务端的
ACK 回应后,会进入 CLOSE 状态并关闭本端的会话接口,释放相应资源。

4.HTTP

直接过滤TCP协议,因为HTTP协议是TCP的上层协议

在这里插入图片描述
在这里插入图片描述前面三个和后面四个是tcp的三次握手四次挥手,中间的4到7是http请求部分

在这里插入图片描述第一步:我们我们发送了一个 HTTP 的 HEAD 请求
第二步:服务器收到我们的请求返回了一个 Seq/ACK 进行确认
第三步:服务器将 HTTP 的头部信息返回给我们客户端 状态码为 200 表示页面正常
第四步:客户端收到服务器返回的头部信息向服务器发送 Seq/ACK 进行确认
发送完成之后客户端就会发送 FIN/ACK 来进行关闭链接的请求


本文转载自: https://blog.csdn.net/weixin_46035615/article/details/124107482
版权归原作者 White boy& 所有, 如有侵权,请联系我们删除。

“网络安全:WireShark 抓包及常用协议分析”的评论:

还没有评论