wireshark筛选常用命令

wireshark抓包如果吗没有条件限制总是会无差别抓包,因此能够筛选到我们想要的包的常用筛选命令需要我们掌握。该篇主要叙述最常用的命令和命令组合的方式。

ip筛选

我们输入筛选命令都在如图,筛选框输入的,ip筛选常用ip目的地址筛选和ip源地址筛选

上图为源地址筛选命令和效果图

目的地址筛选命令和效果图

另外有人可能会疑问那ip==xxx.xxx.xxx.xxx,用于筛选什么呢?这个是用于筛选源地址和目的地址都是该ip的包

协议筛选

我们想要筛选比如tcp、udp、http等相关协议的包

很方便,就是打一个协议名字就可以筛选了,上图为tcp和udp的相关协议包

端口和方法

端口

端口其实一般我们用的比较少,因为协议一般都会有默认的端口号,但有些特殊情况要用到

很显然上图就是tcp协议源端口和目的端口为80的相关协议。这是后又有人想问如果是tcp.port==80是不是就是源端口和目的端口都得是80的tcp协议包?不是的,这个是源端口或目的端口是80的tcp数据包,哈哈,别和ip混淆了,如下图。

方法

这个方法就是指协议里面的一些方法,我测试了http的GET、PUT等这些方法,下图:

综合筛选

那么给大家出个题,(http.request.method=="PUT" or http.request.method=="POST") and (ip.dst==10.15.112.61 or ip.src==10.15.112.61)什么意思?

运行结果如下:

这样我们不难看出多个命令的组合就是or,and这些链接词,方便我们更加精准筛选到我们所需要的包

然后我们可以通过下图方式进行分析包的具体内容

提示:如果你自己操作到这一步的话,进入查看该包的内容,就会发现一个比较奇特的现象。

怎么跳出内容框后内容筛选框的关键字变了,tcp.stream eq 6.这个是wireshark自动做的变化,每个包都属于不同的流,比如一个http链接客户端和服务器会有很多沟通,wireshark会将每个流顺序做一个编号,比如刚刚我打开的这个包就是wireshark标记为6的这个http协议流里面的一个包,wireshark会将捕获的该流的所有相关包都列出来,方便我们更好理解整个流的通讯内容。

而eq表示等于,gt大于,ge大于等于,ne不等,lt小于,le小于等于。所以通过现象我们就又学到一系列筛选流的命令。

总结

一、IP过滤:包括来源IP或者目标IP等于某个IP
比如:

ip.src addr==192.168.0.208 or ip.src addr eq 192.168.0.208 显示来源IP
ip.dst addr==192.168.0.208 or ip.dst addr eq 192.168.0.208 显示目标IP

二、端口过滤:
比如:

tcp.port eq 80 // 不管端口是来源的还是目标的都显示
tcp.port == 80
tcp.port eq 2722
tcp.port eq 80 or udp.port eq 80
tcp.dstport == 80 // 只显tcp协议的目标端口80
tcp.srcport == 80 // 只显tcp协议的来源端口80

tcp.port >= 1 and tcp.port <= 80 过滤端口范围

三、协议过滤:tcp
udp
arp
icmp
http
smtp
ftp
dns
msnms
ip
ssl

等等
排除ssl包,如!ssl 或者 not ssl

四、包长度过滤:
比如:
udp.length == 26 这个长度是指udp本身固定长度8加上udp下面那块数据包之和
tcp.len >= 7 指的是ip数据包(tcp下面那块数据),不包括tcp本身
ip.len == 94 除了以太网头固定长度14,其它都算是ip.len,即从ip本身到最后
frame.len == 119 整个数据包长度,从eth开始到最后

五、http模式过滤:
例子:
http.request.method == “GET”
http.request.method == “POST”
http.request.uri == “/img/logo-edu.gif”
http contains “GET”
http contains “HTTP/1.”
// GET包
http.request.method == “GET” && http contains “Host: ”
http.request.method == “GET” && http contains “User-Agent: ”
// POST包
http.request.method == “POST” && http contains “Host: ”
http.request.method == “POST” && http contains “User-Agent: ”
// 响应包
http contains “HTTP/1.1 200 OK” && http contains “Content-Type: ”
http contains “HTTP/1.0 200 OK” && http contains “Content-Type: ”
一定包含如下
Content-Type:
六、连接符 and / or
七、表达式:!(arp.src==192.168.1.1) and !(arp.dst.proto_ipv4==192.168.1.243)

点赞