一:介绍
Wireshark是一款强大的抓包软件,其中过滤规则最主要分为两部分
一部分是抓包之前的过滤规则,另一部分是抓完包之后的过滤规则
分别对应下面两张图的对应规则填写位置
如果符合对应的规则那么就会显示成为绿色,否则的话就是红色
二:抓包过滤器
抓包过滤器的语法是BPF过滤规则的语法 ,这个语法被广泛应用于多种数据包的嗅探软件,因为大多数的的软件都是基于libpacp/WinPcap库,例如tcpdump,Wireshark等
BPF限定词
| 限定词 | 说明 | 例子 |
|---|---|---|
| Type | 指出ID或数字所代表的含义 | host, net, port |
| Dir | 指明数据包传输方向 | src, dst |
| Proto | 限定所要匹配的协议 | ether, ip, tcp, udp, http, ftp |
| 逻辑运算符 | && 与 || 或 !非 |
接下来举一些相关的案例
1. host限定词用于捕获特定主机名或IP地址的流量
host 192.168.10.1
host fe80::3c42:d5ff:fe22:1d63
host testserver
如果考虑到一台主机的Ip地址会变化,可以加入ether限定词对MAC地址进行过滤
ether host 3e:42:d5:22:1d:63
2. 传输方向 src dst可以用来捕获流入或流出某台主机的流量:
src 192.168.10.1
dst 192.168.10.1dang
当没有指定任何的一种type类型限定符,默认选择host
3. 端口与协议过滤
port 80
! port 80
arp、ICMP
端口限定符也可以和传输方向符一块使用,也可以和基于端口之上的协议一起过滤
dst port 80
tcp port 8080
4.综合使用
dst host 192.168.1.100 && src port 80 到目的主机192.168.1.100:80的流量
更多规则:https://wiki.wireshark.org/CaptureFilters
三:显示过滤器
先介绍一下基本的语法
比较运算符
== 等于
!= 不等于
> < >= <=
逻辑操作
and 两个条件同时满足
or 其中的一个条件满足
xor 有且仅有一个条件满足
not 没有条件满足
IP地址过滤
ip.addr == 192.168.1.126
ip.src ==192.168.1.126
ip.dst ==192.168.1.126
端口过滤
tcp.port==80
tcp.srcport==80
tcp.dstport ==80
协议过滤
arp IP ICMP OICQ:qq使用的协议
综合案例
ip.src==192.168.1.126 and tcp.dstport=80 过滤从本机发出的目的端口为80的tcp流量
ip src=192.168.1.126 and udp.dstport=80 过滤从本机发出的目的端口为80的upd流量
更多规则:https://wiki.wireshark.org/DisplayFilters