应用抓包过滤,选择Capture | Options,扩展窗口查看到Capture Filter栏。双击选定的接口,如下图所示,弹出Edit Interface Settints窗口。

下图显示了Edit Interface Settings窗口,这里可以设置抓包过滤条件。如果你确知抓包过滤条件的语法,直接在Capture Filter区域输入。在输入错误时,Wireshark通过红色背景区域表明无法处理过滤条件。最有可能的情况是,过滤条件中含有输入错误,或是使用了display filter的语法。

点击Capture Filter按钮查看并选择已保存的抓包过滤条件。

更多信息

抓取指定IP地址的数据流:

如果你的抓包环境下有很多主机正在通讯,可以考虑使用所观察主机的IP地址来进行过滤。以下为IP地址抓包过滤示例:

  • host 10.3.1.1:抓取发到/来自10.3.1.1的数据流
  • host 2406:da00:ff00::6b16:f02d:抓取发到/来自IPv6地址2406:da00:ff00::6b16:f02d的数据流
  • not host 10.3.1.1:抓取除了发到/来自10.3.1.1以外的所有数据流
  • src host 10.3.1.1:抓取来自10.3.1.1的数据流
  • dst host 10.3.1.1:抓取发到10.3.1.1的数据流
  • host 10.3.1.1 or 10.3.1.2:抓取发到/来自10.3.1.1,以及与之通讯的所有数据流,与10.3.1.2,以及与之通讯的所有数据流
  • host www.espn.com:抓取发到/来自所有解析为www.espn.com的IP地址的数据流

抓取指定IP地址范围的数据流:

当你需要抓取来自/发到一组地址的数据流,可以采用CIDR(无类别域间路由,Classless Interdomain Routing)格式或使用mask参数。

  • net 10.3.0.0/16:抓取网络10.3.0.0上发到/来自所有主机的数据流(16表示长度)
  • net 10.3.0.0 mask 255.255.0.0:与之前的过滤结果相同
  • ip6 net 2406:da00:ff00::/64:抓取网络2406:da00:ff00:0000(IPv6)上发到/来自所有主机的数据流
  • not dst net 10.3.0.0/16:抓取除了发到以10.3开头的IP地址以外的所有数据流
  • not src net 10.3.0.0/16:抓取除了来自以10.3开头的IP地址以外的所有数据流
  • ip proto <protocol code>:抓取ip协议字段等于<protocol code>值的报文。如TCP(code 6), UDP(code 17), ICMP(code 1)。
  • ip[2:2]==<number>:ip报文大小
  • ip[8]==<number>:TTL(Time to Live)值
  • ip[9]==<number>:协议值
  • icmp[icmptype]==<identifier>: 抓取 ICMP代码等于identifier的ICMP报文, 如icmp-echo 以及 icmp-request。

方括号中第一个数字表示从协议头开始的偏移量,第二个数字表示需要观察多少位。

抓取发到广播或多播地址的数据流:

只需侦听广播或多播数据流,就可以掌握网络上主机的许多信息。

  • ip broadcast:抓取广播报文
  • ip multicast:抓取多播报文
  • dst host ff02::1:抓取到IPv6多播地址所有主机的数据流
  • dst host ff02::2:抓取到IPv6多播地址所有路由器的数据流

小贴士:

Wireshark包含了一些默认的抓包过滤条件。点击主工具栏的Edit Capture Filters,跳转到已保存抓包过滤列表。你会发现一些常见抓包过滤的示例。

抓取基于MAC地址的数据流:

当你需要抓取发到/来自某一主机的IPv4或IPv6数据流,可创建基于主机MAC地址的抓包过滤条件。

应用MAC地址时,需确保与目标主机处于同一网段。

  • ether host 00:08:15:00:08:15:抓取发到/来自00:08:15:00:08:15的数据流
  • ether src 02:0A:42:23:41:AC:抓取来自02:0A:42:23:41:AC的数据流
  • ether dst 02:0A:42:23:41:AC:抓取发到02:0A:42:23:41:AC的数据流
  • not ether host 00:08:15:00:08:15:抓取除了发到/来自00:08:15:00:08:15以外的所有数据流
  • ether broadcast或ether dst ff:ff:ff:ff:ff:ff:抓取广播报文
  • ether multicast:多播报文
  • 抓取指定以太网类型的报文:ether proto 0800
  • 抓取指定VLAN:vlan <vlan number>
  • 抓取指定几个VLAN:vlan <vlan number> and vlan <vlan number>

抓取基于指定应用的数据流:

你可能需要查看基于一个或几个应用的数据流。抓包过滤器语法无法识别应用名,因此需要根据端口号来定义应用。通过目标应用的TCP或UDP端口号,将不相关的报文过滤掉。

  • port 53:抓取发到/来自端口53的UDP/TCP数据流(典型是DNS数据流)
  • not port 53:抓取除了发到/来自端口53以外的UDP/TCP数据流
  • port 80:抓取发到/来自端口80的UDP/TCP数据流(典型是HTTP数据流)
  • udp port 67:抓取发到/来自端口67的UDP数据流(典型是DHCP据流)
  • tcp port 21:抓取发到/来自端口21的TCP数据流(典型是FTP命令通道)
  • portrange 1-80:抓取发到/来自端口1-80的所有UDP/TCP数据流
  • tcp portrange 1-80:抓取发到/来自端口1-80的所有TCP数据流

抓取结合端口的数据流:

当你需要抓取多个不连续端口号的数据流,将它们通过逻辑符号连接起来,如下图所示:

  • port 20 or port 21:抓取发到/来自端口20或21的UDP/TCP数据流(典型是FTP数据和命令端口)
  • host 10.3.1.1 and port 80:抓取发到/来自10.3.1.1端口80的数据流
  • host 10.3.1.1 and not port 80:抓取发到/来自10.3.1.1除了端口80以外的数据流
  • udp src port 68 and udp dst port 67:抓取从端口68到端口67的所有UDP数据流(典型是从DHCP客户端到DHCP服务器)
  • udp src port 67 and udp dst port 68:抓取从端口67到端口68的所有UDP数据流(典型是从DHCP服务器到DHCP客户端)
  • 抓取TCP连接的开始(SYN)和结束(FIN)报文,配置tcp[tcpflags] & (tcp-syn|tcp-fin)!=0
  • 抓取所有RST(Reset)标志位为1的TCP报文,配置tcp[tcpflags] & (tcp-rst)!=0
  • less <length>:抓取小于等于某一长度的报文,等同于len <=<length>
  • greater <length>:抓取大于等于某一长度的报文,等同于len >=<length>

SYN: 简历连接的信号

FIN: 关闭连接的信号

ACK: 确认接收数据的信号

RST: 立即关闭连接的信号

PSH: 推信号,尽快将数据转由应用处理

  • tcp[13] & 0x00 = 0: No flags set (null scan)
  • tcp[13] & 0x01 = 1: FIN set and ACK not set
  • tcp[13] & 0x03 = 3: SYN set and FIN set
  • tcp[13] & 0x05 = 5: RST set and FIN set
  • tcp[13] & 0x06 = 6: SYN set and RST set
  • tcp[13] & 0x08 = 8: PSH set and ACK not set

tcp[13]是从协议头开始的偏移量,0,1,3,5,6,8是标识位

尽量避免使用抓包过滤。即便多看几个报文,也比漏看一个报文要好。当你抓取了大量报文的时候,用显示过滤(过滤选项也更多)来重点查看某一数据流。

小贴士:

如果你需要查看TCP帧中的某一ASCII字符串,用Wireshark String-Matching Capture Filter Generator(http://www.wireshark.org/tools/string-cf.html)。例如,想要抓取HTTP GET报文,输入GET并将TCP偏移量设置为0。

一站式学习Wireshark(八):应用Wireshark过滤条件抓取特定数据流的更多相关文章

  1. WireShark系列: 使用WireShark过滤条件抓取特定数据流(zz)

    应用抓包过滤,选择Capture | Options,扩展窗口查看到Capture Filter栏.双击选定的接口,如下图所示,弹出Edit Interface Settints窗口. 下图显示了Ed ...

  2. python3.4学习笔记(十七) 网络爬虫使用Beautifulsoup4抓取内容

    python3.4学习笔记(十七) 网络爬虫使用Beautifulsoup4抓取内容 Beautiful Soup 是用Python写的一个HTML/XML的解析器,它可以很好的处理不规范标记并生成剖 ...

  3. 【一起学源码-微服务】Nexflix Eureka 源码八:EurekaClient注册表抓取 精妙设计分析!

    前言 前情回顾 上一讲 我们通过单元测试 来梳理了EurekaClient是如何注册到server端,以及server端接收到请求是如何处理的,这里最重要的关注点是注册表的一个数据结构:Concurr ...

  4. ADB logcat 过滤方法(抓取日志)

    1. Log信息级别 Log.v- VERBOSE  : 黑色 Log.d- DEBUG  : 蓝色 Log.i- INFO  : 绿色 Log.w- WARN  : 橙色 Log.e- ERROR ...

  5. 吴裕雄--天生自然python学习笔记:python 用 Open CV抓取摄像头视频图像

    Open CV 除了可以读取.显示静态图片外 , 还可 以加载及播放动态影片, 以 及 读取内置或外接摄像头的图像信息 . 很多笔记本电脑都具有摄像头 , OpenCV 可通过 VideoC aptu ...

  6. 吴裕雄--天生自然python学习笔记:python 用 Open CV抓取脸部图形及保存

    将面部的范围识别出来后,可以对识别出来的部分进行抓取.抓取一张图片中 的部分图形是通过 pillow 包中的 crop 方法来实现的 我们首先学习用 pillow 包来读取图片文件,语法为: 例如,打 ...

  7. 一站式学习Wireshark(转载)

    一站式学习Wireshark(一):Wireshark基本用法 2014/06/10 · IT技术 · 4 评论 · WireShark 分享到: 115 与<YII框架>不得不说的故事— ...

  8. python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例

    python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例 新浪爱彩双色球开奖数据URL:http://zst.aicai.com/ssq/openInfo/ 最终输出结果格 ...

  9. 爬虫学习一系列:urllib2抓取网页内容

    爬虫学习一系列:urllib2抓取网页内容 所谓网页抓取,就是把URL地址中指定的网络资源从网络中读取出来,保存到本地.我们平时在浏览器中通过网址浏览网页,只不过我们看到的是解析过的页面效果,而通过程 ...

随机推荐

  1. shell脚本条件判断

    http://blog.csdn.net/ws_zll/article/details/7515310

  2. ubuntu修改固定ip

    1.vi /etc/network/interfasces,添加红框内的内容:

  3. Android 系统 root 破解原理分析

    现在Android系统的root破解基本上成为大家的必备技能!网上也有很多中一键破解的软件,使root破解越来越容易.但是你思考过root破解的 原理吗?root破解的本质是什么呢?难道是利用了Lin ...

  4. jquery ajax调用WCF,采用System.ServiceModel.WebHttpBinding

    Jquery ajax调用WCF服务 例子效果如下:原界面 点击按钮GetList get后,通过指定的Url获取数据添加到table 新建一个控制台项目,添加IContract.cs,DBServi ...

  5. IIS下浏览指定文件(如:web.config)

    具体步骤如下: 1.快捷键:Ctrl + R 2.输入:%windir%\System32\inetsrv\config\applicationHost.config 3.注销:fileExtensi ...

  6. 乙醇的webdriver实用指南ruby版本

    webdriver实用指南是乙醇2013年分享计划的一部分,作为对已逝去的selenium2时代的追忆. 目录如下 启动浏览器 关闭浏览器 浏览器最大化 设置浏览器大小 访问链接 打印当前页面的tit ...

  7. Python rpartition() 方法

    描述 Python rpartition() 方法用来根据指定的分隔符将字符串进行分割. 如果字符串包含指定的分隔符,则返回一个3元的元组,第一个为分隔符前面的子字符串,第二个为分隔符本身,第三个为分 ...

  8. Python 列表 index() 方法

    描述 Python 列表 index() 方法用于从列表中找出某个对象第一个匹配项的索引位置,如果这个对象不在列表中会报一个异常. 语法 index() 方法语法: L.index(obj[,star ...

  9. 使用BeanUtils设置属性转换String到Date类型

    主要是用来设置非空对象的属性. 1 使用BeanUtils进行设置属性时,对于String,int可以自动转换.比如下面的例子 常用方法 1)BeanUtils.setProperty    //// ...

  10. Linux-Ubuntu操作记录

    ubuntu 基本命令 1.帮助man      --help简单的帮助  如:man tar 或者tar --help      help command 较详细的帮助      man comma ...