wireshark过滤,wireshark过滤规则
【Wireshark】Wireshark 过滤器表达式语法
? Wireshark 的世界里有2种过滤器,分别是捕获过滤器和显示过滤器。
采用恰当的过滤器,不但能提高数据分析的灵活性,而且能让分析者更快看到自己想要的分析对象。
BPF(Berkeley Packet Filter)全称为伯克利包过滤,是一种功能非常强大的过滤语法.这个语法被广泛应用于多种数据包嗅探软件,因为大部分数据包嗅探软件都依赖于使用BPF的libpcap/WinPcap库.诸如tcpdump,wireshark等等。
捕获过滤器:wireshark 仅捕获过滤器设置的数据,其它数据不收集,用于定向分析问题。
显示过滤器:wireshark 对已经捕获的数据,进行显示设置。只是不显示的数据还是在内存中的,修改显示过滤器就可以显示出来,不适合大流量的场景。
捕获过滤器语法规则 BPF(Berkeley Packet Filter),使用 google 搜索 “BPF 语法” 能搜索到很多相关内容。
显示过滤器是对已经抓取的数据,进行显示过滤设置。 语法是 wireshark 自己的语法,可以使用 wireshark 辅助生成过滤表达式。
WireShark DisplayFilter Examples
Wireshark基础使用和表达式语法
Chapter 6. Working With Captured Packets
Wireshark入门与进阶系列之常见捕获过滤器
BPF过滤规则
wireshark常用过滤规则
可使用单个或多个过滤条件(可使用==,=等),多个条件时使用and or进行连接
例子:ip.src ==192.168.1.107 or ip.dst ==192.168.1.107
例子:
tcp.port eq 80 // 不管端口是来源的还是目标的都显示
tcp.port == 80
tcp.dstport == 80 // 只显tcp协议的目标端口80tcp.srcport == 80 // 只显tcp协议的来源端口80
过滤端口范围tcp.port = 1 and tcp.port = 80
例子:
tcp udp arp icmp http smtp ftp dns等等
排除arp包,如!arp ??或者 ??not arp
例子太以网头过滤
eth.dst == A0:00:00:04:C5:84 // 过滤目标mac
eth.src eq A0:00:00:04:C5:84 // 过滤来源mac
例子:
udp.length == 26 这个长度是指udp本身固定长度8加上udp下面那块数据包之和
tcp.len = 7 ??指的是ip数据包(tcp下面那块数据),不包括tcp本身
ip.len == 94 除了以太网头固定长度14,其它都算是ip.len,即从ip本身到最后
frame.len == 119 整个数据包长度,从eth开始到最后
例子:
http.request.method == “GET”
http.request.method == “POST”
http.request.uri == “/img/logo-edu.gif”
http contains “GET”
http contains “HTTP/1.”
tcp.flags 显示包含TCP标志的封包。
tcp.flags.syn == 0x02 ????显示包含TCP SYN标志的封包。
tcp contains "关键字"
9.报文
wireshark的过滤器 ip.addr、ip.src和ip.dst有什么不同?
针对wireshark最常用的自然是针对IP地址的过滤。其中有几种情况:
(1)对源地址为192.168.0.1的包的过滤,即抓取源地址满足要求的包。
表达式为:ip.src == 192.168.0.1
(2)对目的地址为192.168.0.1的包的过滤,即抓取目的地址满足要求的包。
表达式为:ip.dst == 192.168.0.1
(3)对源或者目的地址为192.168.0.1的包的过滤,即抓取满足源或者目的地址的ip地址是192.168.0.1的包。
表达式为:ip.addr == 192.168.0.1,或者 ip.src == 192.168.0.1 or ip.dst == 192.168.0.1
(4)要排除以上的数据包,我们只需要将其用括号囊括,然后使用 "!" 即可。
表达式为:!(表达式)