Wireshark网络分析实战笔记(二)显示过滤器

 

转自:彬彬在线

显示过滤表达式中操作符:

== eq 等于
!= ne 不等于
> gt 高于
< lt 低于
>= ge 不高于
<= le 不低于
  contains 包含某个字符
  match 某串字符匹配某个条件
&& and 逻辑与
|| or 逻辑或
not 逻辑非

如何设置显示过滤器:

在显示过滤器工具条Filter输入框内直接输入显示过滤语句

Wireshark网络分析实战笔记(二)显示过滤器

如何将数据包的某个属性指定为过滤条件:

右键数据包的某个属性选择apply as filter(直接作为显示过滤器使用)或prepare a filter(作为有待应用的显示过滤器)即可应用显示过滤器

Wireshark网络分析实战笔记(二)显示过滤器

如何获悉显示过滤器包含的参数:

选中协议中的某个字段,对应过滤参数显示在底部状态栏

Wireshark网络分析实战笔记(二)显示过滤器

如何把数据包某个属性作为数据包列表新列:

选中某个属性右键apply as column即可把数据包某个属性作为数据包列表新列

Wireshark网络分析实战笔记(二)显示过滤器

Ethernet过滤器

eth.addr==<>   显示具有指定MAC地址的数据帧
eth.src ==<>   显示具有指定源MAC地址的数据帧
eth.dst==<>   显示具有指定目的MAC地址的数据帧
eth.type==<>  显示指定以太网类型的流量
eth.dst==ffff.ffff.ffff    显示以太网广播帧

ARP过滤器

arp.opcode==<>   显示指定类型的ARP帧 
arp.opcode==1 ARP请求帧
arp.opcode==2 ARP应答帧
arp.src.hw_mac==<> 只显示指定MAC地址主机发出的ARP帧

以下附上ARP数据包包头格式以供参考:

Wireshark网络分析实战笔记(二)显示过滤器

Wireshark网络分析实战笔记(二)显示过滤器

IP过滤器

Ip.addr==<>   显示发往或源自指定IP地址的数据包
ip.src==<>    显示指定源IP地址的数据包
ip.dst==<>  显示指定目的IP地址的数据包
ip.ttl==<value>   ip.ttl> <value>    显示IP包头中TTL字段值为指定值得数据包
ip.len==<value> ip.len< <value>  显示指定长度的IP数据包
ip.version==<4/6>  显示指定IP版本号的IP数据包
ipv6.addr=<>  显示发往或源自指定IPv6地址的数据包

以下附上IP数据包包头格式以供参考:
Wireshark网络分析实战笔记(二)显示过滤器

Wireshark网络分析实战笔记(二)显示过滤器

复杂的过滤器

以下是几个复杂一些的过滤语句:

ip.src==10.0.0.0/24 and http.host contains "sohu"           显示10.0.0.0/24网络的主机,发送包含"sohu"字符串的所有流量
ip.addr==10.0.0.0/24 and http.host matches "\.com$"       显示10.0.0.0/24网络的主机,访问域名以".com"结尾的网站的所有流量
ip.src==10.0.0.0/24 and eth.dst==ffff.ffff.ffff                   显示源于10.0.0.0/24网络的的所有IP广播地址
not arp and eth.dst==ffff.ffff.ffff                               显示 所有广播包,但ARP请求所触发的广播包除外
not arp and not icmp                       显示除ARP和ICMP外的所有流量

TCP/UDP过滤器

tcp.port==<>       显示指定的TCP源,目的端口(比如:tcp.port==80)
tcp.dstport==<>   显示指定的TCP目的端口
tcp.srcport==<>    显示指定的TCP源端口
tcp.analysis      分析TCP性能有关参数      
    tcp.analysis.retransmission 显示重传的tcp数据包
    tcp.analysis.duplicate_ack 显示确认多次的tcp数据包
    tcp.analysis.zero_windows 显示含零窗口通告信息的TCP数据包
tcp.flags  检查数据包TCP头部中的标记位
   tcp.flags.syn==1   显示syn置1的数据包
   tcp.flags.reset==1   显示reset置1的数据包
   tcp.flags.fin==1    显示fin置1的数据包
tcp.window_size_value < <>       显示tcp头部窗口大小字段低于指定值得数据包
tcp.stream eq <>     显示某条TCP连接从建立到终结,回话双方生成的所有数据包(比如:tcp.stream eq 0)

(PS:这种过滤器和在Packet List中在某一个包上右键选择"Follow TCP stream"一个效果)

提示如何跟随一条TCP流:右键想要查看完整TCP数据流的TCP包,选择follow-tcp stream既可跟随tcp流

Wireshark网络分析实战笔记(二)显示过滤器

以下附上TCP数据包包头格式以供参考:

Wireshark网络分析实战笔记(二)显示过滤器

Wireshark网络分析实战笔记(二)显示过滤器

HTTP过滤器

http.host==<>     显示访问指定主机名的HTTP协议数据包
http.request.method=="GET"    显示包含HTTP GET方法的数据包
http.request.uri==""       显示HTTP客户端发起的包含指定URI请求的HTTP数据包(比如:http.request.uri=="www.baidu.com")
http.request.uri contains ""    显示HTTP客户端发起的包含某指定字符串的URI请求的HTTP数据包(比如:http.request.uri contains"baidu")
http.cookie    显示网络中传播的所有包含cookie请求的HTTP数据包
http.set_cookie   显示所有包含由HTTP服务器发送给HTTP客户端的cookie set命令的HTTP数据包

DNS过滤器

dns.flags.response==0    显示dns查询报文
dns.flags.response==1     显示dns响应报文

dns.count.answers>=4 显示answers字段大于或等于4的DNS响应报文

FTP过滤器

ftp.request.command==<> 显示包含特定请求的ftp数据包

ftp  显示从TCP21端口传送的包含FTP命令的FTP数据包

ftp-data   显示从TCP20端口或其他端口发出的包含实际FTP数据的FTP报文

wireshark中常用的正则表达式含义

wireshark显示过滤器所采用的正则表达式语法,等同于Perl语言所采用的正则表达式

^     匹配行的开头
$    匹配行的结尾
|     用来表示二者任选其一
()   起分组作用
*    匹配0次或多次
+   匹配1次或多次
?   匹配0次或1次
{n} 精确匹配n次
{n,} 至少n次
{n,m} 匹配n次到m次之间

字节偏移型过滤器

显示过滤器中的字节偏移型过滤器与抓包过滤器中的用法相同在此不在赘述,详情请看我之前写的文章《Wireshark网络分析实战笔记(一)抓包过滤器

eth.dst[0:2]==01:00:5e

配置显示过滤器宏

1.配置显示过滤器宏:依次点击analyze—display filter macros

Wireshark网络分析实战笔记(二)显示过滤器

2.使用显示过滤器宏:在filter中输入 ${test1:192.168.1.1;80}

其中test1是我要使用的显示过滤器宏的名称;

第一个参数192.168.1.1传给表达式中$1;

第二个参数80传给表达式中$2;

 Wireshark网络分析实战笔记(二)显示过滤器

==========================

“analyze”菜单项
 

菜单项 快捷键 说明
Display Filters…   打开过滤器对话框编辑过滤设置,可以命名过滤设置,保存为其他地方使用,见第 6.6 节 “定义,保存过滤器”
Apply as Filter>…   更改当前过滤显示并立即应用。根据选择的项,当前显示字段会被替换成选择在Detail面板的协议字段
Prepare a Filter>…   更改当前显示过滤设置,当不会立即应用。同样根据当前选择项,过滤字符会被替换成Detail面板选择的协议字段
Firewall ACL Rules   为多种不同的防火墙创建命令行ACL规则(访问控制列表),支持Cisco IOS, Linux Netfilter (iptables), OpenBSD pf and Windows Firewall (via netsh). Rules for MAC addresses, IPv4 addresses, TCP and UDP ports, 以及IPv4+混合端口
以上假定规则用于外部接口
Enable Protocols… Shift+Ctrl+R 是否允许协议分析,见第 9.4.1 节 “”Enable Protocols”对话框”