zoukankan      html  css  js  c++  java
  • wireshark 过滤规则

    • 捕获

    最简单的一个例子:
    host 10.21.11.86 and 10.21.11.38
    用来只抓取这两台主机之间的数据包

    例子:
    以太网地址例子:抓取网络地址 08:00:08:15:ca:fe 上所有流入流出的数据包
    ether host 08:00:08:15:ca:fe IP地址例子:抓取IP地址 192.168.0.10 上所有流入流出的数据包
    host 192.168.0.10


    协议例子:抓取 80 端口上的所有流入流出的TCP协议的包。
    tcp port 80

    组合例子:抓取 192.168.0.10 上除 http 之外的所有流入流出的数据包
    host 192.168.0.10 and not tcp port 80 注意:如果用了抓取TCP/IP数据包的关键字”host”、”port”,结果将是忽略所有ARP数据包。

    捕获过滤用语法

    [x] x 为可选内容
    a|b 选 a 或 b
    <x> x 为必选
    xyz xyz 为关键字,不可改变,必需。

    [not] primitive [and|or [not] primitive …]
    与、或、非 = and、or、not

    A primitive is simply one of the following: [src|dst] host <host>
    尖括号里的是一个主机IP或主机名字,用src、dst来设定这是目的地址或源地址。
    这个选项能过滤主机IP和名字

    ether [src|dst] host <ehost>
    尖括号里的是一个网络地址,用src、dst来设定这是目的地址或源地址。

    gateway host <host>
    <host> 是一个网关,抓取流过 <host> 的数据包,但这些数据包的目的地址和源地址都不是 <host>。

    [src|dst] net <net> [{mask <mask>}|{len <len>}]
    <net>表示一个网络地址,可以用 src、dst来表示这个网络是目的地址还是源地址的数据包。如果没有”src/dst”,表示全部数据包。可以选择加上子网掩码或使用无类型域间选路(CIDR)的方式。

    [tcp|udp] [src|dst] port <port>
    [tcp|udp]是选择抓取的协议类型,<port>指定端口。需要注意的是,[tcp|udp]必需在[src|dst]之前。

    less|greater <length>
    抓取碎片数据包或指定长度的数据包。less 与 greater 分别对应小包与大包。

    ip|ether proto <protocol>
    在数据链路层上,在指定的IP地址或网络地址(ip|ether)上抓取指定协议<protocol>的数据包。


    ether|ip broadcast|multicast
    在指定的网络地址或IP地址上抓取广播包或组播包。

    •  显示

    一、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)


    wireshark匹配规则很强大。
    还有一个规则应用是关于数据包内容的字节匹配的。
    例如:
    //匹配TCP的payload(TCP的实际数据内容),前6个字节为 E3 11 00 00 00 48 (电驴协议)
    //20是TCP头部的长度,21-~为TCP的有效数据
    TCP[20:6] == E3:11:00:00:00:56 and TCP[29] == 54

    还可以matches匹配一些正则表达式


    //匹配UDP的payload(UDP的实际数据内容),匹配 第1和第2字节分别是0xF1、0x0; 第4和第5字节分别为0x00、0x00 (电驴协议)
    //8是UDP的头部长度,8-~为UDP包的有效数据
    UDP[8:2] == F1:0D and UDP[10:2] ==00:00

  • 相关阅读:
    linux---集群架构初探(29) zabbix安装--5.0LTS+nginx+mysql
    linux---集群架构初探(28)常用监控命令
    合并两个有序数组
    从源码了解HashMap和ConcurrentHashMap的基本实现(下)
    从源码了解HashMap和ConcurrentHashMap的基本实现(上)
    从源码了解ArrayList和LinkedList
    从源码了解String,StringBuffer和StringBuilder
    java基本数据类型
    jsp 中 include指令 用法, <%@ include file="..."%> 和 <jsp:include page="..." flush="true" />的区别?
    AWS SAA_C01 考试分享。
  • 原文地址:https://www.cnblogs.com/jdhu/p/4156893.html
Copyright © 2011-2022 走看看