整理自陈鑫杰老师的wireshark教程课
wireshark 抓包过滤器
过滤器分为抓包过滤器和显示过滤器,抓包过滤器会将不满足过滤条件的包丢弃,只保留满足条件的包,而显示过滤器则是对已抓取的包做过滤,过滤出满足条件的包。
显示过滤器可以保留全部的报数据,方便后期做流量分析,而抓包过滤器保留的数据有限,后期分析有局限性。
一、抓包过滤器
wireshark抓包是基于其内部的libpcap/wincap库
打开软件时直接在filter栏输入过滤规则即可,如下以wireshark2.6举例
Capture --> Options
使用的是BFP语法(Berkeley Packet Filter),一共四个元素:
- 类型(Type)
- host、net、port
- 方向(Dir)
- src、dst
- 协议(Proto)
- ether、ip、tcp、udp、http、ftp
- 逻辑运算符
-
&&
与 -
||
或 -
!
非
-
示例:
抓取源地址为192.168.1.1,目的端口为80的流量
src host 192.168.1.1 && dst port 80
抓取192.168.1.1和192.168.1.2的流量
host 192.168.1.1 || host 192.168.1.2
不要抓取广播包
! broadcast
过滤mac地址:
ether host 00:88:ca:86:f8:0d
ether src host 00:88:ca:86:f8:0d
ether dst host 00:88:ca:86:f8:0d
过滤IP地址:
host 192.168.1.1
src host 192.168.1.1
dst host 192.168.1.1
过滤端口:
port 80
!port 80
dst port 80
src port 80
过滤协议:
arp
icmp
结合逻辑符号综合过滤
host 192.168.1.1 && port 8080
二、显示过滤器
使用显示过滤器需先用软件进行抓包,然后在软件filter栏输入过滤规则:
比较符:
==
等于!=
不等于>
大于<
小于>=
大于等于<=
小于等于
逻辑操作符:
- and 两个条件同时满足
- or 其中一个条件被满足
- xor 有且仅有一个条件被满足
- not 没有条件被满足
ip地址:
- ip.addr ip地址
- ip.src 源ip
- ip.dst 目标ip
端口过滤:
- tcp.port
- tcp.srcport
- tcp.dstport
- tcp.flags.syn 过滤包含tcp的syn请求的包
- tcp.flags.ack 过滤包含tcp的ack应答的包
协议过滤:
arp、ip、icmp、udp、tcp、bootp、dns等
示例:
过滤IP地址:
ip.addr == 192.168.1.1 过滤该地址的包
ip.src == 172.16.1.1 过滤源地址为该地址的包
过滤端口:
tcp.port == 80 过滤tcp中端口号为80的包
tcp.flags.syn == 1 过滤syn请求为1的包
结合逻辑符综合过滤:
ip.src == 192.168.1.1 and ip.dst == 172.16.1.1