Wireshark介绍 与 过滤器表达式语法

Wireshark介绍 与 过滤器表达式语法

目录:

一、WireShark界面说明:

1、开始捕捉界面:

2、捕捉结果界面:

3、着色规则:

二、捕捉过滤器:

1、捕捉过滤器表达式:

2、捕捉过滤器语法:

三、显示过滤器:

1、基本过滤表达式:

2、复合过滤表达示:

3、常见用显示过滤需求及其对应表达式:


WireShark安装,安装非常简单,处理安装路径自定义之外,其他都直接点下一步。

一、WireShark界面说明:

1、开始捕捉界面:

点击菜单的“捕获-选项”,设置需要捕获的网络适配器,点击“开始”。也可以在菜单“捕获-开始”、“捕获-结束”来控制开始结束。在“捕获-捕获过滤器”编辑捕获表达式:

在这里插入图片描述

在上述“捕获”菜单中进行的操作,也可以在工具栏进行,如下图:

在这里插入图片描述

2、捕捉结果界面:

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

2号窗口是1号窗口中选定的数据包的分协议层展示。底色为红色的是因为wireshark开启校验和验证而该层协议校验和又不正确所致。

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

Wireshark介绍 与 过滤器表达式语法

(1)点击每一行时,wireshark很智能的在记录前用标线表明了本次会话的记录范围[从三次握手到四次挥手]

在这里插入图片描述

(2)http请求是“请求->响应”式的,需要查看对应请求的响应时,可以在包上右键,选择“追踪流(Follow TCP Stream)”

在这里插入图片描述

在这里插入图片描述

(3)被认为最难的其实还是2号窗口展开后的内容不懂怎么看,以IP层为例:每一行就对应该层协议的一个字段;中括号行是前一字段的说明。冒号前的英文是协议字段的名称;冒号后是该数据包中该协议字段的值。

Wireshark介绍 与 过滤器表达式语法

数据包的大致结构:

  • 第一行:数据包整体概述,
  • 第二行:链路层详细信息,主要的是双方的mac地址
  • 第三行:网络层详细信息,主要的是双方的IP地址
  • 第四行:传输层的详细信息,主要的是双方的端口号。

在这里插入图片描述

在这里插入图片描述

(4)tcp数据包结构及在wireshark中的位置:

在这里插入图片描述

在这里插入图片描述

3、着色规则:

在菜单“视图-着色规则”下查看:

Wireshark介绍 与 过滤器表达式语法

 

 

WireShark有两种过滤器:捕捉过滤器(用于决定将什么样的信息记录在捕捉结果中)和 显示过滤器(用于在捕捉结果中进行详细查找);两者的区别:捕捉过滤器在抓包前进行设置,决定抓取怎样的数据;显示过滤器用于过滤抓包数据,方便stream的追踪和排查。捕捉过滤器仅支持协议过滤,显示过滤器既支持协议过滤也支持内容过滤。两种过滤器它们支持的过滤语法并不一样。

二、捕捉过滤器:

1、捕捉过滤器表达式:

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

Wireshark介绍 与 过滤器表达式语法

也可以通过下面的步骤进入捕捉过滤器进行添加或者删减相应的过滤器:

Wireshark介绍 与 过滤器表达式语法

2、捕捉过滤器语法

(1)协议过滤语法:

语法: Protocol Direction Host(s) Value Logical Operations Other expression
例子: tcp dst 10.1.1.1 80 and tcp dst 10.2.2.2 3128

示例:

(host 10.4.1.12 or src net 10.6.0.0/16) and tcp dst portrange 200-10000 and dst net 10.0.0.0/8

捕捉IP为10.4.1.12或者源IP位于网络10.6.0.0/16,目的IP的TCP端口号在200至10000之间,并且目的IP位于网络 10.0.0.0/8内的所有封包。

(2)字段详解:

Protocol(协议):
可能值: ether, fddi, ip, arp, rarp, decnet, lat, sca, moprc, mopdl, tcp and udp.
如果没指明协议类型,则默认为捕捉所有支持的协议。
注:在wireshark的HELP-Manual Pages-Wireshark Filter中查到其支持的协议。

Direction(方向):
可能值: src, dst, src and dst, src or dst
如果没指明方向,则默认使用 “src or dst” 作为关键字。
”host 10.2.2.2″与”src or dst host 10.2.2.2″等价。

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”)具有相同的优先级,运算时从左至右进行。
“not tcp port 3128 and tcp port 23″与”(not tcp port 3128) and tcp port 23″等价。
“not tcp port 3128 and tcp port 23″与”not (tcp port 3128 and tcp port 23)”不等价。

 

三、显示过滤器:

显示过滤器作用在wireshark捕获数据包之后,依据显示过滤器表达式,对捕捉到的数据包依据协议或包的内容进行过滤,从已捕获的所有数据包中显示出符合条件的数据包,隐藏不符合条件的数据包。

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

Wireshark介绍 与 过滤器表达式语法

1、基本过滤表达式:

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

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

(1)过滤项:

wireshark的过滤项是“协议“+”.“+”协议字段”的模式。以端口为例,端口出现于tcp协议中所以有端口这个过滤项且其写法就是tcp.port。推广到其他协议,如eth、ip、udp、http、telnet、ftp、icmp、snmp等等其他协议都是这么个书写思路。

当然wireshark出于缩减长度的原因,有些字段没有使用协议规定的名称而是使用简写(比如Destination Port在wireshark中写为dstport),又出于简便使用增加了一些协议中没有的字段(比如TCP协议只有源端口和目标端口字段,为了简便使用,wireshark增加了tcp.port字段来同时代表这两个)。

(2)过滤关系:

过滤关系就是大于、小于、等于等几种等式关系。注意其中有“English”和“C-like”两个字段,这个意思是说“English”和“C-like”这两种写法在wireshark中是等价的、都是可用的。

Wireshark介绍 与 过滤器表达式语法

(3)过滤值:

过滤值就是设定的过滤项应该满足过滤关系的标准,比如500、5000、50000等等。过滤值的写法一般已经被过滤项和过滤关系设定好了,只是填下自己的期望值就可以了。

2、复合过滤表达示:

所谓复合过滤表达示,就是指由多条基本过滤表达式组合而成的表达示。基本过滤表达式的写法还是不变的,复合过滤表达示多出来的东西就只是基本过滤表达示的“连接词”:

Wireshark介绍 与 过滤器表达式语法

3、常见用显示过滤需求及其对应表达式:

(1)数据链路层:

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

筛选源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

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

(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)应用层:

特别说明—-http中http.request表示请求头中的第一行(如GET index.jsp HTTP/1.1),http.response表示响应头中的第一行(如HTTP/1.1 200 OK),其他头部都用http.header_name形式。

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

筛选内容包含username的http数据包—-http contains “username”

显示post请求方式的http封包—http.request.method== “POST”

显示请求的域名为tracker.1ting.com的http封包—http.host == “tracker.1ting.com”

 

 

参考博客:

https://blog.csdn.net/cumirror/article/details/7054496

https://www.cnblogs.com/lsdb/p/9254544.html

https://blog.csdn.net/qq_30682027/article/details/83021901

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/100041.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • Intellij Idea 创建JavaWeb项目入门(一)

    Idea创建JavaWeb项目步骤:1、打开IntellijIdeaIDE,然后点击CreateNewProject2、左侧选择JavaEnterprise,右侧选择WebApplication3、这里输入项目名字为firstdemo,然后点击Finish完成。生成如下的项目结构:项目配置:1、在web/WEB-INF下创建两个文件夹classes和…

  • C语言面试题汇总(持续更)「建议收藏」

    C语言面试题汇总(持续更)「建议收藏」笔者最近在找工作,因此对应聘C/C++嵌入式开发工程师容易被问到,或者经常搞不清楚的问题做一个汇总,也希望能对找工作的小伙伴起到帮助参考的作用。本篇集中于C语言方面的面试题目。因为是自己总结的,可能会存在错误,还烦请各位读者批评指正。一、变量内存分配1.一个由C/C++编译的程序占用的内存分为以下几个部分:①栈区——局部变量——向低地址生长——自动释放——其操作方式类似于数据结构中的栈。②堆区——向高地址生长——手动分配、释放的存储区——malloc,fr..

  • freeswitch之呼叫中心acd模块开发

    freeswitch之呼叫中心acd模块开发一、定义:ACD(AutomaticCallDistributor)自动呼叫分配,也叫智能选择座席。它是呼叫中心整个前台接入系统逻辑功能的描述:把接入的呼叫转接到正确的座席员桌前。ACD是现代呼叫中心有别于一般的热线电话系统和自动应答系统的重要标志,其性能的优劣直接影响到呼叫中心的效率和顾客的满意度。二、ACD包含的功能点:1、程控交换功能ACD在本质上也是交换机的一种类型,必须具有程控交换最基本的话务交换功能。2、排队功能ACD必须具有话务排队的功能,所谓排队是指在内线都

  • mongo启动报错:api-ms-win-crt-runtime-l1-1-0.dll 丢失

    mongo启动报错:api-ms-win-crt-runtime-l1-1-0.dll 丢失mongo启动报错:api-ms-win-crt-runtime-l1-1-0.dll 丢失

  • Node.js【2】开发环境搭建(Windows、Linux&Mac)

    Node.js【2】开发环境搭建(Windows、Linux&Mac)

    2021年11月29日
  • 20190202 学习「建议收藏」

    20190202 学习「建议收藏」20190202 学习

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号