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

Posted nceuaprsf

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Wireshark网络分析实战笔记显示过滤器相关的知识,希望对你有一定的参考价值。

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


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



如何设置显示过滤器:


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





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


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



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


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




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


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




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数据包包头格式以供参考:






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数据包包头格式以供参考:






复杂的过滤器

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

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)

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


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




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


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

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

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

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






以上是关于Wireshark网络分析实战笔记显示过滤器的主要内容,如果未能解决你的问题,请参考以下文章

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

Wireshark网络分析实战笔记抓包过滤器

Wireshark网络分析实战笔记高级信息统计工具的用法

Wireshark网络分析实战笔记基本信息统计工具的使用方法

Wireshark网络分析实战笔记基本信息统计工具的用法

Wireshark网络分析实战笔记Expert Info工具