一、什么是Wireshark?

Wireshark 是一款广泛使用、免费开源的 网络封包分析软件。其主要功能是 捕获和显示网络数据包的详细信息,以便进行深入的 网络分析故障排查

wire:导线。shark:鲨鱼。可以理解为游行于导线,吞噬数据的鲨鱼。

Wireshark 作用于 OSI 七层协议的传输层,通过 WinPCAP 接口与网卡直接交换数据报文,从而能够截取各种网络封包,并尽可能详细地显示这些封包的内容。这使得 Wireshark 在网络封包和流量分析领域具有强大的功能,深受各种网络工程师和网络分析师的喜爱。

补充: 即使强大如 Wireshark 也无法抓取到本地ip、localhost、127.0.01这类回环地址的请求,需要依赖其它插件才能实现。


二、Wireshark下载

进入首页,点击 Download Wireshark Now

可以根据自己的操作系统下载不同的版本。

下载后如下所示:


三、Wireshark安装

双击打开,一直 Next。(其中有一步需要勾选是否在桌面展示,建议勾选)

注意,Wireshark 底层依赖了 WinPCAP当安装进行到下面这一步的时候会卡住

然后这时会有一个 Npcap 的安装界面弹出来,我们需要先完成 Npcap 的安装,Wireshark的安装进度条才会继续走

最终 Wireshark 安装完毕,点击 Finish 即可。

安装后,可以看到桌面上图标如下:(安装时勾选了桌面图标才会显示)

在这里插入图片描述


四、Wireshark使用

4.1 基本使用

双击图标启动之后,首先要选择网卡,曲线代表网卡的流量波动,选择后 双击网卡开始监控

双击网卡进入后便自动开始捕获网络请求,如下所示:

其中,数据详情区每行的内容如下:

  1. Frame:物理层的数据帧概况。
  2. Ethernet II:数据链路层以太网帧头部信息。
  3. Internet Protocol Version 4:互联网层IP包头部信息。
  4. Transmission Control Protocol:传输层T的数据段头部信息,此处是TCP。
  5. Hypertext Transfer Protocol:应用层的信息,此处是 HTTP 协议。

其中第4行的传输层包含了TCP的报文信息:

4.2 过滤设置

初学者使用 Wireshark 时,将会得到 大量的冗余数据包列表,以至于很难找到自己想要抓取的部分。这里我们对 Wireshark 的过滤功能进行介绍。

Wireshark 中自带了两种过滤器:

  • 捕获过滤器: 在抓包之前就进行过滤,只捕获目标数据。
  • 显示过滤器: 依然抓取所有数据包,但是显示的时候只显示目标数据。
1)捕获过滤器

点击 捕获 -> 捕获过滤器在抓包前设置,只抓取目标数据

里面自带了很多常用的过滤器,可以直接使用。

也可以新建自己的捕获过滤器,点击左下角的 +,创建一个新的过滤器。

创建好后,双击编辑名称和规则。下面这段规则表示:只筛选源ip为192.168.1.15的数据。

src host 192.168.1.15

创建好捕获过滤器之后,并不会自动生效,有两种方式去选择使用哪种捕获过滤器:

  • 第1种方式:点击工具栏的齿轮按钮⚙可以进行选择。

点击左侧的绿色按钮就可以看到刚才新创建的捕获过滤器了,这里也可以直接输入捕获过滤器的规则,不过常用的规则还是建议去手动创建下。选择后点击开始即可按照制定好的规则进行抓包。

可以看到,过滤规则成功生效,新捕获的内容全部都是以 192.168.1.15 作为源IP的请求数据。

在这里插入图片描述

  • 第2种方式:我们可以在双击 Wireshark 图标一进来的界面进行选择。

如果是已经进入捕获页面了,可以点击工具栏的 关闭捕获文件,返回选择网卡的界面。

在这里插入图片描述

2)显示过滤器

显示过滤器 是用于 在抓取数据包后根据设置好的过滤条件进行过滤。可以直接在上方的搜索栏编辑规则,回车生效

下面这段规则表示:只筛选源ip为192.168.1.15的数据。

ip.src == 192.168.1.15

在这里插入图片描述

4.3 过滤规则

根据上面的示例,假如我想实现 只筛选源ip为192.168.1.15的数据,两种过滤器的写法如下:

  • 捕获过滤器: src host 192.168.1.15
  • 显示过滤器: ip.src == 192.168.1.15

可以看出来,捕获过滤器、显示过滤器的规则语法是不一样的。这里我们就分别来总结一下常用的过滤规则有哪些。

1)捕获过滤器-规则语法

捕获过滤器采用的是 BPF(Berkeley Packet Filter) 语法,这是一种用于过滤数据包的表达式,广泛应用于各种抓包工具中。

BPF 语法中,过滤表达式的基本单位是 原语。相关的规则如下:

  1. 原语通常由多个 限定符(如:dir方向、type类型、proto协议)和一个 过滤值(如:192.168.1.1、80、443)组成。

限定符的类型和常用值如下:

dir(方向)

  • src: 过滤 请求源 中包含该内容的数据。
  • dst: 过滤 请求目标 中包含该内容的数据。
  • src or dst: 过滤 请求源 或者 请求目标 中包含该内容的数据。
  • src and dst: 过滤 请求源 并且 请求目标 都包含该内容的数据。(默认)

type(类型)

  • host: 根据 IP 进行过滤,可以是 ipv4、ipv6。(不支持直接使用域名,域名的话需要先解析为ip再进行筛选)
  • net: 根据 网段 进行过滤,支持net(网关,例:192.168.1)、mask(掩码,例:255.255.255.0)、CIDR(路由,例:192.168.1.0/24)三种形式。
  • port: 根据 端口 进行过滤(例:80、443等)。
  • portrange: 根据 端口范围 进行过滤(例:1-100)。

proto(协议):(默认不筛选协议类型。)

语法: 可以使用 ether proto + 协议,也可以直接使用如下协议。

  • ipip6arptcpudp。(其中 ip 指的是 IPv4 协议)
  • 不常用协议:ddi、 wlan、arprarp、decnet、 lat、 sca、 moproc、 mopdl。
  1. 一个表达式中可以包含多个原语,原语之间使用逻辑运算符进行拼接。

(注意:这里的逻辑运算符 &&||! 不能用 andornot 替代。)

2)显示过滤器-规则语法

IP地址过滤:

  • ip.addr:过滤 请求 中包含该IP地址的数据。
  • ip.src:过滤 请求源地址 为该IP地址的数据。
  • ip.dst:过滤 请求目标地址 为该IP地址的数据。

协议过滤:

  • tcpipicmparphttpdnsbootp(dhcp) 等。

端口过滤:

  • <协议>.port:过滤特定端口。
  • <协议>.srcport:过滤特定源端口。
  • <协议>.dstport:过滤特定目的端口。
  • <协议>.flags.sync:过滤SYN标志。
  • <协议>.flags.ack:过滤ACK标志。
  • ……

比较操作符:

  • ==!=><>=<=

逻辑操作符:

  • eq== 表示等于。
  • ne!= 表示不等于。
  • and&& 表示逻辑与。
  • or|| 表示逻辑或。
  • not! 表示逻辑非。

4.4 常用的显示过滤器规则

  1. 地址过滤: 过滤特定源地址或目的地址的数据包。例如:
  • 筛选目的地址为 192.168.1.164 的HTTP请求:http && ip.dst == 192.168.1.164

http只能过滤 HTTP 请求,如果是HTTPS请求需要使用 tls 过滤 TLS 协议的请求。但是过滤只有也 只能看到加密后的 TCP 请求信息,如果需要查看明文信息,则 需要在电脑安装wireshark的证书信息 才行。

  • 过滤TPC协议的80端口:tcp.port == 80
  • 过滤UDP协议的53端口:udp.port == 53
  • 过滤GET请求:http.request.method == “GET”
  • 过滤状态码为200的请求:http.response.status == 200
  • 筛选uri中包含"findById"的HTTP请求:http.request.uri contains “findById”
  • 使用逻辑运算符(如andor)组合多个过滤条件:ip.src == 192.168.1.107 and tcp.port == 80

通过这些常用显示过滤器规则,用户可以有效地从捕获的数据包中筛选出感兴趣的信息,从而提高分析效率和准确性。


五、Wireshark快捷键

  • Ctrl + E 开始/停止捕获。
  • Ctrl + R 重新开始捕获。
  • Ctrl + W 关闭捕获文件。
  • Ctrl + / 焦点定位到显示过滤器。
  • Ctrl + Alt + Shift + T 追踪TCP数据流。
  • Ctrl + Alt + Shift + H 追踪HTTP数据流。
  • Ctrl + Alt + Shift + S 追踪TLS数据流。
  • Ctrl + 合并所有数据详细区内容。
  • Ctrl + 展开所有数据详细区内容。
  • Ctrl + F 搜索。

整理完毕,完结撒花~🌻





参考地址:

1.网络分析工具——WireShark的使用(超详细),https://blog.csdn.net/zzwwhhpp/article/details/113077747

Logo

助力广东及东莞地区开发者,代码托管、在线学习与竞赛、技术交流与分享、资源共享、职业发展,成为松山湖开发者首选的工作与学习平台

更多推荐