WireShark常用过滤器语法

可以wireshark--查看用户手册或帮助--说明文档查看查看使用方法。

为了安全考虑,wireshark只能查看封包,而不能修改封包的内容,或者发送封包。

Wireshark能获取HTTP,也能获取HTTPS,但是不能解密HTTPS,所以wireshark看不懂HTTPS中的内容。如果是处理HTTP、HTTPS 还是建议大家用Fiddler, 其他协议比如TCP、UDP等等就可以直接使用Wireshark。

1.界面介绍

1号窗口展示的是wireshark捕获到的所有数据包的列表。注意最后一列Info列是wireshark组织的说明列并不一定是该数据包中的原始内容。

2号窗口是1号窗口中选定的数据包的分协议层展示。

3号窗口是1号窗口中选定的数据包的源数据,其中左侧是十六进制表示右侧是ASCII码表示。另外在2号窗口中选中某层或某字段,3号窗口对应位置也会被高亮。

 2.捕获过滤器

捕获过滤器表达式作用在wireshark开始捕获数据包之前,只捕获符合条件的数据包,不记录不符合条件的数据包。一般不用。

3.显示过滤器

显示过滤器表达式作用在在wireshark捕获数据包之后,从已捕获的所有数据包中显示出符合条件的数据包,隐藏不符合条件的数据包。

显示过滤表达示在工具栏下方的“显示过滤器”输入框输入回车即可生效。

4.表达式

一、捕获过滤器表达式

语法:

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

说明:

  • Protocol(协议):ether,fddi, ip,arp,rarp,decnet,lat, sca,moprc,mopdl, tcp , udp 等,如果没指明协议类型,则默认为捕捉所有支持的协议。
  • Direction(方向):src, dst,srt,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”)具有相同的优先级,运算时从左至右进行。

(1) 只捕获某主机的HTTP流量

host 192.168.5.231 and port 80 and http  #只捕获主机192.168.5.231 、端口为80的http流量。

not port 80 and !http  # 捕获除 http和端口80 之外的其他所有流量

(2) 只捕获某主机的所有流量

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的所有主机的所有流量

二、显示过滤器表达式

一条基本的表达式由过滤项、过滤关系、过滤值三项组成。

比如ip.addr == 192.168.1.1,这条表达式中ip.addr是过滤项、==是过滤关系,192.168.1.1是过滤值(整条表达示的意思是找出所有ip协议中源或目标ip、等于、192.168.1.1的数据包)

过滤项

wireshark的过滤项是“协议“+”.“+”协议字段”的模式。

以端口为例,端口出现于tcp协议中所以有端口这个过滤项且其写法就是tcp.port。

wireshark支持的全部协议及协议字段可查看:https://www.wireshark.org/docs/dfref/

 过滤关系

过滤关系就是大于、小于、等于等几种等式关系,我们可以直接看官方给出的表

注意其中有“English”和“C-like”两个字段,这个意思是说“English”和“C-like”这两种写法在wireshark中是等价的、都是可用的。

过滤值

过滤值就是设定的过滤项应该满足过滤关系的标准。

(1)数据链路层

筛选mac地址为04:f9:38:ad:13:26的数据包----eth.src == 04:f9:38:ad:13:26

(2)网络层

筛选ip地址为192.168.1.1的数据包----ip.addr == 192.168.1.1

筛选192.168.1.0网段的数据---- ip contains "192.168.1"

筛选192.168.1.1和192.168.1.2之间的数据包----ip.addr == 192.168.1.1 && ip.addr == 192.168.1.2

ip筛选

筛选从192.168.1.1到192.168.1.2的数据包----ip.src == 192.168.1.1 && ip.dst == 192.168.1.2

  •  ip筛选常用ip目的地址筛选(dst)和ip源地址筛选(src)
  • ip==xxx.xxx.xxx.xxx用于筛选源地址和目的地址都是该ip的包

(3)传输层

筛选tcp协议的数据包----tcp

筛选除tcp协议以外的数据包----!tcp

筛选端口为80的数据包----tcp.port == 80

筛选12345端口和80端口之间的数据包----tcp.port == 12345 && tcp.port == 80

筛选从12345端口到80端口的数据包----tcp.srcport == 12345 && tcp.dstport == 80

(4)应用层

筛选url中包含.php的http数据包----http.request.uri contains ".php"

筛选内容包含username的http数据包----http contains "username"

tcp、udp、http等协议筛选

        要筛选比如tcp、udp、http等相关协议的包,输入一个协议名字就可以筛选了,上图为udp的相关协议包

协议的端口和方法

(1)端口

  • tcp.srcport 源端口;tcp.dstport 目的端口
  • tcp.port==80是不是就是源端口和目的端口都得是80的tcp协议包?不是的,这个是源端口或目的端口是80的tcp数据包

(2)方法

 

  • 协议里面的一些方法,比如http的GET、PUT等这些方法
  • http中http.request表示请求头中的第一行(如GET index.jsp HTTP/1.1),http.response表示响应头中的第一行(如HTTP/1.1 200 OK),其他头部都用http.header_name形式。

三、运算符

逻辑

        and, &&  与 (两种写法都可以)

         or, ||   或

         not, !   非

 比较

        eq, == 相等 两种写法都可以

        ne, != 不等

        gt,> 大于 

        lt,< 小于 

        ge, >= 大于等于

         le,<= 小于等于

 包含或者匹配运算符

        contains  【包含 】; matches 或 ~   【大小写不敏感 是否匹配】

       含义是Info是否包含指定值。

in范围运算符

         tcp.port in {80 443 8080}

5.追踪流

 

用来追踪此两个主机进行的所有数据交换。显示内容为传输的数据内容。下图右侧为追踪流显示内容,可发现和右侧一一对应。

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fang·up·ad

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值