抓包工具 Wireshark 的下载、安装、使用、快捷键

目录

一、什么是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的数据。

shell 复制代码
src host 192.168.1.15

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

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

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

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

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

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

2)显示过滤器

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

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

shell 复制代码
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

相关推荐
BingoGo1 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php
JaguarJack1 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php·服务端
BingoGo2 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php
JaguarJack2 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php·服务端
JaguarJack3 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
后端·php·服务端
BingoGo3 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
php
JaguarJack4 天前
告别 Laravel 缓慢的 Blade!Livewire Blaze 来了,为你的 Laravel 性能提速
后端·php·laravel
郑州光合科技余经理5 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php
DianSan_ERP5 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
呉師傅5 天前
火狐浏览器报错配置文件缺失如何解决#操作技巧#
运维·网络·windows·电脑