试想一下我们对数据包进行分析时,会关注哪些问题?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层、传输层、应用层)
2. 地址过滤,过滤二层或者三层地址。
2.1 二层过滤:例如,使用eth.addr == ff.ff.ff.ff.ff.ff过滤目的地址为广播的流量,例如ARP或者NBNS名称查询。
扩展一下,我们知道组播对应的mac地址为:01.00.5e.xx.xx.xx,如果要抓取所有目的为组播的地址应该怎么抓取呢?wireshark支持字节偏移型的过滤,MAC报头格式如下:
我们只需要匹配eth的0-3个字节即可,即使:eth[0:3] == 01.00.5e,过滤完如下图:
再扩展一下:我们知道以太网的上层协议有很多种,例如ip/arp等,上面讲过可以通过在过滤规则中直接输入协议来过滤,这里我们通过字节偏移来实现,看一下二层报头,在源目地址12字节后是上层协议的类型,ARP的类型占2个字节,RARP对应0x8035,IP对应0x0800,ARP对应0x0806,IPv6对应0x86DD,
例如我们过滤上图的RARP,在过滤规则中输入eth[12:2] == 8035,也就是选择eth头部12位-14位,过滤结果如下:
文章版权声明
1 原创文章作者:汇维网,如若转载,请注明出处: https://www.52hwl.com/1700.html
2 温馨提示:软件侵权请联系469472785#qq.com(三天内删除相关链接)资源失效请留言反馈
3 下载提示:如遇蓝奏云无法访问,请修改lanzous(把s修改成x)
4 免责声明:本站为个人博客,所有软件信息均来自网络 修改版软件,加群广告提示为修改者自留,非本站信息,注意鉴别