wireshark-1.2.1二层过滤语法

试想一下我们对数据包进行分析时,会关注哪些问题?MAC/IP/TCP/UDP/HTTP还是具体地应用信息?数据包大小、报文类型统计、还是流量的展示?为了方便快速的抓取或者过滤感兴趣的报文内容,从本次开始我们介绍抓包的过滤语法

Wireshark采用了BPF语法进行数据包过滤,可以分为抓取之前过滤和对已抓取的数据包进行过滤。不同点为:抓取之前过滤wireshark会根据过滤语法至保留匹配成功的数据包,其他数据包不保存。通过在wireshark主界面的Capture或者通过菜单栏capture-option-capture filter for selected interfaces。抓取之后过滤,是为了快速在抓取的数据包中过滤出需要的内容。

Wireshark过滤语法由限定条件+条件限定符+标识条件,例如ip.addr == 192.168.1.1,限定条件为要求为(ip.addr),条件限定符为(=),标识条件为(192.168.1.1),其中限定条件为必须,多个过滤条件间使用逻辑运算符与、或、非(&&,||,!),以下我们以实际的语法举例,先进行简单的语法过滤,大家可以举一反三:

1. 协议过滤,仅使用限定条件例如:eth、ip、tcp、udp、http、icmp等,在wireshark抓包主界面的过滤栏直接输入相关协议名称,例如输入http:

会在抓取到的所有数据包里过滤出http的数据内容,如下图:(其中数据包列表中对应TCP/IP的物理层、数据链路层、IP层、传输层、应用层)

一起学习wireshark-1.2.1二层过滤语法

协议过滤

2. 地址过滤,过滤二层或者三层地址。

2.1 二层过滤:例如,使用eth.addr == ff.ff.ff.ff.ff.ff过滤目的地址为广播的流量,例如ARP或者NBNS名称查询。

扩展一下,我们知道组播对应的mac地址为:01.00.5e.xx.xx.xx,如果要抓取所有目的为组播的地址应该怎么抓取呢?wireshark支持字节偏移型的过滤,MAC报头格式如下:

一起学习wireshark-1.2.1二层过滤语法

过滤组播

我们只需要匹配eth的0-3个字节即可,即使:eth[0:3] == 01.00.5e,过滤完如下图:

一起学习wireshark-1.2.1二层过滤语法

过滤结果

再扩展一下:我们知道以太网的上层协议有很多种,例如ip/arp等,上面讲过可以通过在过滤规则中直接输入协议来过滤,这里我们通过字节偏移来实现,看一下二层报头,在源目地址12字节后是上层协议的类型,ARP的类型占2个字节,RARP对应0x8035,IP对应0x0800,ARP对应0x0806,IPv6对应0x86DD,

一起学习wireshark-1.2.1二层过滤语法

过滤RARP

例如我们过滤上图的RARP,在过滤规则中输入eth[12:2] == 8035,也就是选择eth头部12位-14位,过滤结果如下:

一起学习wireshark-1.2.1二层过滤语法

过滤结果

文章版权声明

 1 原创文章作者:汇维网,如若转载,请注明出处: http://www.52hwl.com/1700.html

 2 温馨提示:软件侵权请联系469472785#qq.com(三天内删除相关链接)资源失效请留言反馈

 3 下载提示:如遇蓝奏云无法访问,请修改lanzous(把s修改成x)

 免责声明:本站为个人博客,所有软件信息均来自网络 修改版软件,加群广告提示为修改者自留,非本站信息,注意鉴别

发表评论

登录后才能评论