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包头以供參考:








  • 相关阅读:
    CF960G-Bandit Blues【第一类斯特林数,分治,NTT】
    P6122-[NEERC2016]Mole Tunnels【模拟费用流】
    P5404-[CTS2019]重复【KMP,dp】
    P5405-[CTS2019]氪金手游【树形dp,容斥,数学期望】
    T183637-变异距离(2021 CoE III C)【单调栈】
    61-A
    2021-4-1考试
    JAVA日常练习—程序输入string转化为int并求和
    并发编程
    git clone 报filename too long 错误的解决方法
  • 原文地址:https://www.cnblogs.com/mthoutai/p/7134234.html
Copyright © 2011-2022 走看看