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 来进行关闭链接的请求

网络安全:WireShark 抓包及常用协议分析相关推荐

  1. (44.1)【APP应用漏洞发现】抓包工具、协议分析、逆向工程

    目录 APP应用漏洞发现 一.抓包工具: 1.1.http/https 1.1.1.Burpsuite: 1.1.2.Charies: 1.1.3.Fiddler: 1.1.4.抓包精灵(安卓): 1 ...

  2. Wireshark抓包及常用过滤方法

    一.抓包 实际遇到组件服务间的报错问题时,通过日志无法快速看出原因,可通过抓包的方式来快速查看接口返回信息及错误提示,使用如下命令可实现对某个端口进行抓包: tcpdump -i any -w /op ...

  3. wireshark抓包使用教程,适合新手

    版本更新至:Wireshark 3.4.5 Wireshark软件安装 Wireshark 3.4.5 绿色便携版(访问密码:1112)(最终支持 Windows XP 或更高版的版本) 如果你是Wi ...

  4. Linux下wireshark抓包验证telnet明文传输密码

    Host-A IP:192.168.56.129 OS:RHEL5.9 32bit Service:telnet-server Host-B IP:192.168.56.128 OS:RHEL5.9 ...

  5. 用wireshark抓包疯狂聊天实验

    文章目录 实验目的 实验环境 软件获取 实验过程 禁用其他网卡 启动疯狂聊天 启动WireShark 数据查看 分析 分析此程序网络连接采用的是哪种协议(TCP.UDP)和什么端口号 解释该程序为何能 ...

  6. Wireshark抓包分析之ICMP协议包

    Wireshark抓包分析之ICMP协议包 一. Wireshark简介:(前身为Ethereal,2006年改名为wireshark) Wireshark 是一个网络封包分析软件.网络封包分析软件的 ...

  7. FTP协议的Wireshark抓包分析

    文章目录 1.理论介绍 2.ftp安装 3.windows上连接ftp服务器 3.1.通过浏览器访问 3.2.通过资源管理器访问 3.3.通过命令行进行访问(本次采用方式,使用主动模式连接) 4.Wi ...

  8. 用wireshark抓包分析TCP协议的三次握手连接、四次握手断开

    用wireshark抓包分析TCP协议的三次握手连接.四次握手断开 一.TCP三次握手图解 二.TCP得四次挥手过程 三.用Fiddler抓包,分析验证一个HTTPS网站的TCP连接过程 一.TCP三 ...

  9. 用Wireshark抓包分析协议 计算机网络

    此篇博客记录使用Wireshark抓包分析协议. 目录 一.DNS 二.分析TCP握手过程 三.TLS报文 四.HTTP协议 五.SMTP 六.ARP 七.RTP 八.RTMP 一.DNS DNS是域 ...

最新文章

  1. Java常量池的大概理解
  2. 【网络安全】如何搭建MySQL恶意服务器读取文件?
  3. Cause: org.postgresql.util.PSQLException: ERROR: column province_id does not exist
  4. 12款优秀的 JavaScript 日历和时间选择控件
  5. 《Unit Testing》1.3 使用覆盖率指标来度量测试套件的好坏
  6. CMakeList.txt中设置一个可变的变量的值(bool)
  7. xposed 修改参数_【Android 原创】2020春节红包第三题Xposed框架Hook的应用
  8. 简单的php代理 Simple PHP Proxy
  9. 解封装(九):av_read_frame和av_seek_frame代码示例分析内存占用和清理情况
  10. java连接数据库的详细步骤?
  11. 计算机唱歌按键学猫叫6,电脑键盘按键的功能介绍(最全的键盘各键及组合键功能说明)...
  12. ArcGis 拓扑检查——缺顶点、悬挂检查代码 C#
  13. 达梦数据库DCA培训总结
  14. 关于ActionForm的一些问题
  15. 四十五、 Redis云平台CacheCloud搭建之二进制文件
  16. 软件测试面试的自我介绍
  17. 脸上长了黄褐斑怎么办
  18. 元宵节要到了,给大家猜几个谜语
  19. STM32开发,串口和PC机通信(串口中断、FIFO机制),安富莱+正点原子程序合并
  20. clickhouse初体验之create insert update select group by

热门文章

  1. 详谈RDMA技术原理和三种实现方式
  2. android校园通代码,Android校园通软件的设计与实现.doc
  3. 怎样使用PDF编辑器从TXT文档新建PDF文档
  4. UI设计需要学多久?学费多少?
  5. C++11 timed_mutex
  6. Linux C/C++网络编程实战-陈硕-笔记10-网络时间同步
  7. 深度剖析Linux内核地址映射机制
  8. 网络基础自学1 | 简要认识计算机网络及互联网发展
  9. Linux存储管理(3)
  10. python开发语音录入_python实现语音录入识别