两种过滤器

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

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. 设计模式学习之建造者模式(Builder,创建型模式)(6)

    假如我们需要建造一个房子,并且我们也不知道如何去建造房子,所以就去找别人帮我们造房子 第一步: 新建一个房子类House,里面有房子该有的属性,我们去找房子建造者接口HouseBuilder,我们要建 ...

  2. ytu 1998:C语言实验——删除指定字符(水题)

    C语言实验——删除指定字符 Time Limit: 1 Sec  Memory Limit: 64 MBSubmit: 327  Solved: 211[Submit][Status][Web Boa ...

  3. Xamarin.Android开发实践(十三)

    Xamarin.Android之SQLite.NET ORM 一.前言 通过<Xamarin.Android之SQLiteOpenHelper>和<Xamarin.Android之C ...

  4. [转]C# Winform ListView使用

    以下内容均来自网上,个人收集整理,具体出处也难确认了,就没写出处了: 一.基本使用: listView.View = View.Details;//设置视图 listView.SmallImageLi ...

  5. HDU 4342History repeat itself 数学

    C - History repeat itself Time Limit:1000MS     Memory Limit:32768KB      Description Tom took the D ...

  6. 写好的mapreduce程序,编译,打包,得到最后的jar包! 验证jar包 ! 整体流程

    创建一个bin目录,用于存放编译.java文件产生的.class等结果,然后编译! 编译结果! 打包操作! 打包结果! 验证打包生成的jar包,是否正常,验证成功!!!!!!!!!!!! 结果正确!! ...

  7. 【HTML5】特性

    HTML5 建立的一些规则: 新特性应该基于 HTML.CSS.DOM 以及 JavaScript. 减少对外部插件的需求(比如 Flash) 更优秀的错误处理 更多取代脚本的标记 HTML5 应该独 ...

  8. Xamarin Android项目运行失败

    Xamarin Android项目运行失败 错误信息:Build Failed: MonoDroid does not support running the previous version.  P ...

  9. OUYA游戏开发核心技术剖析OUYA游戏入门示例——StarterKit

    第1章  OUYA游戏入门示例——StarterKit StarterKit是一个多场景的游戏示例,也是OUYA官方推荐给入门开发者分析的第一个完整游戏示例.本章会对StarterKit做详细介绍,包 ...

  10. C# XML 文档注释文件格式

    在编写 C# 代码时,只要在注释按照格式加入 XML 文档注释,例如: /// <summary> /// 这里是类的注释. /// </summary> public cla ...