Wireshark的基本使用——过滤器

前言

网络上关于Wireshark的教程已有不少,博主就简单介绍一下Wireshark分析数据包时最重要的技巧之一的过滤器。。一次性嗅探到的数据包有很多,想要高效地提取出你想要的数据包或者对某个数据包中某个字段值的分析等,必不可少的就是过滤。过滤器分为捕捉过滤器(CaptureFilters)显示过滤器(DisplayFilters)

捕捉过滤器

用于决定将什么样的信息记录在捕捉结果中,需要在开始捕捉前设置

语法

Protocol Direction Host(s) Value Logical Operations Other Expression
tcp dst 10.1.1.1 80 and tcp dst 10.1.1.2 3289
  • Protocol(协议)

    可能的值: ether, fddi, ip, arp, rarp, decnet, tcp and udp等。如果没有特别指明是什么协议,则默认使用所有支持的协议

  • 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)"不同。

捕获过滤器例子

显示目的TCP端口为3128的封包

tcp dst port 3128

显示来源IP地址为10.1.1.1的封包

ip src host 10.1.1.1

显示目的或来源IP地址为10.1.2.3的封包

host 10.1.2.3

显示来源为UDP或TCP,并且端口号在2000至2500范围内的封包

src portrange 2000-2500

显示除了icmp以外的所有封包

not icmp

显示来源IP地址为10.7.2.12,但目的地不是10.200.0.0/16的封包

src host 10.7.2.12 and not dst net 10.200.0.0/16

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

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

捕获广播流量

broadcast

显示过滤器

在捕捉的结果中进行详细查找时使用,可以在得到捕捉结果后随意修改显示过滤器表达式。

语法

Protocol . String1 . String2 Comparison Operator Value Logical Operations Other Expression
ftp . passive . ip == 10.1.1.1 xor icmp.type
  • Protocol(协议)

    位于OSI模型第2至7层的协议,如:IP、TCP、DNS等

  • String1,String2(可选项)

    协议的子类

  • Comparison Operator(比较运算符)

    可以使用6种比较运算符

    英文写法 C语言写法 含义
    eq == 等于
    ne != 不等于
    gt > 大于
    lt < 小于
    ge >= 大于等于
    le <= 小于等于
  • Logical Operations(逻辑运算符)

    英文写法 C语言写法 含义
    and && 逻辑与
    or || 逻辑或
    xor ^^ 逻辑异或
    not ! 逻辑非

    逻辑异或是一种排除性的或。当其被用在过滤器的两个条件之间时,只有当且仅当其中的一个条件满足时,这样的结果才会被显示在屏幕上

    例如:"tcp.dstport 80 xor tcp.dstport 1025"

    只有当目的TCP端口为80或者来源于端口1025(但又不能同时满足这两点)时,这样的数据包才会被显示

显示过滤器例子

显示SNMP或DNS或ICMP封包

snmp || dns || icmp

显示来源或目的IP地址为10.1.1.1的封包

ip.addr == 10.1.1.1

显示来源不为10.1.2.3或目的不为10.4.5.6的包

ip.src != 10.1.2.3 or ip.dst != 10.4.5.6

显示来源或目的TCP端口号为25的封包

tcp.port == 25

显示目的TCP端口号为25的封包

tcp.dstport == 25

显示包含TCP标志的封包

tcp.flags

显示包含TCP SYN标志的封包

tcp.flags.syn == 1

排除arp流量

!arp

文本管理流量(telnet或ftp)

tcp.port == 23 || tcp.port == 21

两种过滤器的区别

可以看出这两种过滤器在使用和功能上有着区别:

  • 捕捉过滤器是数据经过的第一层过滤器,它用于控制捕捉数据的数量,以避免产生过大的日志文件。而显示过滤器是在对捕获结果进行筛选时使用,允许我们在日志文件中迅速准确地找到所需要的记录。
  • 捕捉过滤器必须在捕捉数据包之前设置,若是捕捉的数据包不是我们想要的,需要重新设置捕捉过滤器并重新捕捉数据包。显示过滤器的功能比捕捉过滤器更为强大,可以重复设置表达式对捕获的结果重复筛选而不需要重新捕获数据包。

跟踪TCP流

处理TCP协议时,想查看TCP流中的应用层数据,"Following TCP streams"功能将会很有用。
如查看ftp流的命令控制或者数据控制信息。或者仅仅只需要一个显示过滤来显示某个TCP流的包。这些都可以通过Wireshark的"Following TCP streams"功能来实现。 
Follow Tcp Stream会装入一个过滤来选择你已经选择的TCP流的所有包。

小结

对于Wireshark的使用推荐:

参考:https://openmaniak.com/cn/wireshark_filters.php

多实践多分析~

捕捉过滤器(CaptureFilters)和显示过滤器(DisplayFilters)--Wireshark的更多相关文章

  1. 一站式学习Wireshark(十):应用Wireshark显示过滤器分析特定数据流(下)

    介绍 掌握显示过滤器对于网络分析者来说是一项必备的技能.这是一项大海捞针的技巧.学会构建,编辑,保存关键的显示过滤器能够节省数小时的时间. 与捕捉过滤器使用的BPF语法不同,显示过滤器使用的是Wire ...

  2. 一站式学习Wireshark(九):应用Wireshark显示过滤器分析特定数据流(上)

    介绍 掌握显示过滤器对于网络分析者来说是一项必备的技能.这是一项大海捞针的技巧.学会构建,编辑,保存关键的显示过滤器能够节省数小时的时间. 与捕捉过滤器使用的BPF语法不同,显示过滤器使用的是Wire ...

  3. wireshark捕获/显示过滤器表达式书写规律说明

    一.说明 1.1 背景说明 对于大多数刚开始接触wireshark的使用者而言,经常是开始的时候时候看到wireshark能把所有数据包都拦截下来觉得强无敌,但是面对一大堆的数据包要问有什么用或者说想 ...

  4. wireshark显示过滤器的几种用法(转自他人博客)

    本文章转自:http://blog.51cto.com/houm01/1872652 几种条件操作符 ==   eq    等于    ip.addr == 192.168.0.1   ip.addr ...

  5. 在Wireshark中使用过滤器——显示过滤器

    在Wireshark运行过程中选择搜索(Ctrl-F),第一个默认的搜索选项就是显示过滤器. 显示过滤器用于捕获文件,用来告诉Wireshark只显示那些符合过滤条件的数据包. 显示过滤器比捕获过滤器 ...

  6. wireshark中的抓包过滤器和显示过滤器

    一  抓包过滤器 语法说明:BPF语法(Berkeley Packet Filter) 类型Tpye:host,net,port 方向Dir:src,dst 协议Proto:ether,ip,tcp, ...

  7. MVC过滤器:自定义操作过滤器

    一.操作过滤器 1.定义 操作过滤器用于实现IActionFilter接口以及包装操作方法执行.IActionFilter接口声明两个方法:OnActionExecuting和OnActionExec ...

  8. MVC过滤器:自定义授权过滤器

    一.授权过滤器 授权过滤器用于实现IAuthorizationFilter接口和做出关于是否执行操作方法(如执行身份验证或验证请求的属性)的安全策略.AuthorizeAttribute类继承了IAu ...

  9. 学习笔记_过滤器详细_2(过滤器JavaWeb三大组件之一)

    过滤器详细 5 四种拦截方式 我们来做个测试,写一个过滤器,指定过滤的资源为b.jsp,然后我们在浏览器中直接访问b.jsp,你会发现过滤器执行了! 但是,当我们在a.jsp中request.getR ...

随机推荐

  1. 2.8 The Object Model -- Enumerables

    在Ember.js中,枚举是包含许多子对象的任何对象,并允许你使用Ember.Enumerable API和那些子对象一起工作.在大部分应用程序中最常见的可枚举是本地JS数组,Ember.js扩展到符 ...

  2. Smarty小结提纲

    Smarty:模板技术 实现功能:前后分离. 原理:主要通过Smarty核心类实现,调用display方法,将模板文件读取,用正则进行替换,替换完保存到临时文件,将临时文件加载到当前页面. 配置文件( ...

  3. Smarty 模板布局继承

    Smarty 模板继承 在覆盖父模板的{block}块以外的地方, 子模板不能定义任何内容.任何在{block}以外的 内容都会被自动忽略. 在子模板和父模板中的{block}内容,可以通过 appe ...

  4. DHCP服务器配置实践

    实验背景:在LINUX系统上为一园区网络配置DHCP服务器,给网络内各主机自动分配IP地址,地址池范围为:192.168.X.100~192.168.X.200,配置作用域选项,其中网关为:192.1 ...

  5. 1linux的基本命令

    查看命令的帮助信息man 命令名 文件操作touch 建立文件 (对于已存在文件,更新时间)cat 查看文件 (-n 自动加上行号)rm 删除文件cp 拷贝文件mv 移动/重命名文件more 分页查看 ...

  6. 20145204《Java程序设计》第10周学习总结

    网络编程 网络编程:在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据发送到指定的位置,或者接收到指定的数据,这个就是狭义的网络编程范畴.在发送和接收数据时,大部分的程序设计 ...

  7. KMP&拓展KMP

    KMP算法 说明 KMP算法是一种比较高效的字符串匹配算法,可以在线性时间内求出一个串在另一个串的所有匹配位置. 解析 详解KMP 设模板串是 \(pattern\) 令 \(next[i] = ma ...

  8. POJ 2240 Arbitrage(判正环)

    http://poj.org/problem?id=2240 题意:货币兑换,判断最否是否能获利. 思路:又是货币兑换题,Belloman-ford和floyd算法都可以的. #include< ...

  9. 使用javascript模拟常见数据结构(四)

    七.树 树是一种非线性的分层的数据结构,在现实生活中比较常见的例子比如家谱和公司的组织架构图,如下所示: 一个树结构存在着一系列的父子结构,并且有着一个根节点,这种结构本质上表明了一对多的关系. 那, ...

  10. Java中的String和StringBuffer

    在任何编程语言中,字符串都是我们编写程序时不可避免要用到的常用的数据类型之一. 对于Java初学者而言,当谈到String和StringBuffer的区别时,通常都会有些困惑. 而要弄清楚两者之间的区 ...