wireshark捕获过滤器与显示过滤器
- 格式:pdf
- 大小:387.24 KB
- 文档页数:9
wireshark捕获过滤指定ip地址数据包使用捕获过滤或显示过滤,wireshark可以仅捕获/显示经过指定ip的数据包,即某个ip收到或发出的所有数据包。
wireshark捕获/显示过滤使用方法见:“wireshark过滤器”显示过滤:wireshark过滤经过指定ip的数据包显示过滤可以完整的复现测试时的网络环境,但会产生较大的捕获文件和内存占用。
ip.addr ==192.168.1.1 //显示所有目标或源地址是192.168.1.1的数据包ip.dst==192.168.1.1 //显示目标地址是192.168.1.1的数据包ip.src ==192.168.1.1 //显示源地址是192.168.1.1的数据包eth.addr== 80:f6:2e:ce:3f:00 //根据MAC地址过滤,详见“wireshark过滤MAC地址/物理地址”ip.src==192.168.0.0/16 //网络过滤,过滤一个网段捕获过滤:wireshark捕获经过指定ip的数据包捕捉过滤抓包前在capture option中设置,仅捕获符合条件的包,可以避免产生较大的捕获文件和内存占用,但不能完整的复现测试时的网络环境。
host 192.168.1.1 //抓取192.168.1.1 收到和发出的所有数据包src host 192.168.1.1 //源地址,192.168.1.1发出的所有数据包dst host 192.168.1.1 //目标地址,192.168.1.1收到的所有数据包src host hostname //根据主机名过滤ether host 80:05:09:03:E4:35 //根据MAC地址过滤net 192.168.1 //网络过滤,过滤整个网段src net 192.168dst net 192使用“非/且/或”建立组合过滤条件可以获得更精确的捕获非: ! or “not” (去掉双引号)且: && or “and”或: || or “or”wirershark过滤指定ip收发数据包示例:抓取所有目的地址是192.168.1.2 或192.168.1.3 端口是80 的TCP 数据(tcp port 80) and ((dst host 192.168.1.2) or (dst host192.168.1.3)) //捕获过滤tcp.port==80&&(ip.dst==192.168.1.2||ip.dst==192.168.1.3) //显示过滤抓取所有目标MAC 地址是80:05:09:03:E4:35 的ICMP 数据(icmp) and ((ether dst host 80:05:09:03:E4:35))icmp && eth.dst==80:05:09:03:E4:35抓取所有目的网络是192.168,但目的主机不是192.168.1.2 的TCP 数据(tcp) and ((dst net 192.168) and (not dst host 192.168.1.2)) tcp&&ip.src==192.168.0.0/16&&!(ip.src==192.168.1.2)捕获主机192.168.1.1 和主机192.168.1.2 或192.168.1.3的通信host 192.168.1.1 and (192.168.1.2 or 192.168.1.3 )ip.addr==192.168.1.1&&(ip.addr==192.168.1.2||ip.addr==1 92.168.1.3)获取主机192.168.1.1除了和主机192.168.1.2之外所有主机通信的数据包host 192.168.1.1 and ! 192.168.1.2ip.addr==192.168.1.1&&!ip.addr==192.168.1.2获取主机192.168.1.1接收或发出的telnet包,telnet使用tcp 23端口tcp port 23 and host 192.168.1.1tcp.port==23&&ip.addr==192.168.1.1。
Wireshark捕获过滤器技巧捕获过滤器用于决定将什么样的信息记录在捕获文件中。
在使用Wireshark捕获数据时,捕获过滤器是数据经过的第一层过滤器,它用来控制捕获数据的数量。
通过设置捕获过滤器,可以避免产生过大的捕获文件。
本章将介绍使用捕获过滤器技巧。
捕获过滤器简介使用Wireshark的默认设置捕获数据时,会产生大量冗余信息,这样会导致用户很难找到自己需要的部分。
这时就可以使用捕获过滤器来控制捕获数据的数量了。
捕获过滤器的设置界面如图3.1所示。
图3.1 捕获选项在该图中,每部分的含义如下所示:本文选自《Wireshark网络分析实例集锦》❑①Interface列表:选择一个或多个接口(捕获多个适配器)。
❑②Manage Interfaces按钮:单击该按钮可以添加或删除接口。
❑③Capture Filter下拉列表:显示被应用的捕获过滤器(双击可以修改、删除或添加捕获过滤器)。
④Capture File(s)选项框:设置保存多个文件、循环缓冲区大小和基于文件数量自动停止的条件。
本文选自《Wireshark网络分析实例集锦》❑❑ ⑤Display Options 选项框:设置捕获数据时,自动滚动显示捕获的数据包。
❑ ⑥Stop Capture 选项框:设置自动停止条件,如基于包数、数据捕获的数量或运行时间。
❑ ⑦Name Resolution 选项框:为MAC 地址、IP 地址和端口号启动/禁用名称解析。
当以上捕获选项设置完成后,就可以看到Start 按钮捕获数据了。
捕获数据保存中,Wireshark 的图标显示为绿色,如图3.2所示。
本文选自《Wireshark 网络分析实例集锦》图3.2 Wireshark 运行界面选择捕获位置使用Wireshark 分析网络数据时,首先要确认Wireshark 捕获数据的正确位置。
如果没有在正确的位置启动Wireshark ,则导致用户可能花费很长的时间处理一些与自己无关的数据。
抓取报文:下载和安装好Wireshark之后,启动Wireshark并且在接口列表中选择接口名,然后开始在此接口上抓包。
例如,如果想要在无线网络上抓取流量,点击无线接口。
点击Capture Options 可以配置高级属性,但现在无此必要。
点击接口名称之后,就可以看到实时接收的报文。
Wireshark会捕捉系统发送和接收的每一个报文。
如果抓取的接口是无线并且选项选取的是混合模式,那么也会看到网络上其他报文。
上端面板每一行对应一个网络报文,默认显示报文接收时间(相对开始抓取的时间点),源和目标IP地址,使用协议和报文相关信息。
点击某一行可以在下面两个窗口看到更多信息。
“+”图标显示报文里面每一层的详细信息。
底端窗口同时以十六进制和ASCII码的方式列出报文内容。
需要停止抓取报文的时候,点击左上角的停止按键。
色彩标识:进行到这里已经看到报文以绿色,蓝色,黑色显示出来。
Wireshark通过颜色让各种流量的报文一目了然。
比如默认绿色是TCP报文,深蓝色是DNS,浅蓝是UDP,黑色标识出有问题的TCP报文——比如乱序报文。
报文样本:比如说你在家安装了Wireshark,但家用LAN环境下没有感兴趣的报文可供观察,那么可以去Wireshark wiki下载报文样本文件。
打开一个抓取文件相当简单,在主界面上点击Open并浏览文件即可。
也可以在Wireshark里保存自己的抓包文件并稍后打开。
过滤报文:如果正在尝试分析问题,比如打电话的时候某一程序发送的报文,可以关闭所有其他使用网络的应用来减少流量。
但还是可能有大批报文需要筛选,这时要用到Wireshark过滤器。
最基本的方式就是在窗口顶端过滤栏输入并点击Apply(或按下回车)。
例如,输入“dns”就会只看到DNS报文。
输入的时候,Wireshark会帮助自动完成过滤条件。
也可以点击Analyze菜单并选择Display Filters来创建新的过滤条件。
Wireshark过滤器详解Wireshark过滤器详解1.Wireshark主要提供两种主要的过滤器捕获过滤器:当进⾏数据包捕获时,只有那些满⾜给定的包含/排除表达式的数据包会被捕获显⽰过滤器:该过滤器根据指定的表达式⽤于⼀个已捕获的数据包集合,它将隐藏不想显⽰的数据包或者只显⽰那些需要的数据包2.捕获过滤器2.1捕获过滤器的BPF语法:使⽤BPF语法创建的过滤器被称为expression(表达式),并且每个表达式包含⼀个或多个primitives(原语)。
每个原语包含⼀个或多个qualifiers(限定词),然后跟着⼀个ID名字或数字限定词说明例⼦Type指出名字或数字所代表的含义host、net、portDir指出传输⽅向是前往还是来⾃名字或数字src、dstProto限定所要匹配的协议Ether、ip、tcp、udp、ftp⼀个捕获过滤器样例src host 192.168.0.10 && port 80在给定表达式的组成部分中,⼀个src限定词和host 192.168.0.10组成了⼀个原语。
这个原语本⾝就是表达式,可以⽤它只捕获那些源IP地址是192.168.0.10的流量你也可以使⽤以下三种逻辑运算符,对原语进⾏组合,从⽽创建出更⾼级的表达式:连接运算符与(&&)选择运算符或(||)否定运算符⾮(!)所以上述表达式只对源地址是192.168.0.10和源端⼝或⽬标端⼝是80的流量进⾏捕获3.显⽰过滤器显⽰应⽤器应⽤于筛选符合过滤器的数据包,对不符合条件的数据进⾏隐藏,只需清空显⽰过滤表达式即可回到原先的捕获⽂件3.1应⽤显⽰过滤器的两种⽅法3.1.1过滤器表达式对话框3.2.2过滤器表达式语法结构⽐较操作符操作符说明==等于!=不等于>⼤于<⼩于>=⼤于或等于<=⼩于或等于逻辑操作符操作符说明and两个条件同时被满⾜or其中有⼀个条件满⾜xor有且仅有⼀个条件满⾜not没有条件满⾜3.3.3显⽰过滤器表达式实例(常⽤)过滤器说明!tcp.port==3389排除RDP流量tcp.flags.syn==1具有SYN标志位的TCP数据包tcp.flags.rst==1具有RST标志位的TCP数据包!arp排除ARP流量tcp.port23 ||tcp.port21⽂件管理流量(Telenet或FTP)smtp ||pop||imap⽂本email流量(SMTP/POP/IMAP)。
Wireshark使用指南(Ed4:0)Wireshark使用指南(Ed4:0)Wireshark是一款广泛使用的开源网络数据包分析工具。
它能够捕获、分析和显示网络数据包,并提供丰富的功能和选项供用户进行深入的网络分析。
本指南将详细介绍Wireshark的各项功能和用法,帮助用户快速上手并有效利用该工具进行网络分析。
目录:1、Wireshark简介1.1 Wireshark的历史1.2 Wireshark的特点1.3 Wireshark的应用领域2、安装与配置2.1 系统要求2.2 和安装Wireshark2.3 配置Wireshark3、捕获与过滤3.1 网络接口的选择3.2 捕获过滤器的使用3.3 混杂模式的启用3.4 数据包捕获的开始与停止4、数据包分析与显示4.1 数据包列表的解读4.2 数据包详细信息的查看4.3 数据包过滤器的应用4.4 统计和图表分析功能的使用5、解析器和协议分析5.1 解析器的概念和作用5.2 常见协议解析5.3 自定义解析器的添加与使用6、流量分析与性能优化6.1 流量统计和流量图的功能 6.2 建立会话的识别与追踪6.3 延迟和吞吐量的测量与分析7、文件导入与导出7.1 导入其他抓包文件7.2 导入与导出标准格式数据7.3 导入与导出自定义格式数据8、高级功能与扩展8.1 命令行分析工具的使用8.2 配置文件的修改与定制8.3 Wireshark的插件系统与脚本编写9、常见问题与解决方案9.1 常见的捕获和显示问题9.2 常见的解析和分析问题9.3 高级功能和扩展相关的问题10、使用案例与实战示例10.1 网络故障排查案例10.2 无线网络优化案例10.3 网络安全分析案例附件:1、Wireshark安装包2、示例数据包文件法律名词及注释:1、开源:指软件源代码可以被公众查看、使用、修改和分发的许可证。
2、数据包:在计算机网络中传输的数据单元,包含网络通信的源地质、目标地质、协议类型等信息。
wireshark条件过滤语法
Wireshark条件过滤语法主要包括捕获过滤器和显示过滤器。
捕获过滤器(CaptureFilters)用于决定捕捉的流量内容,仅支持协议过滤。
在抓包前进行设置,决定抓取怎样的数据,方便stream的追踪和排查。
显示过滤器(DisplayFilters)用于决定捕捉内容中显示的结果,既支持协议过滤也支持内容过滤。
过滤器语法如下:
<Protocol> <Direction> <Host(s)> <Value> <Logical Operations> <Ot her expression>
其中,各部分含义如下:
- Protocol(协议):如ether、ip、tcp等,默认支持全部协议。
- Direction(方向):如src、dst、src and dst、src or dst,默认使用s rc or dst。
- Host(s)(主机):如host、port、host range等。
- Value:用于细粒度过滤的协议属性值,如port 80、http.request.meth od="GET"等。
- Logical Operations(逻辑运算):如not、and、or,not具有最高优先级,and和or优先级相同,运算从左向右。
- Other expression:其他表达式,如ip.addr==192.168.1.1等。
Wireshark⼊门教程(肆)过滤器设置
过滤器设置是 wireshark 基础操作中,有“技术含量”的部分了。
过滤器分为捕获过滤器(或者称为抓包过滤器)和显⽰过滤器。
捕获过滤器:wireshark 仅捕获过滤器设置的数据,其它数据不收集,⽤于定向分析问题。
显⽰过滤器:wireshark 对已经捕获的数据,进⾏显⽰设置。
只是不显⽰,数据还是在内存中的,修改显⽰过滤器就可以显⽰出来。
不适合⼤流量的场景。
捕获过滤器/抓包过滤器与显式过滤器的语法并不⼀样。
5 过滤器设置
5.1 捕获过滤器
位置:捕获 -> 选项 -> 设置
捕获过滤器语法规则:BPF(Berkeley Packet Filter)
使⽤ google 搜索 “BPF 语法” 能搜索到很多相关内容。
如:
设置过滤器之后,标题栏可以看到过滤器信息。
5.2 显⽰过滤器
对已经抓取的数据,进⾏显⽰过滤设置。
语法是 wireshark ⾃⼰的语法。
可以使⽤ wireshark 辅助⽣成过滤表达式
基本语法:协议.属性 [判断符] 值
关于显⽰过滤语法的⼀些参考链接:
可以保存过滤条件,
这个保存是会⼀直保存的,重启软件也会有。
Wireshark过滤器写法总结⽬录#Wireshark提供了两种过滤器:1、捕获过滤器捕获过滤器:在抓包之前就设定好过滤条件,然后只抓取符合条件的数据包。
2、显⽰过滤器显⽰过滤器:在已捕获的数据包集合中设置过滤条件,隐藏不想显⽰的数据包,只显⽰符合条件的数据包。
注意:这两种过滤器所使⽤的语法是完全不同的,想想也知道,捕捉⽹卡数据的其实并不是Wireshark,⽽是WinPcap,当然要按WinPcap的规则来,显⽰过滤器就是Wireshark对已捕捉的数据进⾏筛选。
使⽤捕获过滤器的主要原因就是性能。
如果你知道并不需要分析某个类型的流量,那么可以简单地使⽤捕获过滤器过滤掉它,从⽽节省那些会被⽤来捕获这些数据包的处理器资源。
当处理⼤量数据的时候,使⽤捕获过滤器是相当好⽤的。
Wireshark拦截通过⽹卡访问的所有数据,前提是没有设置任何代理。
Wireshark不能拦截本地回环访问的请求,即127.0.0.1或者localhost。
#过滤器具体写法#显⽰过滤器写法1、过滤值⽐较符号及表达式之间的组合2、针对ip的过滤对源地址进⾏过滤ip.src == 192.168.0.1对⽬的地址进⾏过滤ip.dst == 192.168.0.1对源地址或者⽬的地址进⾏过滤ip.addr == 192.168.0.1如果想排除以上的数据包,只需要将其⽤括号囊括,然后使⽤ "!" 即可!(ip.addr == 192.168.0.1)3、针对协议的过滤获某种协议的数据包,表达式很简单仅仅需要把协议的名字输⼊即可http注意:是否区分⼤⼩写?答:区分,只能为⼩写捕获多种协议的数据包http or telnet排除某种协议的数据包not arp 或者 !tcp4、针对端⼝的过滤(视传输协议⽽定)捕获某⼀端⼝的数据包(以tcp协议为例)tcp.port == 80捕获多端⼝的数据包,可以使⽤and来连接,下⾯是捕获⾼于某端⼝的表达式(以udp协议为例)udp.port >= 20485、针对长度和内容的过滤针对长度的过虑(这⾥的长度指定的是数据段的长度)udp.length < 20http.content_length <=30针对uri 内容的过滤http.request.uri matches "user" (请求的uri中包含“user”关键字的)注意:matches后的关键字是不区分⼤⼩写的!http.request.uri contains "User" (请求的uri中包含“user”关键字的)注意:contains后的关键字是区分⼤⼩写的!5、针对http请求的⼀些过滤实例。
Wireshark 捕获过滤器与显示过滤器
使用Wireshark 时最常见的问题,是当您使用默认设置时,会得到大量冗余信息,以至于很难找到自己需要的部分。
过犹不及。
这就是为什么过滤器会如此重要。
它们可以帮助我们在庞杂的结果中迅速找到我们需要的信息。
- - 捕捉过滤器:用于决定将什么样的信息记录在捕捉结果中。
需要在开始捕捉前设置。
显示过滤器:在捕捉结果中进行详细查找。
他们可以在得到捕捉结果后随意修改。
那么我应该使用哪一种过滤器呢?
两种过滤器的目的是不同的。
捕捉过滤器是数据经过的第一层过滤器,它用于控制捕捉数据的数量,以避免产生过大的日志文件。
显示过滤器是一种更为强大(复杂)的过滤器。
它允许您在日志文件中迅速准确地找到所需要的记录。
两种过滤器使用的语法是完全不同的。
我们将在接下来的几页中对它们进行介绍:
1. 捕捉过滤器
2. 显示过滤器
1. 捕捉过滤器
捕捉过滤器的语法与其它使用Lipcap (Linux )或者Winpcap (Windows )库开发的软件一样,比如著名的TCPdump 。
捕捉过滤器必须在开始捕捉前设置完毕,这一点跟显示过滤器是不同的。
设置捕捉过滤器的步骤是: - 选择 capture -> options 。
- 填写"capture filter"栏或者点击"capture filter"按钮为您的过滤器起一个名字并保存,以便在今后的捕捉中继续使用这个过滤器。
- 点击开始(Start )进行捕捉。
语法:
例子:tcp dst 10.1.1.1 80 and tcp dst 10.2.2.2 3128
Protocol(协议):
可能的值: ether, fddi, ip, arp, rarp, decnet, lat, sca, moprc, mopdl, tcp and udp.
如果没有特别指明是什么协议,则默认使用所有支持的协议。
Direction(方向):
可能的值: src, dst, src and dst, src or dst
如果没有特别指明来源或目的地,则默认使用"src or dst" 作为关键字。
例如,"host 10.2.2.2"与"src or dst host 10.2.2.2"是一样的。
<br
Host(s):
可能的值:net, port, host, portrange.
如果没有指定此值,则默认使用"host"关键字。
例如,"src 10.1.1.1"与"src host 10.1.1.1"相同。
Logical Operations(逻辑运算):
可能的值:not, and, or.
否("not")具有最高的优先级。
或("or")和与("and")具有相同的优先级,运算时从左至右进行。
例如,
"not tcp port 3128 and tcp port 23"与"(not tcp port 3128) and tcp port 23"相同。
"not tcp port 3128 and tcp port 23"与"not (tcp port 3128 and tcp port 23)"不同。
</br
例子:
显示目的TCP端口为3128的封包。
显示来源IP地址为10.1.1.1的封包。
显示目的或来源IP地址为10.1.2.3的封包。
显示来源为UDP或TCP,并且端口号在2000至2500范围内的封包。
icmp以外的所有封包。
(icmp通常被ping工具使用)
显示来源IP地址为10.7.2.12,但目的地不是10.200.0.0/16的封包。
至10000之间,并且目的位于网络10.0.0.0/8内的所有封包。
注意事项:
当使用关键字作为值时,需使用反斜杠“\”。
"ether proto \ip" (与关键字"ip"相同).
这样写将会以IP协议作为目标。
"ip proto \icmp" (与关键字"icmp"相同).
这样写将会以ping工具常用的icmp作为目标。
可以在"ip"或"ether"后面使用"multicast"及"broadcast"关键字。
当您想排除广播请求时,"no broadcast"就会非常有用。
查看TCPdump的主页以获得更详细的捕捉过滤器语法说明。
在Wiki Wireshark website上可以找到更多捕捉过滤器的例子。
返回页面顶部
2. 显示过滤器:
通常经过捕捉过滤器过滤后的数据还是很复杂。
此时您可以使用显示过滤器进行更加细致的查找。
它的功能比捕捉过滤器更为强大,而且在您想修改过滤器条件时,并不需要重新捕捉一次。
语法:
例子:ftp passive ip == 10.2.3.4 xor icmp.type Protocol(协议):
您可以使用大量位于OSI模型第2至7层的协议。
点击"Expression..."按钮后,您可以看到它们。
比如:IP,TCP,DNS,SSH
您同样可以在如下所示位置找到所支持的协议:
Wireshark的网站提供了对各种协议以及它们子类的说明。
String1, String2 (可选项):
协议的子类。
点击相关父类旁的"+"号,然后选择其子类。
Comparison operators (比较运算符): 可以使用6种比较运算符:
:
被程序员们熟知的逻辑异或是一种排除性的或。
当其被用在过滤器的两个条件之间时,只有当且仅当其中的一个条件满足时,这样的结果才会被显示在屏幕上。
让我们举个例子:
"tcp.dstport 80 xor tcp.dstport 1025"
只有当目的TCP端口为80或者来源于端口1025(但又不能同时满足这两点)时,这样的封包才会被显示。
例子:
显示SNMP或DNS或ICMP封包。
显示来源或目的IP地址为10.1.1.1的封包。
显示来源不为10.1.2.3或者目的不为10.4.5.6的封包。
换句话说,显示的封包将会为:
来源IP:除了10.1.2.3以外任意;目的IP:任意
以及
来源IP:任意;目的IP:除了10.4.5.6以外任意
显示来源不为10.1.2.3并且目的IP不为10.4.5.6的封包。
换句话说,显示的封包将会为:
来源IP:除了10.1.2.3以外任意;同时须满足,目的IP:除了10.4.5.6以外任意
TCP端口号为25的封包。
TCP端口号为25的封包。
标志的封包。
显示包含TCP SYN标志的封包。
如果过滤器的语法是正确的,表达式的背景呈绿色。
如果呈红色,说明表达式有误。
表达式错误
----------------------------------------------------------------------------------------------------------------------
1ike006
qike006@。