对话着色用来选择指定颜色对应的协议,着色分组列表用来隐藏非选中着色分组中的数据包,着色规则用来定义着色外观和包含的协议


1.5.3 wireshark提供2种过滤器

1.捕捉过滤器
2.显示过滤器


捕捉过滤器
使用Wireshark练习网络协议分析笔记
捕捉过滤器是用来配置应该捕获什么样的数据包,在启动数据包捕捉之前就应该配置好。打开主界面捕获”——>“捕获过滤器
在捕获过滤器界面,我们可以看到已有的过滤器,可以修改删除它们,同时我们可以增加自己的过滤器。
使用Wireshark练习网络协议分析笔记

使用Wireshark练习网络协议分析笔记
Protocol(协议):
可能的值: ether, fddi, ip, arp, rarp, decnet, lat, sca, moprc, mopdl, tcp and udp.
如果没有特别指明是什么协议,则默认使用所有支持的协议。
使用Wireshark练习网络协议分析笔记 Direction(方向):
可能的值: src, dst, src and dst, src or dst
如果没有特别指明来源或目的地,则默认使用 "src or dst" 作为关键字。

使用Wireshark练习网络协议分析笔记 Host(s):
可能的值: net, port, host, portrange.
如果没有指定此值,则默认使用"host"关键字。

使用Wireshark练习网络协议分析笔记 Logical Operations(逻辑运算):
可能的值:not, and, or.
("not")具有最高的优先级。或("or")和与("and")具有相同的优先级,运算时从左至右进行。
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
显示来源为UDPTCP,并且端口号在20002500范围内的封包。
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

当使用关键字作为值时,需使用反斜杠“\”。"ether proto \ip" (与关键字"ip"相同)。这样写将会以IP协议作为目标。"ip proto \icmp" (与关键字"icmp"相同).这样写将会以ping工具常用的icmp作为目标。可以在"ip""ether"后面使用"multicast""broadcast"关键字。当您想排除广播请求时,"no broadcast"就会非常有用。

使用过滤器:
使用Wireshark练习网络协议分析笔记
再启动就看到效果了:
使用Wireshark练习网络协议分析笔记

显示过滤器
显示过滤器用来过滤已经捕获的数据包。在数据包列表的上方,有一个显示过滤器输入框,可以直接输入过滤表达式,点击输入框右侧的表达式按钮,可以打开表达式编辑器,左侧框内是可供选择的字段。
使用Wireshark练习网络协议分析笔记
显示过滤器的语法:
使用Wireshark练习网络协议分析笔记

 下面我们对各个字段做介绍:
1)        Protocol,协议字段。支持的协议可以从图14的编辑器中看到,从OSI 7层模型的27层都支持。

2)        String1, String2 (可选项)。协议的子类

3) Comparison operators,比较运算符。可以使用6种比较运算符,逻辑运算符如图所示
使用Wireshark练习网络协议分析笔记
PS:xor(异或)运算,相同为0,不同为1
使用Wireshark练习网络协议分析笔记

被程序员们熟知的逻辑异或是一种排除性的或。当其被用在过滤器的两个条件之间时,只有当且仅当其中的一个条件满足时,这样的结果才会被显示在屏幕上。
"tcp.dstport 80 xor tcp.srcport 1025"
只有当目的TCP端口为80或者来源于端口1025(但又不能同时满足这两点)时,这样的封包才会被显示。
下面再通过一些实例来加深了解。
snmp || dns || icmp  
显示SNMPDNSICMP封包。
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.src != 10.1.2.3 and ip.dst != 10.4.5.6
显示来源不为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标志的封包。
在使用过滤器表达式编辑器的时候,如果过滤器的语法是正确的,表达式的背景呈绿色。如果呈红色,说明表达式有误。


此外我们也可以通过选中数据包来生成过滤器,右键——>作为过虑器应用。
使用Wireshark练习网络协议分析笔记

不同的选项,大家都可以尝试下,都是基本逻辑谓词的组合。比如我选择“或选中,可以组合多个数据包的条件
使用Wireshark练习网络协议分析笔记

选择了两个数据包,协议不同,自动生成的过滤表达式会按照你鼠标点击的位置所在的列字典作为条件来生成。图中我两次的位置都在Destination列上,所以生成的表达式是一样的。


1.5.4 数据分析
使用Wireshark练习网络协议分析笔记

在图23中,1区为详细信息显示区域,这个区域内对数据包按照协议字段做了较为详细的分析。2区为16进制数据区。结合1区和2区,再结合书本上的知识,我们就可以进行协议分析的研究和学习了。图23中,显示的详细信息分别为:
1)        Frame:   物理层的数据帧概况
2)        Ethernet II: 数据链路层以太网帧头部信息
3)        Internet Protocol Version 4: 互联网层IP包头部信息
4)        Transmission Control Protocol:  传输层的数据段头部信息,此处是TCP
         5)        Hypertext Transfer Protocol:  应用层的信息,此处是HTTP协议

当我们点击1区的字段的时候,可以看到在2区对应的数据项,如图
使用Wireshark练习网络协议分析笔记
OSI七层模型和Wireshark数据包分析的对应情况。
使用Wireshark练习网络协议分析笔记

再拿TCP数据包来举例。
使用Wireshark练习网络协议分析笔记


1.5.5  实例:分析TCP三次握手过程
使用Wireshark练习网络协议分析笔记

打开wireshark抓包,然后在浏览器输入网址:www.baidu.com

停止抓包后输入过滤表达式
输入过滤表达式:ip.src == 192.168.3.88

过滤出连接到www.cnblogs.com的所有数据包。
使用Wireshark练习网络协议分析笔记

选中一个,右键然后点击"追踪流"——>TCP流。
点击TCP流之后,会根据tcp.stream字段生成过滤表达式,我们可以看到这次HTTP请求基于的TCP三次握手的数据包。
使用Wireshark练习网络协议分析笔记

下面我们来逐步分析上图中的71,118,120这3个数据包。
使用Wireshark练习网络协议分析笔记
71号数据包的tcp数据字段如图所示,***为0,标志位为SYN
使用Wireshark练习网络协议分析笔记
118号数据包的tco数据字段中,***为0,Ack序号加1为1,标志位为(SYN,ACK)
使用Wireshark练习网络协议分析笔记

120号数据包的tcp数据字段中,客户端再次发送确认包(ACK),Ack序号为1,并且把服务器发来的***字段+1放在确定字段中发送给对方。
这样就完成了TCP的三次握手。

参考文章:http://www.cnblogs.com/xuanhun/p/5714034.html

相关文章: