首页 > 编程知识 正文

Fiddler 和 Wireshark抓包教程合集(wireshark抓取tcp包)

时间:2023-05-03 08:20:46 阅读:71262 作者:386

目录

使用Wireshark

1 .下载

2 .安装

的数据包捕获和基本用法

过滤器

捕获过滤器

捕获过滤器的BPF语法

显示过滤器

运算符与逻辑运算符的比较

预定义过滤器

前言:用于前三次握手和四次挥手的捕获工具是Wireshark。 本节主要介绍其简单的使用方法。 不需要死记硬背,只要知道大致的使用方法就行了。 关于命令,制作记录命令的文件记录,使用时直接使用就可以了。

问题:为什么要抓包?

解答:

1、确定网络问题

2、分析接口数据;

3、学习网络协议,使用捕获工具分析网络数据更直观。

大多数情况下,可以通过程序调试来确定问题,但在某些场景中,使用图表来确定接口问题更准确

确实,更方便。 例如,以下情况。

1、你向后台发送了数据,但后台没有收到。 分析界面,可以看到有后台处理

问题是,还是没有发送数据,或者发送的数据格式错误;

2、你联合后台界面通过了测试,但业务数据不匹配。 我觉得你是后台的问题,我觉得后台是你发的

的问题,可以抓住包确认问题的所在;

3、网上出现bug,需要定位,但你不在公司,没有可以调试的代码,可以直接抓住包进行分析;

4、系统性能不好,抓住包看看接口的响应时间,是不是在后台出现了性能问题?

常用的抓取栏是F12 (浏览器附带的抓取工具)、Fiddler、Charles、Wireshark。 然后,那个

Wireshark在支持的协议、用户友好、价格(开源)、程序支持和支持的操作系统方面表现出色

嗯,是的Wireshark也是我们最常用的抓包工具和消息分析工具。

使用Wireshark.官方网站下载: https://www.wireshark.org/download.html

根据自己笔记本的配置,选择对应的配置并下载就可以了

2 .安装基本上是默认选项,您也可以根据自己的需求进行选择。

需要注意的是,在显示是否需要安装Npcap/WinPcap的对话框时,必须检查安装。

WinPcap驱动程序是Windows捕获pcap包的通用程序接口(APT )的实现,简单来说,该驱动程序通过操作系统捕获原始包、应用过滤器、网络混合模式是通过网卡接收所有数据包。 这包括不是发给本机的数据包。 也就是说,不验证MAC地址。 在通常模式中,网卡仅接收发往本装置的分组(包括广播分组)并传递到上位程序,其他的分组全部丢弃。 一般来说,拥塞模式不影响网卡的正常工作,经常被网络监听工具使用。

不需要安装USBPcap。

的数据包捕获和基本用法

进入程序后,发现有一个活跃的网络(红框那里)。 双击此行,Wireshark将开始捕获数据并在窗口中显示。 可以看到窗口随着时间的推移而更新。 等待几秒钟,结束捕获,然后单击独立工具栏上的

单击按钮,或从“捕获”下拉菜单中选择

“停止”选项即可。

笔者点击Adapter for loopback traffic capture ,这个时候可以看见,Wireshark 窗口中显示了大量的数据,数据内容分布如下:

数据包列表:最上面的面板用表格显示了当前捕获文件中的所有数据包,其中包括了数据包序号、数据包被捕获的相对时间、数据包的源地址和目标地址、数据包的协议以及在数据包中找到的概况信息等列。
包详情:中间的面板分层次地显示了一个数据包中的内容,并且可以通过展开或是收缩来显示这个数据包中所捕获到的全部内容。
包数据的字节形式显示:最下面的面板显示了一个数据包未经处理的原始样子,也就是其在链路上传播时的样子。这些原始数据当然不容易理解。

在数据包列表中,可以很明显看见每行的五颜六色,这些颜色其实是 Wireshark 用来区分不同的协议的。可以通过 Coloring Rules (着色规则)窗口可以很容易地查看或修改每个协议所对应的颜色。如果想要打开这个窗口,可以在“视图”下拉菜单中选择的“着色规则”选项即可。

同时捕获的数据包可以导出为文件,也可以将数据包文件导入 Wireshark 进行分析。

过滤器

过滤器可以让你找出你所希望进行分析的数据包。简单来说,一个过滤器就是定义了一定条件,用来包含或者排除数据包的表达式。如果你不希望看到一些数据包,你可以写一个过滤器来屏蔽它们。如果你希望只看到某些数据包,你可以写一个只显示这些数据包的过滤器。

例如:我们只想抓mysql端口的数据包就可以 设置捕获规则 port 3306 这样就能抓到我们想要的包了。

Wireshark 主要提供两种主要的过滤器。

·捕获过滤器:

当进行数据包捕获时,只有那些满足给定的包含/排除表达式的数据包会被捕获。

显示过滤器:

该过滤器根据指定的表达式用于在一个已捕获的数据包集合中,隐藏不想显示的数据包,或者只显示那些需要的数据包。

捕获过滤器

捕获过滤器用于进行数据包捕获的实际场合,使用它的一个主要原因就是性能。如果你
知道你并不需要分析某个类型的流量,你可以简单地使用捕获过滤器过滤掉它,从而节省那
些会被用来捕获这些数据包的资源。
比如,我们现在要捕获我们机器上所有 TCP类型的数据包,怎么做?在“捕获”下拉
菜单中选择“选项”,弹出窗口中:

点击开始:

我们发现捕获到所有的TCP协议

捕获过滤器的 BPF 语法

捕获过滤器应用于 WinPcap/NPcap,并使用 Berkeley Packet Filter(BPF)语法。
这个语法被广泛用于多种数据包嗅探软件,主要因为大部分数据包嗅探软件都依赖于使
用 BPF 的 libpcap/WinPcap 库。掌握 BPF 语法对你在数据包层级更深入地探索网络来说,
非常关键。
使用 BPF 语法创建的过滤器被称为表达式,并且每个表达式包含一个或多个原语。每
个原语包含一个或多个限定词,然后跟着一个 ID 名字或者数字
Type 指出名字或数字所代表的意,例如: host、port
Dir 指明传输方向是前往还是来自 例如:src、dst
Proto 限定所要匹配的协议 例如:ether、ip、tcp、udp、http、ftp
例如:
dst host 192.168.0.10 && tcp port 80
这是一个捕获过滤器样例,其中“dst host 192.168.0.10”就构成了一个原语,我们的样
例里有两个原语,两个原语用逻辑运算符“&&”组合了起来。逻辑运算符共有三个:
连接运算符: 与 (&&)
选择运算符: 或 (||)
否定运算符: 非 (!)
对我们的样例来说,表示捕获的数据包应该满足条件为:目的主机是 192.168.0.10,通
信协议是 tcp,源端口或者目的端口是 80。

主机名和地址过滤器

我们所创建的大多数过滤器都会关注于一个或一些特定的网络设备。根据这个情况,可
以根据设备的 MAC 地址、IPv4 地址、IPv6 地址或者 DNS 主机名配置过滤规则。比如:
捕获所有和主机 IPv4 地址相关的流量:
host 192.168.0.10
捕获所有和主机 Ipv6 地址相关的流量:
host fe80::1945:cbf1:1393:8f17
使用基于一台设备的主机名 host 限定词进行过滤:
host remoteserver
考虑到一台主机的 IP 地址可能会变化,你可以通过加入 ether 协议限定词,对它的 MAC
地址进行过滤:
Ether host 24-41-8C-26-04-9F
当然还可在 host 之前加 src 或者 dst 进行传输方向的限定。
端口和协议过滤器
只对 8080 端口进行流量捕获:
port 8080
想要捕获除 8080 端口外的所有流量
!port 8080
端口过滤器一样和传输方向限定符一起使用,比如:
dst port 80
协议过滤器可以让我们基于特定协议进行数据包过滤。BPF 语法甚至提供给我们的一项
强大功能,就是我们可以通过检查协议头中的每一字节来创建基于那些数据的特殊过滤器。
比如:
tcp[13]&4=4
表示捕获的数据是 tcp 协议的数据包,且 tcp 数据包中第 13 个字节的第 4 位被设置了。

显示过滤器

显示过滤器应用于捕获文件,用来告诉 Wireshark 只显示那些符合过滤条件的数据包。
你可以在包列表面板上方的 Filter 文本框中,输入一个显示过滤器。

 

显示过滤器的语法不同于捕获过滤器,比如我们通过捕获功能,捕获了本机所有的数据包 

我们不需要TCP

输入 !TCP 确认

我们发现TCP协议的数据包已经没了

现在我们多加一个限定,只显示 ip 地址为 192.168.18.1的数据包

我们看见,显示的数据包就变为:不是 TCP 数据包,同时源地址或者目的地址是192.168.18.1。

比较操作符和逻辑操作符

在我们上面的过滤条件“!udp and ip.addr==40.90.189.152”中,牵涉到了过滤条件的比
较操作符和逻辑操作符:比较操作符可以让你进行值的比较。

举例来说,lhzddy在检查一个 TCP/P 网络中的问题
时,你可能经常需要检查和某一个 IP 地址相关的数据包。等于操作符可以让你创建一个只
显示 192.168.0.1 这个 IP 地址相关数据包的过滤器。
ip.addr==192.168.0.1
比较操作符还有:
等于 ==
不等于 !=
大于 >
小于 <
大于或等于 >=
小于或等于 <=
逻辑操作符有:
and 两个条件需同时满足
or 其中一个条件被满足
xor 有且仅有一个条件被满足
not 没有条件被满足
尽管在理论上编写过滤器表达式很简单,但针对不同问题创建过滤器时,依然需要许多
特定的关键词与操作符。可以到 Wireshark 的官网查看:
https://www.wireshark.org/docs/dfref
 

 比如 tcp 相关的,可以通过单击具体条目查看更多:

 

预定义过滤器 

过滤器可以事先设置好,不需要每次使用时都重新输入,捕获过滤器在菜单“捕获”-“捕获过滤器”中设置,显示过滤器在菜单“分析”-“Display Filters” 中设置。

 捕获过滤器

 显示过滤器

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。