zoukankan      html  css  js  c++  java
  • Wireshark网络分析实战笔记(一)抓包过滤器

    抓包过滤器和显示过滤器的差别:


    1.抓包过滤器配置在抓包之前,wireshark仅仅抓取抓包过滤器过滤的数据

    2.显示过滤器配置在抓包后,wireshark已经抓取全部的数据包,显示过滤器让wireshark仅仅显示想看的数据包



    抓包过滤器的配置方法:


    1.在主页面的...using this filter中输入表达式(点击文本框前面的黄色button会显示经常使用的表达式):




    2.打开capture interfaces选项,在capture filter for selected interfaces中输入表达式:





    Ethernet过滤器(第二层过滤器)


    ether host <>   抓取以太网流量的源或目的MAC地址(比方:ether host 00:00:5e:00:53:00)

    ether dst <>  抓取以太网流量的目的MAC地址

    ether src<>  抓取以太网流量的源的MAC地址

    ether broadcast  抓取以太网广播流量

    ether multicast 抓取以太网多播流量

    ether proto <>  所抓以太网流量的以太网协议类型编号(比方:ether proto 0x0806)

    常见的以太网协议类型字段
    0x0800 IP
    0x0806 ARP
    0x8137 Novell IPX
    0x809b Apple Talk

    关于以太网协议类型的具体介绍能够參看这篇博文:http://blog.csdn.net/fall221/article/details/47861335

    下面两张图是一个ARP数据包和一个DNS数据包,它们的以太网协议类型字段各自是0x0806(ARP)和0x0800(IP):


    vlan <>  仅仅抓取指定VLAN的流量



    主机和网络过滤器(第三层过滤器)


    ip/ipv6  仅仅抓取IPv4或IPv6的数据包
    host <>  仅仅抓取源于或发往所指定的主机名或IP地址的流量(比方:host 192.168.1.1)
    dst host <>   仅仅抓取发往所指定的主机名或IP地址的流量
    src host <>  仅仅抓取源于所指定的主机名或IP地址的流量
    gateway <> 仅仅抓穿过host的流量
    net<>  仅仅抓取源于或发往标识符的IPv4huoIPv6网络号的流量(比方:net 192.168.1.0/24 或net 192.168.1.0 mask 255.255.255.0 )
    dst net <>  仅仅抓取发往标识符的IPv4huoIPv6网络号的流量
    src net <>  仅仅抓取源于标识符的IPv4huoIPv6网络号的流量
    broadcast   仅仅抓取IP广播包
    multicast  仅仅抓取IP多播包
    ip proto <> 仅仅抓取IP报头的协议类型字段值等于特定值的数据包

    常见的协议类型字段值
    1 ICMP
    2 IGMP
    6 TCP
    17 UDP
    47 GRE
    88 EIGRP
    89 OSPF
    下图为一个TCP数据包。当中三层IP层的Protocol字段为6,表示其上层协议为TCP:


    ip6 proto <>   仅仅抓取IPv6报头的协议类型字段值等于特定值的数据包
    icmp[icmptype]==<>  仅仅抓取特定类型的数据包(比方:icmp[icmptype]==0 ICMP echo reply数据包)
    ip[2:2]==<> 字节偏移和净载匹配过滤器(第一个2代表从第二字节開始,第二个2代表两个字节长)



    TCP/UDP过滤器(第四层过滤器)


    port <>    抓取源或目的端口匹配的数据包(比方:port 80或port http)
    dst port <>   抓取目的端口匹配的数据包
    src port <>   抓取源端口匹配的数据包
    tcp/udp dst/src portrange <>-<>   抓取TCP或UDP的源或目的端口在一个范围内的数据包(比方:tcp dst portrange 50 100 )
    tcp[tcpflags] & (tcp-rst)==1  抓取RST标识位为1的TCP数据包

    下图为一个RST标识位为1的TCP数据包:


    less <> 仅仅抓取不长于<>的数据包
    greater <> 仅仅抓取不短于<>的数据包
    tcp[13] & 0x01 =1    採用节偏移和净载匹配过滤器方法,13代表TCP数据包的第13个字节開始,13字节就是标记位,这个的意思是抓取FIN为1的数据包



    复合型过滤器

    复合过滤器就是使用“与或非”操作符连接几个单独的表达式

    !或not
    &&或and
    ||或or
    举几个样例:

    not broadcast and not multicast   不抓取广播和多播数据包(仅仅抓取单播包)

    tcp port 23 and host 192.168.1.1  仅仅抓取主机192.168.1.1的telnet流量

    tcp dst port 23 and tcp src portrange 5000-6000   抓取tcp源端口范围为5000-6000的telnet流量



    配置字节偏移和净载匹配型过滤器

    基本格式例如以下:

    proto [offset:bytes]

    proto:要抓取的协议

    offset:从协议头部開始所偏移的字节数

    bytes:抓包过滤器所要检查的字节数

    举几个样例:

    tcp [2:2]>50 and tcp[2:2]<100 port范围是50-100的TCP数据包

    tcp[14:2]<8192 抓取窗体大小字段低于8192的TCP数据包

    下面附上IP,TCP。UDP包头以供參考:








  • 相关阅读:
    pipelinewise 学习二 创建一个简单的pipeline
    pipelinewise 学习一 docker方式安装
    Supercharging your ETL with Airflow and Singer
    ubuntu中使用 alien安装rpm包
    PipelineWise illustrates the power of Singer
    pipelinewise 基于singer 指南的的数据pipeline 工具
    关于singer elt 的几篇很不错的文章
    npkill 一个方便的npm 包清理工具
    kuma docker-compose 环境试用
    kuma 学习四 策略
  • 原文地址:https://www.cnblogs.com/mthoutai/p/7134234.html
Copyright © 2011-2022 走看看