两种过滤器

捕捉过滤器:用于决定将什么样的信息记录在捕捉结果中。需要在开始捕捉前设置
显示过滤器:在捕捉结果中进行详细查找。他们可以在得到捕捉结果后随意修改

1、捕捉过滤器

 

语法实例:

tcp dst port 3128   显示目的TCP端口为3128的封包。

ip src host 10.1.1.1   显示来源IP地址为10.1.1.1的封包。

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

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

not imcp   显示除了icmp以外的所有封包。(icmp通常被ping工具使用)

src host 10.7.2.12 and not dst net 10.200.0.0/16   显示来源IP地址为10.7.2.12,但目的地不是10.200.0.0/16的封包。

(src host 10.4.1.12 or src net 10.6.0.0/16) and tcp dst portrange 200-10000 and dst net 10.0.0.0/8   显示来源IP为10.4.1.12或者来源网络为10.6.0.0/16,目的地TCP端口号在200至10000之间,并且目的位于网络10.0.0.0/8内的所有封包。

注意事项: 
1)当使用关键字作为值时,需使用反斜杠“\”。 
    "ether proto \ip" (与关键字"ip"相同)  这样写将会以IP协议作为目标

"ip proto \icmp" (与关键字"icmp"相同)  这样写将会以ping工具常用的icmp作为目标

2) 可以在"ip"或"ether"后面使用"multicast"及"broadcast"关键字 当您想排除广播请求时,"no broadcast"就会非常有用。

2、显示过滤器

语法实例:   

snmp || dns || icmp    显示SNMP或DNS或ICMP封包。

ip.addr == 10.1.1.1   显示来源或目的IP地址为10.1.1.1的封包。

ip.src != 10.1.2.3 or ip.dst != 10.4.5.6   显示来源不为10.1.2.3或者目的不为10.4.5.6的封包。 换句话说,显示的封包将会为: 来源IP:除了10.1.2.3以外任意;目的IP:任意 以及 来源IP:任意;目的IP:除了10.4.5.6以外任意。

ip.src != 10.1.2.3 and ip.dst != 10.4.5.6   显示来源不为10.1.2.3并且目的IP不为10.4.5.6的封包。 换句话说,显示的封包将会为: 来源IP:除了10.1.2.3以外任意;同时须满足,目的IP:除了10.4.5.6以外任意

tcp.port == 25    显示来源或目的TCP端口号为25的封包。

tcp.dstport == 25    显示目的TCP端口号为25的封包。

tcp.flags    显示包含TCP标志的封包。

tcp.flags.syn == 0x02   显示包含TCP SYN标志的封包。

3、实用过滤

1)过滤IP

ip.src eq 192.168.1.107 or ip.dst eq 192.168.1.107  或者  ip.addr eq 192.168.1.107              // 都能显示来源IP和目标IP

2)过滤端口

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 
udp.port eq 15000 
tcp.port >= 1 and tcp.port <= 80     //过滤端口范围

3)过滤协议

tcp  udp  arp  icmp  http  smtp  ftp  dns  msnms  ip  ssl  oicq  bootp等

如:

排除arp包:!arp  或者  not arp

4)过滤MAC 

eth.dst == A0:00:00:04:C5:84    //过滤目标mac 
eth.src eq A0:00:00:04:C5:84    //过滤来源mac 
eth.dst==A0:00:00:04:C5:84 
eth.dst==A0-00-00-04-C5-84 
eth.addr eq A0:00:00:04:C5:84     //过滤来源MAC和目标MAC都等于A0:00:00:04:C5:84的

5)包长度过滤

udp.length == 26        这个长度是指udp本身固定长度8加上udp下面那块数据包之和 
tcp.len >= 7        指的是ip数据包(tcp下面那块数据),不包括tcp本身 
ip.len == 94      除了以太网头固定长度14,其它都算是ip.len,即从ip本身到最后 
frame.len == 119      整个数据包长度,从eth开始到最后 
eth ---> ip or arp ---> tcp or udp ---> data

6)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: "

7)TCP参数过滤

tcp.flags     显示包含TCP标志的封包。 
tcp.flags.syn == 0x02       显示包含TCP SYN标志的封包。 
tcp.window_size == 0 && tcp.flags.reset != 1

8)过滤内容

tcp[20]表示从20开始,取1个字符 
tcp[20:]表示从20开始,取1个字符以上 
tcp[20:8]表示从20开始,取8个字符 
tcp[offset,n] 
udp[8:3]==81:60:03 //偏移8个bytes,再取3个数,是否与==后面的数据相等? 
udp[8:1]==32   //如果我猜的没有错的话,应该是udp[offset:截取个数]=nValue 
eth.addr[0:3]==00:06:5B 
例子: 
判断upd下面那块数据包前三个是否等于0x20 0x21 0x22(我们都知道udp固定长度为8) 
udp[8:3]==20:21:22

判断tcp那块数据包前三个是否等于0x20 0x21 0x22(tcp一般情况下,长度为20,但也有不是20的时候) 
tcp[8:3]==20:21:22 
如果想得到最准确的,应该先知道tcp长度

9)matches(匹配)和contains(包含某字符串)语法

ip.src==192.168.1.107 and udp[8:5] matches "\\x02\\x12\\x21\\x00\\x22" 
ip.src==192.168.1.107 and udp contains 02:12:21:00:22 
ip.src==192.168.1.107 and tcp contains "GET" 
udp contains 7c:7c:7d:7d 匹配payload中含有0x7c7c7d7d的UDP数据包,不一定是从第一字节匹配。 
例子: 
得到本地qq登陆数据包(判断条件是第一个包==0x02,第四和第五个包等于0x00x22,最后一个包等于0x03):0x02 xx xx 0x00 0x22 ... 0x03 
正确 
oicq and udp[8:] matches "^\\x02[\\x00-\\xff][\\x00-\\xff]\\x00\\x22[\\x00-\\xff]+\\x03$" 
oicq and udp[8:] matches "^\\x02[\\x00-\\xff]{2}\\x00\\x22[\\x00-\\xff]+\\x03$" // 登陆包 
oicq and (udp[8:] matches "^\\x02[\\x00-\\xff]{2}\\x03$" or tcp[8:] matches "^\\x02[\\x00-\\xff]{2}\\x03$") 
oicq and (udp[8:] matches "^\\x02[\\x00-\\xff]{2}\\x00\\x22[\\x00-\\xff]+\\x03$" or tcp[20:] matches "^\\x02[\\x00-\\xff]{2}\\x00\\x22[\\x00-\\xff]+\\x03$")

不单单是00:22才有QQ号码,其它的包也有,要满足下面条件(tcp也有,但没有做):

oicq and udp[8:] matches "^\\x02[\\x00-\\xff]+\\x03$" and !(udp[11:2]==00:00) and !(udp[11:2]==00:80) 
oicq and udp[8:] matches "^\\x02[\\x00-\\xff]+\\x03$" and !(udp[11:2]==00:00) and !(udp[15:4]==00:00:00:00) 
说明: 
udp[15:4]==00:00:00:00 表示QQ号码为空 
udp[11:2]==00:00 表示命令编号为00:00 
udp[11:2]==00:80 表示命令编号为00:80 
当命令编号为00:80时,QQ号码为00:00:00:00

【转载】wireshark抓包的更多相关文章

  1. Wireshark抓包工具使用教程以及常用抓包规则

    转载:http://fangxin.blog.51cto.com/1125131/735178 Wireshark是一个非常好用的抓包工具,当我们遇到一些和网络相关的问题时,可以通过这个工具进行分析, ...

  2. wireshark怎么抓包、wireshark抓包详细图文教程(转)

    wireshark怎么抓包.wireshark抓包详细图文教程 wireshark是非常流行的网络封包分析软件,功能十分强大.可以截取各种网络封包,显示网络封包的详细信息.使用wireshark的人必 ...

  3. Wireshark抓包分析TCP协议

      版权声明:本文为作者原创文章,可以随意转载,但必须在明确位置表明出处!!! 之前有一篇文章介绍了http协议「初识http协议」, http协议协议是基于tcp协议的,所以作者觉得有必要针对tcp ...

  4. 使用wireshark抓包分析-抓包实用技巧

    目录 使用wireshark抓包分析-抓包实用技巧 前言 自定义捕获条件 输入配置 输出配置 命令行抓包 抓取多个接口 抓包分析 批量分析 合并包 结论 参考文献 使用wireshark抓包分析-抓包 ...

  5. Wireshark抓包分析/TCP/Http/Https及代理IP的识别

    前言 坦白讲,没想好怎样的开头.辗转三年过去了.一切已经变化了许多,一切似乎从没有改变. 前段时间调研了一次代理相关的知识,简单整理一下分享之.如有错误,欢迎指正. 涉及 Proxy IP应用 原理/ ...

  6. 使用wireshark抓包分析浏览器无法建立WebSocket连接的问题(server为Alchemy WebSockets组件)

    工作时使用了Websocket技术,在使用的过程中发现,浏览器(Chrome)升级后可能会导致Websocket不可用,更换浏览器后可以正常使用. 近日偶尔一次在本地调试,发现使用相同版本的Chrom ...

  7. 用wireshark抓包分析TCP三次握手、四次挥手以及TCP实现可靠传输的机制

    关于TCP三次握手和四次挥手大家都在<计算机网络>课程里学过,还记得当时高超老师耐心地讲解.大学里我遇到的最好的老师大概就是这位了,虽然他只给我讲过<java程序设计>和< ...

  8. 云计算之路-阿里云上:Wireshark抓包分析一个耗时20秒的请求

    这篇博文分享的是我们针对一个耗时20秒的请求,用Wireshark进行抓包分析的过程. 请求的流程是这样的:客户端浏览器 -> SLB(负载均衡) -> ECS(云服务器) -> S ...

  9. 用Wireshark抓包分析超过70秒的请求

    超过70秒的请求是通过分析IIS日志发现的: 10.159.63.104是SLB的内网IP. 通过Wireshark抓包分析请求是9:22:21收到的(tcp.stream eq 23080): 09 ...

  10. wireshark怎么抓包、wireshark抓包详细图文教程

    wireshark怎么抓包.wireshark抓包详细图文教程 作者:佚名  来源:本站整理  发布时间:2013-05-02 19:56:27 本日:53 本周:675 本月:926 总数:3749 ...

随机推荐

  1. Ninja - chromium核心构建工具

    转自:http://guiquanz.me/2014/07/28/a_intro_to_Ninja/ Ninja - chromium核心构建工具Jul 28, 2014 [在线编辑] 缘由 经过上次 ...

  2. Oracle 连接 Visual Studio 的工具

    Oracle 连接 Visual Studio 的工具 ① ② ③

  3. AltiumDesigner学习笔记(一)——创建工程与原理图文件

    一.创建工程与原理图文件 1.通过菜单创建PCB工程 (1)File - New - Project - PCB Project,即可在当前工作区创建新的PCB工程 (2)新建工程并不直接在硬盘中创建 ...

  4. MATLAB学习笔记(八)——MATLAB数值积分与微分

    (一)数值积分 一.数值积分的MATLAB实现方法: 1.变步长辛普生法(quad)法: (1)调用格式: [I,n]=quad('fname',a,b,tol,trace); fname是被积函数: ...

  5. web_save_timestamp_param获取时间戳函数介绍

    函数说明: web_save_timestamp_param("tStamp", LAST); lr_output_message("%s",lr_eval_s ...

  6. hud 1785 畅通工程

    #include<iostream> #include<stdio.h> #include<algorithm> #include<math.h> us ...

  7. JVM常用参数配置

    Trace跟踪参数 -verbose:gc -XX:+printGC 打印GC的简要信息 -XX:+PrintGCDetails 打印GC详细信息 -XX:+PrintGCTimeStamps 打印C ...

  8. Redis Key 命令

      Redis Key 命令     del key1 key2 - keyn 删除键为key1,key2-keyn,空格分隔. persist key 移除给定 key 的生存时间,将这个 key ...

  9. 移动WEB测试工具 Adobe Edge Inspect

    要用到的内容: Adobe Edge Code CC      https://creative.adobe.com/products/code?promoid=KFKML Adobe Edge In ...

  10. TYVJ P1045 &&洛谷 1388 最大的算式 Label:dp

    描述 题目很简单,给出N个数字,不改变它们的相对位置,在中间加入K个乘号和N-K-1个加号,(括号随便加)使最终结果尽量大.因为乘号和加号一共就是N-1个了,所以恰好每两个相邻数字之间都有一个符号.例 ...