Wireshark基本使用

本文会对Wireshark做简单介绍,带大家熟悉一下Wireshark的界面,以及如何使用过滤器。

接着会带大家查看TCP五层模型下,带大家回顾各层首部的格式。

最后会演示 Wireshark 如何抓取三次握手和四次挥手包的过程。

目录

一.Wireshark简介

二. 界面介绍

三. 过滤器

1. 捕获过滤器

2. 显示过滤器

四. 保存流量包

五. 协议数据包详解

1. 物理层

2. 数据链路层

3. 网络层

 4. 传输层

三次握手

四次挥手


一.Wireshark简介

大家可能之前用过 BurpSuite,Wireshark和它相比有哪些区别呢?

Burpsuite 只是抓的应用层数据包,而 Wireshark 七层网络模型都能抓。

不过Wireshark不是入侵检测系统,对于网络上的异常流量,Wireshark不会警示或提示。

且无法对流量包进行更改,只能查看流量包。

下载地址:Wireshark · Download


二. 界面介绍

共分为五大块:菜单栏,工具栏,显示过滤器,捕获过滤器和网卡模块。

显示过滤器是对抓到的包进行过滤;

捕获过滤器是提前设置好想抓的对象。

抓包界面也分三大块:

从上到下分别是数据包列表,数据包的详细信息和详细信息十六进制表示。

在编辑-首选项-外观,也可以按自己习惯修改布局。


三. 过滤器

功能列表不可能一一介绍完,这里介绍最重要的过滤器。

1. 捕获过滤器

前面说过,捕获过滤器是提前设置好捕获的对象

点击捕获-选项:

这里的混杂模式 是指不仅抓本机MAC地址的包,所有经过网卡的包都会捕获。

捕获过滤器就在下方的框内输入即可

比如想捕获端口为443的包:输入 port 443

还有很多选项,比如

地址:host、src、dst      协议:ip、tcp、http、ftp

如查找目的地址为本机且协议是tcp的包:dst 127.0.0.1 && tcp

这里再举些例子: 

src host 192.168.2.11 && dst port 80 #抓取源地址为192.168.2.11,并且目的端口为80
的流量
host 192.168.2.11 || host 192.168.2.22 #抓取192.168.2.11或者192.168.2.22的流量
数据
!broadcast #不抓取广播包
src ether host 98:1a:35:98:09:6f #抓取源mac地址为98:1a:35:98:09:6f的数据包

2. 显示过滤器

显示过滤器是对抓完的包再进行过滤

这里也列出一些例子:

http、tcp #按照协议搜索
ip.src_host=192.168.2.16 #src_host按照源ip地址进行搜索
ip.src_host=192.168.2.16 or ip.dst_host=192.168.2.1 # dst_host是目标主机ip地址
tcp.flags.ack == 0 and tcp.flags.syn == 1 # 这是过滤出,tcp请求中ack标记为0,syn标记为1的包
ip.addr=192.168.2.33 # 是要ip地址为192.168.2.33的全部展示出来,不管是目标地址还是源地址。
tcp.srcport == 443 # 源端口为443的数据包
not arp # 不获取arp数据
tcp.port == 443 # 过滤端口443的数据包

这里还有一种过滤器选择方法:

我们选择一项右击,选择作为过滤器应用,也可以进行显示过滤。


四. 保存流量包

比如我们想导出特定几个流量包,怎么导出呢?

选中我们要标记的包右键标记或者 Ctrl + M

再点击 文件 - 导出特定分组,选择最下面的 Marked packets only


五. 协议数据包详解

OSI 七层模型和 TCP/IP 五层模型相信大家并不陌生:

Wireshark 呈现出的方式是五层模型方式:

我们依次来看一下:

1. 物理层

2. 数据链路层

数据链路层抓的是以太网MAC帧,格式如下:

细心的同学会发现,为什么Wireshark这个没有FCS字段

因为 Wireshark 抓取的MAC帧直接丢掉了帧尾,默认丢弃了这个校验字段。

3. 网络层

IP层咱先回顾一下IP首部字段:

再来对比看一下:

 4. 传输层

传输层协议主要是TCP和UDP,我们这里先看TCP:

对应看下包:这里的1000就是数据偏移,保留位是 ....

数据偏移其实就是表示这个TCP的首部长度,以4B为单位,所以为32B

标志位字段展开就是六个标志

各个标志位的含义如下:

--------------------------------------------------------------------------------------------------------------------------------

下面演示三次握手和四次挥手的抓包过程:

三次握手

首先看下三次握手的过程图:

具体的三次握手细节可以看 湖科大计网

实验过程如下:

我们随便访问一个网站,通过 源地址、目标地址和info 能找到三次握手的包

也可以设置显示过滤器为 tcp.flags.syn == 1 进行查找

然后存储下来,我们来进行分析:

第一个包,开始时服务器端处于监听状态,客户端发送TCP连接请求报文段

并设置 seq=x,SYN=1,进入 SYN-SENT 状态

---------------------------------------------------------------------------------------------------------------------------------

第二个包,服务器端接收到后,向客户端发送确认消息

设置 SYN=1,ACK=1,seq=y,ack=x+1,并进入 SYN-RCVD 状态

---------------------------------------------------------------------------------------------------------------------------------

第三个包,客户端收到后,向服务器端发送TCP确认报文段表示收到

设置 ACK=1,seq=x+1,ack=y+1,进入 ESTABLISHED 状态

最后,服务器收到确认请求,就知道可以进行通信了,也进入 ESTABLISHED 状态。

四次挥手

四次挥手的过程图:

实验过程如下:

我们搜索 tcp.flags.fin == 1

搜到两条先标记,然后搜 tcp.flags,就能找到四次挥手的四个包了,标记保存。

第一个包,客户端向服务器发送FIN请求,并确认收到之前的数据

设置 FIN=1,ACK=1,seq=u,ack=v,并进入终止等待1状态

---------------------------------------------------------------------------------------------------------------------------------

第二个包, 服务器收到客户端的包,返回确认包

设置 ACK=1,seq=v,ack=u+1,服务器端进入关闭等待状态,客户端进入终止等待2状态

---------------------------------------------------------------------------------------------------------------------------------

第三个包,主要是为了防止第二包发完后,服务器端还有数据要发送给客户端

发送完后,服务器端也告知客户端自己要请求断开连接,并确认收到了之前的数据包

设置 FIN=1,ACK=1,seq=w,ack=u+1,服务器端进入最后确认状态

---------------------------------------------------------------------------------------------------------------------------------

第四个包,客户端确认收到服务器端的释放请求

设置 ACK=1,seq=u+1,ack=w+1,客户端进入时间等待状态,因为怕服务器端没收到这个确认包。客户端等待2MSL看服务器端是否会超时重传,没反应就进入关闭状态。

感谢你能看到这 o(* ̄▽ ̄*)ブ

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/82170.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

加速项目落地(Trae编辑器)

目录 vscode安装python支持 vscode常用插件 Trae编辑器 两个界面合成 补充(QT开发的繁琐) AI编程哪家强?Cursor、Trae深度对比,超详细! - 知乎 Trae兼容vscode的插件,我们可以先在vscode里面装好再一…

stable diffusion的attention-map:提取和可视化跨注意力图

项目: wooyeolbaek/attention-map-diffusers: 🚀 Cross attention map tools for huggingface/diffusers 参考:【可视化必备技能(1)】SD / Flux 文生图模型的 Attention Map 可视化-CSDN博客

多环串级PID

文章目录 为什么要多环程序主函数内环外环 双环PID调参内环Kp调法Ki调法 外环Kp 以一定速度到达指定位置封装 为什么要多环 单环只能单一控制速度或者位置,如果想要同时控制多个量如速度,位置,角度,就需要多个PID 速度环一般PI…

基于Kubernetes的Apache Pulsar云原生架构解析与集群部署指南(上)

#作者:闫乾苓 文章目录 概念和架构概述主要特点消息传递核心概念Pulsar 的消息模型Pulsar 的消息存储与分发Pulsar 的高级特性架构BrokerBookKeeperZooKeeper 概念和架构 概述 Pulsar 是一个多租户、高性能的服务器到服务器消息传递解决方案。Pulsar 最初由雅虎开…

电子电气架构 --- 如何有助于提安全性并减少事故

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 钝感力的“钝”,不是木讷、迟钝,而是直面困境的韧劲和耐力,是面对外界噪音的通透淡然。 生活中有两种人,一种人格外在意别人的眼光;另一种人无论…

rest_framework学习之认证 权限

权限 DRF提供如下几种常见权限: IsAuthenticated, 认证通过 IsAdminUser, 管理员权限 IsAuthenticatedOrReadOnly, 登录用户增删改 非登录用户只能查询 AllowAny,无需认证(默认) 在rest_framework的APIView基础类中&#xf…

【使用switch结构输出季节】2021-11-23

缘由用switch语句设计程序一年有12个月-编程语言-CSDN问答 void 使用switch结构输出季节(int y) {//缘由https://ask.csdn.net/questions/7577096?spm1005.2025.3001.5141std::cout << y << "\t";switch (y){case 3: case 4: case 5:std::cout <<…

主备Smart Link + Monitor Link组网技术详细配置

1.实验拓扑 2.使用设备 eNSP模拟建议下行设备三台使用S3700模拟&#xff08;全部使用S5700可能会出现流量丢失等异常问题。&#xff09; 3.实验配置 [SW1]dis cu # sysname SW1 # vlan batch 100 110 # interface Ethernet0/0/1port link-type accessport default vlan 100 …

【hadoop】案例:Sqoop迁移仓库数据

1 数据导出&#xff1a;Hive导入MySQL [hadoophadoop1 sqoop]$ bin/sqoop export \ > --connect jdbc:mysql://localhost/weather \ > --username root \ > --password 123456 \ > --table mean_temperature \ > --export-dir /user/hive/warehouse/mydb/mean…

Mysql-OCP PPT课程讲解并翻译

#跳过介绍&#xff0c;直接从干货开始记录 第一章 安装mysql

springboot+vue实现在线网盘(云盘)系统

今天教大家如何设计一个网盘&#xff08;云盘&#xff09;系统系统 , 基于目前主流的技术&#xff1a;前端vue&#xff0c;后端springboot。 同时还带来的项目的部署教程。 视频演示 springbootvue实现在线网盘&#xff08;云盘&#xff09;系统 图片演示 一. 系统概述 用过百…

JAVA:Spring Boot 集成 Lua 的技术博客

1、简述 在现代开发中,Lua 以其轻量级、高性能以及易嵌入的特点广泛用于脚本扩展、游戏开发以及配置处理场景。将 Lua 与 Spring Boot 集成,可以在 Java 项目中实现动态脚本功能,增强项目的灵活性和动态配置能力。 样例代码: https://gitee.com/lhdxhl/springboot-example…

uniapp-商城-43-shop 后台管理 页面

后台管理较为简单&#xff0c;主要用于后台数据的管理&#xff0c;包含商品类别和商品信息&#xff0c;其实还可以扩展到管理用户等等 1、后台首页 包含 分类管理 商品管理 关于商家等几个栏目 主要代码&#xff1a; <template><view class"manage">…

食物数据分析系统vue+flask

食物数据分析系统 项目概述 食物数据分析系统是一个集食物营养成分查询、对比分析和数据可视化于一体的Web应用。系统采用前后端分离架构&#xff0c;为用户提供食物营养信息检索、食物对比和营养分析等功能&#xff0c;帮助用户了解食物的营养成分&#xff0c;做出更健康的饮…

学习基本乐理知识

本文主要内容 如何练习吉他 乐理知识补充 ps&#xff1a;本文知识均来自up主 ‘吉他大学霸’ 感谢开源 -^- 练习吉他步骤 打怪升级 右手--> 左手--> 音阶--> 拓展 第一阶段&#xff1a; 追求手脚配合不出错、手姿势不出错、手不会按错弹错。连续不错的遍数达标就可以进…

吊球技术(劈吊、滑板等)

羽毛球吊球技术&#xff08;劈吊、滑板等&#xff09;是单打和双打中重要的得分手段&#xff0c;需要通过系统性练习掌握。以下是分步骤的详细训练方法&#xff1a; 一、核心技术原理对比 技术类型击球点拍面控制发力特点适用场景正手劈吊高点偏前斜切&#xff08;拍面45&…

Java实现桶排序算法

1. 桶排序原理图解 桶排序是一种基于分桶思想的非比较排序算法&#xff0c;适用于数据分布较为均匀的场景。其核心思想是将数据分散到有限数量的“桶”中&#xff0c;每个桶再分别进行排序&#xff08;通常使用插入排序或其他简单的排序算法&#xff09;。以下是桶排序的步骤&a…

OpenCv实战笔记(3)基于opencv实现调用摄像头并实时显示画面

一、实现效果 二、实现原理 使用 OpenCV 打开摄像头&#xff0c;持续捕获视频帧&#xff0c;并在一个窗口中实时显示这些帧&#xff0c;直到用户按下 ESC 键退出。整体流程&#xff1a;打开摄像头&#xff08;cv::VideoCapture&#xff09;>创建图像显示窗口&#xff08;cv…

编译原理头歌实验:词法分析程序设计与实现(C语言版)

编译原理头歌实验&#xff1a;词法分析程序设计与实现&#xff08;C语言版&#xff09; 1.实验描述 任务描述 本关任务&#xff1a;加深对词法分析器的工作过程的理解&#xff1b;加强对词法分析方法的掌握&#xff1b;能够采用一种编程语言实现简单的词法分析程序&#xff…

SQL常用操作大全:复制表、跨库查询、删除重复数据

大家好&#xff0c;欢迎来到程序视点&#xff01;我是你们的老朋友.小二&#xff01; SQL常用操作精华总结 表结构与数据操作 复制表结构&#xff1a; SELECT * INTO b FROM a WHERE 1<>1 (SQL Server专用) SELECT TOP 0 * INTO b FROM a (更通用) 拷贝表数据&#…