wireshark 抓包工具使用
wiresark 显示过滤器使用方法
Wireshark 提供了两种过滤器
- 捕获过滤器:在抓包之前就设定好过滤条件,然后只抓取符合条件的数据包。
- 显示过滤器:在已捕获的数据包集合中设置过滤条件,隐藏不想显示的数据包,只显示符合条件的数据包。
这两种过滤器所使用的语法是完全不同的,捕捉网卡数据的其实并不是 Wireshark,而是 WinPcap,要按 WinPcap 的规则来,显示过滤器就是 Wireshark 对已捕捉的数据进行筛选。
显示过滤器中常用的关系计算符号
符号 | 说明 | 示例 |
---|---|---|
eq == |
等于 | ip.src==10.10.10.10 ip.src eq 10.10.10.10 |
ne != |
不等于 | ip.src!=10.10.10.10 ip.src ne 10.10.10.10 |
gt > |
大于 | |
lt < |
小于 | |
ge >= |
大于等于 | |
le <= |
小于等于 | |
contains |
包含 | http.host contains com |
显示过滤器中常用的逻辑计算符号
符号 | 说明 | 示例 |
---|---|---|
and && |
与 | http.host contains com && ip.src == 44.199.163.86 http.host contains com and ip.src == 44.199.163.86 |
or || |
或 | |
not ! |
非 |
常用示例
针对 IP 过滤
- 对源地址进行过滤
ip.src == 192.168.0.1
- 对目的地址进行过滤
ip.dst == 192.168.0.1
- 对源地址或者目的地址进行过滤
ip.addr == 192.168.0.1
- 如果想排除以上的数据包,只需要将其用括号囊括,然后使用
!
即可!(ip.addr == 192.168.0.1)
针对协议过滤
针对某种协议的数据包,表达式很简单仅仅需要把协议的名字(必须小写)输入即可
常见协议:tcp
udp
arp
icmp
http
smtp
ftp
dns
msnms
ip
ssl
oicq
bootp
针对端口过滤
- 捕获某一端口的数据包(以 tcp 协议为例)
tcp.port == 80
- 捕获多端口的数据包,可以使用
and
来连接,下面是捕获高于某端口的表达式(以 udp 协议为例)udp.port >= 2048
针对 http 请求的一些过滤实例
- 过滤出请求地址中包含
user
的请求,不包括域名http.request.uri contains "User"
- 精确过滤域名
http.host==baidu.com
- 模糊过滤域名
http.host contains "baidu"
- 过滤请求的 content_type 类型
http.content_type =="text/html"
-过滤 http 请求方法http.request.method=="POST"
- 过滤 tcp 端口
tcp.port==80
http && tcp.port==80 or tcp.port==5566
- 过滤 http 响应状态码
http.response.code==302
- 过滤含有指定 cookie 的 http 数据包
http.cookie contains "userid"