wireshark过滤器

简单介绍wireshark过滤器使用~

解决错误

在kali里面默认的版本是存在一点小问题的,打开会有错误提示

解决方式是编辑文件

在最后一行找到如图,加两个短横杠即可

开始界面


如图,从上到下,前三个就是捕获的开始停止与重启,第三个是设备列表,可以在里面对设备(网卡)进行详细的设置
接着是捕获过滤器,与直接的网卡,可以从这里直接点击相应网卡开始捕获。点击设备列表可以看到设备的详细信息,可以同时选中多个,中间的框是启用混杂模式
能够捕获不属于自己的包,下面的也是捕获过滤器

捕获过滤器

Wireshark有两种过滤器,捕获过滤器不会捕获被过滤的数据包。

语法

因为语法很简单,就不详细说了,大家应该都能直接看懂举一反三的。
通用的,可加在下面所有语法的前面(mac地址除外)

not    排除指定条件
src    捕获来自条件
dst    捕获目标条件
or    条件或
and    条件与

捕获单个地址:

1
host 192.168.99.1	host可接主机名,ipv4地址,ipv6地址,不加限定表示捕获来自

到达捕获条件的数据包

1
2
host baidu.com
host FE80:0000:0000:0000:AAAA:0000:00C2:0002

限定举例:

1
2
not host 192.168.99.1	表示不捕获来自/到达捕获条件的数据包
dst host 192.168.99.1 表示只捕获到达捕获条件的数据包

捕获地址段:

1
2
3
4
net 192.168.99.1/24
net 192.168.99.1 mask 255.255.255.0
ip6 net FE80:0000:0000::/64
ip broadcast 捕获广播包

捕获mac地址:

1
2
3
ether host 11:22:33:44:55:66
ether src 11:22:33:44:55:66
ether dst 11:22:33:44:55:66

捕获特定端口:

1
2
3
4
5
port 53			
udp port 53
tcp port 53
portrange 1-80
icmp

显示过滤器

显示过滤器会捕获被过滤的包,只是不显示过滤内容,但是他们依然存在,更改下语法即可查看被过滤的内容,是很常用的,而且功能超级强大。

如图,开始捕获后,在主面板就可以看到显示过滤器,框中可以输入语法,后面expression可以查找语法,+可以保存语法。

这是查找语法,可以看到这里面支持的语法有很多,可以搜索,右边是比较运算符。
(注:3处背景是绿色的,说明语法正确,若为红色这说明语法错误,在捕获过滤器中也适用)

显示过滤语法

比较运算符:==    !=    >    <    >=    <=    和C语言一样,还有 contains matches    为包含字段和匹配字段。
逻辑运算符:&&    ||    ^^    !                分别代表且,或,异或,非

显示过滤器中的协议可以是OSI七层模型中2-7层的任意。如下

每一种协议下面还有子类,可以以.隔开
例如:http.request.method == GET 就是使用了http的request请求的method方法
常用的协议(应用)过滤有:

arp
ip
ipv6
bootp (dhcp)
dns
tftp
http
icmp

而每一种协议下面又有很多子类,可以直接使用协议过滤,也可以使用其子类进行更加精确的过滤。


由于语法太多,wireshark提供自动补全功能和语法查找功能(上面介绍过)
自动补全就是键入.后会自动提示(如图)

然后呢,还可以翻看详细页来查看特定内容的语法,如下图,选中一个数据包查看详细内容后,会在下面显示选定内容的过滤语法(这里是eth.type)

还有呢。。选中详细的一项信息右键可以自动设置语法,如下图,意思应该是很容易看懂的。

最后来说说之前提到的逻辑运算符与比较运算符了

只显示来源ip小于等于192.168.99.200且是http.accept的数据包。

他的搜索字符串也挺好用的(在找关键信息,如password时)

可以限定查找范围,是否大小写敏感和类型。。
它还支持正则表达式,我没有仔细学,因为目前用不上。