你知道常用的抓包工具有哪些?Fiddler、charles、Wireshark,我们常接触的无非这几种,前面介绍过fiddler,它跟charles一样,简单易用,协议数据清晰可视。对于常见抓包场景Fiddler、charles已经够用了。 为啥还要学习Wireshark?
因为Fiddler、charles采用是web代理的方式捕获数据包,无法完成如下这两个场景:
- 抓取非HTTP、HTTPS协议的数据,
- 抓取服务端的数据。
Wireshark是什么?
Wireshark 当前应用最广泛的网络协议分析工具,它是一个多协议的网络分析工具,不仅仅支持http、https,而是支持常见的所有协议,并且支持多平台,Windows、linux、mac都不在话下。
Wireshark这么强大,我们一般用它来做什么?
用户通常使用Wireshark来学习各种网络协议,定位分析网络问题,分析应用程序使用何种协议进行工作。
1.下载安装
官方下载地址:https://www.Wireshark.org/download.html
下载后直接双击安装即可。
2.界面基本介绍
启动Wireshark后,首先加载的是网卡接口选择界面。根据需要选择监听的网卡。
选择网卡之后,Wireshark开始自动捕获协议数据,整个窗口布局如下:
Wireshark抓取的数据包与七层OSI模型的关系
3.过滤器
由于Wireshark直接捕获底层网络数据包,导致其捕获的数据包数量通常较大。为了便于筛选数据包,去除冗余的信息,Wireshark提供了两种好用的过滤器,便于我们有针对性的对数据包进行筛选分析。
过滤器会帮助我们在大量的数据中迅速找到我们需要的信息。
两种过滤器:捕获过滤器,显示过滤器。
1、捕获过滤器:提前设置需要抓取的数据包规则,减小报文的体积。
操作路径:Capture(捕获)-->Options(选项)-->Capture Filter(捕获过滤器)
进入捕获>捕获过滤器,wireshark已经提供了一些常见的过滤规则。
语法规则: 语法:<**Protocol><Direction><Host(s)><Value><LogicalOperations><Otherexpression>**
常用捕获过滤语句举例:
- 只显示目的TCP端口为8080的数据包:
tcp dst port8080
- 只显示来源IP地址为192.168.171.201的数据包:
ip src host192.168.171.201
- 只显示目的P地址为192.168.5.231的数据包:
ip dst host192.168.5.231
- 只捕获主机192.168.5.001的http流量:
host192.168.5.001andport80andhttp
2、显示过滤器:对已经抓取的报文进行筛选过滤,可以在捕获过程中或者捕获后随时更改,比捕获过滤器功能更强大。
语法规则: 语法:<**Protocol><String1><String2><Comparisonoperator><Value><LogicalOperations><Otherexpression>**
直接过滤框中输入过滤规则
常用显示过滤语句举例:
筛选含有IP地址192.168.0.1的数据包
ip.addr==192.168.0.1
筛选源地址是192.168.171.1的数据包
ip.src==192.168.171.1
筛选目的地址是192.168.171.1的数据包
ip.dst==192.168.0.1
只显示含有80端口的数据包
tcp.port==80
所有的HTTP POST请求
http.request.method=="POST"
URL中包含baidu的http请求
http.request.uri contains"baidu"
关于Wireshark几个好用的技巧 技巧1:直接选中具体的数据摘要或者详情信息,右键选择作为过滤器。
技巧2:在过滤规则输入框右侧点击表达式,根据需要使用的规则、关系、值进行组合。
技巧3:选择需要具体分析的数据包,然后右键选择“追踪流”,选择协议,就可以看到与这对ip和端口以及协议相同的全部通信。
Wireshark还有强大的数据包分析功能,大家可以自行百度学习。