WireShark 常用协议分析
- 1.3 实战:使用 WireShark 对常用协议抓包并分析原理
-
协议分析的时候 我们 关闭混淆模式, 避免一些干扰的数据包存在。
-
1.3.1 常用协议分析 - ARP 协议
- 地址解析协议 (英语:Address Resolution Protocol,缩写:ARP) 是一个通过解析网络层地址来寻找数据链路层地址的 网络传输协议, 它在 IPv4 中极其重要。 ARP 是通过网路地址来定位 MAC 地址。
- Hardware type : Ethernet (1) // 硬件类型,标识链路层协议
- Protocol type : IPv4 (0*0800) // 协议类型,标识网络层协议
- Hardware size : 6 // 硬件地址长度,MAC地址长度,6个字节,48位
- Protocol size : 4 // 协议地址长度,4个字节,IP地址长度32位
- Opcode : request (1) // 操作码的类型,1 表示请求,2 表示响应
- Sender MAC address : Vmware_7f :da :7b ( 00:0c:29:7f:da:7b ) // 原MAC地址
- Sender IP address : 192.168.1.53 // 原IP地址
- Target MAC address : 00:00:00_00:00:00(00:00:00:00:00:00) // 目标MAC
- Target IP address : 192.168…1.1 // 目标IP
- 我们使用 nmap 来基于 ARP协议进行扫描
-
1.3.2 常用协议分析 - ICMP 协议
-
ping -c 1 //发送一个数据包 xuegod.cn
-
下面我们开始分析 ICMP 协议包 :
-
工作过程:
- 本机发送一个 ICMP Echo Request 的包
- 接受方返回一个 ICMP Echo Reply,包含了接受到数据拷贝和一些其他指令
-
-
1.3.3 常用协议分析 - TCP 协议
-
首先是清空数据包然后筛选 tcp 开始抓包
-
我们模拟一下 tcp会话建立, 那 最简单的方式 是什么呢?
- 我们通过 Xshell 远程连接 Kali Linux 就会捕获到完整的 TCP 3次握手的链接。
- 我们通过 Xshell 远程连接 Kali Linux 就会捕获到完整的 TCP 3次握手的链接。
-
“四次挥手”
- 我们分析一下过程,我们在终端输入 EXIT 实际上是我们 Kali 上执行的命令,表示我们 SSHD 的 Server端向客户端发起关闭连接请求。
- 第一次挥手: 服务端发送一个[FIN + ACK],表示自己没有数据要发送了,想断开连接,并进入 FIN_WAIT_1 状态
- 第二次挥手: 客户端受到 FIN 后,知道不会再有数据从服务端传来,发送 ACK 进行确认,确认,确认序号为收到序号 +1(与 SYN 相同,一个 FIN 占用一个序号),客户端进入 CLOSE_WAIT 状态。
- 第三次挥手: 客户端发送 [FIN + ACK] 给对方,表示自己没有数据要发送了,客户端进入 LAST_ACK 状态。然后直接断开 TCP 会话的连接,释放相应的资源。
- 第四次挥手: 服务端收到了客户端的 FIN 信令后,进入 TIME_WAIT 状态,并发送 ACK 确认消息。服务端在 TIME_WAIT 状态下,等待一段时间,没有数据到来,就认为对面已经收到了自己发送的 ACK 并正确关闭了进入 CLOSE 状态,自己也断开了 TCP 连接,释放所有资源。当客户端收到服务端的 ACK 回应后,会进入 CLOSE状态并关闭本端的会话接口,释放相应的资源。
-
-
1.3.4 常用协议分析 - HTTP 协议
-
我们还是筛选 TCP 协议因为 HTTP 是 TCP 的上层协议, 所以我们过滤 TCP 的数据会包含 HTTP 协议的数据包。
-
curl -I baidu.com
-
-