zoukankan      html  css  js  c++  java
  • wireshark 捕获过滤器

    在Wireshark中往往会抓到很多数据,这时我们就需要用到过滤器Filter来筛选出我们所关心的数据包。

    Wireshark提供了两种过滤器:

    捕获过滤器:在抓包之前就设定好过滤条件,然后只抓取符合条件的数据包。

    显示过滤器:在已捕获的数据包集合中设置过滤条件,隐藏不想显示的数据包,只显示符合条件的数据包。

    需要注意的是,这两种过滤器所使用的语法是完全不同的,在本篇博文中将介绍捕获过滤器。

    使用捕获过滤器的主要原因就是性能。如果你知道并不需要分析某个类型的流量,那么可以简单地使用捕获过滤器过滤掉它,从而节省那些会被用来捕获这些数据包的处理器资源。当处理大量数据的时候,使用捕获过滤器是相当好用的。

    新版Wireshark的初始界面非常简洁,主要就提供了两项功能:先设置捕获过滤器,然后再选择负责抓包的网卡。由此可见捕获过滤器的重要性。

    比如我们希望只抓取与80端口之间的通信,那么可以设置过滤规则“port 80”。

     

     
    捕获过滤器应用于Winpcap,并使用Berkeley Packet Filter(BPF)语法,其语法规则如下:

    协议 方向 类型 数据

    协议,可能的值:ether、ip、arp、tcp、udp、http、ftp……,如果没有特别指明是什么协议,则默认使用所有支持的协议。

    方向,可能的值:src、dst,如果没有特别指明来源或目的地,则默认使用“src or dst”作为关键字。例如,“host 10.2.2.2”与“src or dst host 10.2.2.2”是一样的。

    类型,可能的值:net、port、host,如果没有指定此值,则默认使用”host”关键字。例如,“src 10.1.1.1”与“src host 10.1.1.1”相同。

    我们还可以使用以下三种逻辑运算符,对表达式进行组合,从而创建更高级的表达式。

    逻辑与&&,逻辑或||,逻辑非!

    比如下面这个表达式,只捕获源地址是192.168.0.10并且源端口或目的端口是80的数据包。

    src 192.168.0.10 && port 80

     
    应用示例

    如果我们希望抓取某台特定主机或设备的数据包,那么可以根据设备的IP地址或MAC地址来设置过滤规则。

    比如只抓取IP地址为192.168.0.10的数据包。

    host 192.168.0.10

    如果考虑到主机的IP地址可能会变化,那么可以指定MAC地址进行过滤。

    ether host 00-50-56-C0-00-01

    也可以根据数据的流向来过滤:

    src host 192.168.0.10 //从192.168.0.10发出的数据包
    
    dst host 192.168.0.10 //发往192.168.0.10的数据包
    
    ether src host 00-50-56-C0-00-01 //从00-50-56-C0-00-01发出的数据包
    
    ether dst host 00-50-56-C0-00-01 //发往00-50-56-C0-00-01的数据包

    需要注意的是,host在表达式中是默认选项,因而上面的这几个表达式无论是否加上host都是表达相同含义。

    再比如通过端口进行过滤:

    port 8080 //只捕获8080端口的流量
    
    !port 8080 //捕获8080端口外的所有流量
    
    dst port 8080 //只捕获前往8080端口的流量

    通过协议或通信方式进行过滤:

    icmp //只捕获ICMP流量
    
    !broadcast //不要抓取广播包


    原文地址:
    https://blog.51cto.com/yttitan/1734425

  • 相关阅读:
    (转)Computer Vision Open Source Algorithm Implementations
    关于项目依赖项
    fatal error CVT1100: duplicate resource. type:MANIFEST, name:1, language:0×0409
    转:error LNK2005
    C++ string类常用函数
    [转载]同步synchronized方法和代码块
    Java语言基础常用对象API(二)泛型、Map集合
    Java语言基础IO流(输入输出流) 字符流
    Java语言基础常用对象API(二)集合框架
    Java语言基础IO流(输入输出流) 字节流、转换流
  • 原文地址:https://www.cnblogs.com/superbaby11/p/15777739.html
Copyright © 2011-2022 走看看