捕获过滤器:当进行数据包捕获时,只有那些满足给定的包含/排除表达式的数据包会被捕获。
显示过滤器:该过滤器根据指定的表达式用于在一个已捕获的数据包集合中,隐藏不想显示的数据包,只显示那些需要的数据包,意思就是全部数据包都会被捕获,但是你可以显示你想要的内容来看就行了。
对比:显示过滤器的功能更加强大过滤的内容更加丰富,适合实时抓包排障,例如可以精确到某个域名。捕获过滤器更加适合需要长时间捕获抓包,从而排障的,例如一抓就是一天,这数据量会很大。例如一个例子: 举个例子,在一台服务器(TCPsever,端口5005)上,一个客户端(其他家公司设备)运行几天,就会突然掉线。这时候,说不清是服务器把客户端踢下线,还是客户端主动离线。
当然,这个时候在服务器添加日志记录即可,就可以找“真凶”。如果是对方设备主动离线,对方又不配合时,对方“不相信你的日志”。这个时候,使用wireshark抓包,找出对方设备(TCPClient)先发出的FIN断开连接的证据,然后“甩”他脸上即可。
关于显示过滤器的语句会放在:https://blog.51cto.com/xiaoyuanzheng/5795069
这里主要介绍捕获过滤器。

捕获过滤使用方法

1.选择捕获capture->捕获过滤器capture filter,然后编辑一个新的捕获过滤器选项: image.png
图中右侧是提供捕获语句的常见模板,左侧是名称。左下角是新建的,创建好你想要的语句后,点击ok就行了

2.应用到网卡 一个可以在开始界面选择网卡,应用捕获条件,参考另外别人的图片 image.png

如果没开始界面了,直接选择左上角的,小圆心,他其实是选项。也可以在菜单的--捕获--选项

image.png

image.png 3、捕获 选择指定的网卡,你如果可以在使用过滤器里面选择你想要的,就选择,如果选择不了,就学学我,乖乖的输入过滤器的名称(或者内容),不过,我目前使用的版本实测,可以直接如果语句,因为他就是不显示过滤器给我,我直接输入过滤的语句了,例如: port 53 image.png

应用捕获条件后,先不用点击开始,都说了是长时间的收集了,万一磁盘爆掉怎么办,所以点击到输出,在下图1 选择一个保存的路径,最好加一下后缀如pcap,2选择要不要分包(肯定要,不然一个文件20g,打开都卡死了),3选择循环包,只保留几个数据包,这样避免数据无限写入,只会在固定大小写入。之后,点击开始,就可以捕获数据包了 image.png

捕获过滤器语法 嗯,这个是真的,语句内容有限,大概只能到ip和端口,协议

<Protocol> <Direction> <Host(s)> <Value> < Logical Operations> <Other expression>

host 192.168.5.231 and port 80 and http    #只捕获主机192.168.5.231 的http流量
port 80 and http          #捕获所有经过该接口的http流量
host 192.168.5.231 and not port 80# 捕获主机192.168.5.231除 http 之外的其他所有流量
not port 80               #捕获除 http 之外的其他所有流量
not port 80 and !http     #捕获除 http 之外的其他所有流量
host 192.168.5.231    #捕获源目主机均为192.168.5.231
dst 192.168.5.231     #捕获目的主机均为192.168.5.231
src 192.168.5.231     #捕获来源主机均为192.168.5.231
net 192.168.5.0/24    #捕获网段为d192.168.5.0的所有主机的所有流量

Protocol(协议): ether,fddi, ip,arp,rarp,decnet,lat, sca,moprc,mopdl, tcp , udp 等,如果没指明协议类型,则默认为捕捉所有支持的协议。 Direction(方向):src, dst,src and dst, src or dst等,如果没指明方向,则默认使用 “src or dst” 作为关键字。 Host(s): net, port, host, portrange等,默认使用”host”关键字,”src 10.1.1.1″与”src host 10.1.1.1″等价。 Logical Operations(逻辑运算):not, and, or 等,否(“not”)具有最高的优先级。或(“or”)和与(“and”)具有相同的优先级,运算时从左至右进行。

基于类型过滤 Wireshark可以基于类型进行捕获过滤。其中可能使用的类型有主机host,网段net,端口port,端口范围portrange和特殊类型。

主机host 语法格式: host host

解析:第一个host表示过滤器类型为host:第二个host表示主机地址,可以是ipv4或Ipv6地址。 例:捕获主机192.168.1.10 的数据包。

host 192.168.1.10 -2 网段net net用来指定捕获那个网段的数据包,其中网络类型的过滤器有三种形式。分别是: net net net mask net CIDR

net net net 192.168.1.0 //对应掩码 255.255.255.255 net 192.168.1 //对应掩码 255.255.255.0 net 192.168 //对应掩码 255.255.0.0 net 192 //对应掩码255.0.0.0 net mask形式 net 192.168.1.0 mask 255.255.255.0 net CIDR形式 net 192.168.1.0/24 端口port 语法格式: port port

例: port 80 端口范围 语法:portrange port1-port2

例: portrange 1-100 特殊类型 gateway host \

基于传输方向的过滤

  1. 源src 可以在host,net,port,portrange类型前面田间src;

src host host //仅捕获地址为指定主机的数据包 src net net //仅捕获源地址为指定网段的数据包 src port port //仅捕获源端口为指定端口的数据包 src portrange port1-port2 //仅捕获端口范围为指定端口范围的数据包 2. 目标dst

dst host host //仅捕获地址为指定主机的数据包 dst net net //仅捕获源地址为指定网段的数据包 dst port port //仅捕获源端口为指定端口的数据包 dst portrange port1-port2 //仅捕获端口范围为指定端口范围的数据包 3. 源或者目标

src or dst host src or dst net src or dst port src or dst portrange port1-port2 4. 源和目标

src and dst host src and dst net src and dst port src and dst portrange port1-port2 5. 特殊方向 除了上述还有两种特殊方向捕获过滤器,分别是: 广播:broadcast 多播:multicast

ether broadcast //捕获以太网广播流量 ip broadcast //捕获ip广播流量 ether multicast //捕获哦以太网多播流量 \

基于数据过滤

  1. 长度过滤 可以使用 less ,greater关键字

less 12 也可写成 len <=12 greater 12 也可写成 len>=12 2. 基于内容过滤

语法格式: proto[expr:size] relop express 参数解析:

proto:支持的协议,有ether,fddi,tr,wlan,ppp,slip,link,ip,arp,rarp,tcp,udp,icmp,ip6或radio expr :指定协议的偏移地址 size:指定数据长度其中,单位bit relop:指定使用的运算符,关系运算符有,>,<,>=,<=.=,!=,二进制运算符有,+,-,*,/,%,&,|,^,<<,>> 例如:捕获所有ipv4地址包,

ip[0] & 0xf !=5 使用多个捕获过滤器 通过结合逻辑运算符可以同时使用多个捕获过滤器。

有: not (!) ,and(&&),or(||) ,

例如:捕获主机192.168.1.100,而且tcp端口为80的数据包

host 192.168.1.100 and tcp port 80 注意: not(!) 具有最高优先级,and(&&)和 or(||)优先级相等。