wireshark 抓包过滤器使用

时间:2021-08-01 14:48:11

整理自陈鑫杰老师的wireshark教程课

wireshark 抓包过滤器

过滤器分为抓包过滤器和显示过滤器,抓包过滤器会将不满足过滤条件的包丢弃,只保留满足条件的包,而显示过滤器则是对已抓取的包做过滤,过滤出满足条件的包。

显示过滤器可以保留全部的报数据,方便后期做流量分析,而抓包过滤器保留的数据有限,后期分析有局限性。

一、抓包过滤器


wireshark抓包是基于其内部的libpcap/wincap库

打开软件时直接在filter栏输入过滤规则即可,如下以wireshark2.6举例

Capture --> Options

wireshark 抓包过滤器使用

wireshark 抓包过滤器使用

使用的是BFP语法(Berkeley Packet Filter),一共四个元素:

  • 类型(Type)
    • host、net、port
  • 方向(Dir)
    • src、dst
  • 协议(Proto)
    • ether、ip、tcp、udp、http、ftp
  • 逻辑运算符
    • &&
    • ||
    • !

示例:

抓取源地址为192.168.1.1,目的端口为80的流量

src host 192.168.1.1 && dst port 80

抓取192.168.1.1和192.168.1.2的流量

host 192.168.1.1 || host 192.168.1.2

不要抓取广播包

! broadcast

过滤mac地址:

ether host 00:88:ca:86:f8:0d
ether src host 00:88:ca:86:f8:0d
ether dst host 00:88:ca:86:f8:0d

过滤IP地址:

host 192.168.1.1
src host 192.168.1.1
dst host 192.168.1.1

过滤端口:

port 80
!port 80
dst port 80
src port 80

过滤协议:

arp
icmp

结合逻辑符号综合过滤

host 192.168.1.1 && port 8080

二、显示过滤器


使用显示过滤器需先用软件进行抓包,然后在软件filter栏输入过滤规则:

wireshark 抓包过滤器使用

比较符:

  • == 等于

  • != 不等于

  • > 大于

  • < 小于

  • >= 大于等于

  • <= 小于等于

逻辑操作符:

  • and 两个条件同时满足
  • or 其中一个条件被满足
  • xor 有且仅有一个条件被满足
  • not 没有条件被满足

ip地址:

  • ip.addr ip地址
  • ip.src 源ip
  • ip.dst 目标ip

端口过滤:

  • tcp.port
  • tcp.srcport
  • tcp.dstport
  • tcp.flags.syn 过滤包含tcp的syn请求的包
  • tcp.flags.ack 过滤包含tcp的ack应答的包

协议过滤:

arp、ip、icmp、udp、tcp、bootp、dns等

示例:

过滤IP地址:

ip.addr == 192.168.1.1   过滤该地址的包
ip.src == 172.16.1.1 过滤源地址为该地址的包

过滤端口:

tcp.port == 80 过滤tcp中端口号为80的包
tcp.flags.syn == 1 过滤syn请求为1的包

结合逻辑符综合过滤:

ip.src == 192.168.1.1 and ip.dst == 172.16.1.1