显示过滤器ARP协议全面实战手册协议详解、攻击与防御大学霸

显示过滤器ARP协议全面实战手册协议详解、攻击与防御大学霸

ARP协议全面实战手册——协议详解、攻击与防御大学霸

ARP协议全面实战手册——协议详解、攻击与防御大学霸

通常经过捕捉过滤器过滤后的数据还是很复杂。此时用户可以使用显示过滤器进行更加细致的查找。它的功能比捕捉过滤器更为强大,而且在用户想修改过滤器条件时,也不需要重新捕捉一次。显示过滤器的语法格式如下所示显示过滤器ARP协议全面实战手册协议详解、攻击与防御大学霸:

Protocol String1 String2 Comparison operator Value Logical Operations Other expression

以上各选项的含义如下所示:

q  Protocol(协议):该选项用来指定协议。该选项可以使用位于OSI模型第2层至7层的协议。在Wireshark主界面的Filter文本框后面,单击Expression按钮,可以看到所有可用的协议,如图1.8所示。

图1.8  Wireshark支持的协议

或者在工具栏中依次单击Internals|Supported Protocols命令,将显示如图1.9所示的界面。

 

图1.9  支持的协议

q  String1,String2(可选项):协议的子类。点击相关父类旁的“+”号,然后选择其子类,如图1.10所示。

 

图1.10  子类

q  Comparison operators:指定比较运算符。可以使用6种比较运算符,如表1-1所示。

表1-1  比较运算符

英文写法 C语言写法 含义
eq == 等于
ne != 不等于
gt > 大于
lt < 小于
ge >= 大于等于
le <= 小于等于

q  Logical expressions:指定逻辑运算符。可以使用4种逻辑运算符,如表1-2所示。

表1-2  逻辑运算符

英文写法 C语言写法 含义
and && 逻辑与
or || 逻辑或
xor ^^ 逻辑异或
not ! 逻辑非

现在就可以通过指定过滤条件,实现显示过滤器的作用。该过滤条件在Wireshark界面的Filter文本框中输入,如图1.11所示。

 

图1.11  指定过滤条件

从该界面可以看到,输入过滤条件后,表达式的背景呈浅绿色。如果过滤器的语法错误,背景色则呈粉红色,如图1.12所示。

 

图1.12  表达式错误

使用显示过滤器可以分为以下几类。下面分别举几个例子,如下所示:

1.IP过滤

IP过滤包括来源IP或者目标IP等于某个IP。

显示来源IP:ip.src addr == 192.168.5.9 or ip.src addr eq 192.168.5.9

显示目标IP:ip.dst addr == 192.168.5.9 or ip.dst addr eq 192.168.5.9

2.端口过滤

显示来源或目标端口。tcp.port eq 80

只显示TCP协议的目标端口80。tcp.dstport == 80

只显示TCP协议的来源端口80。tcp.srcport == 80

过滤端口范围。tcp.port >= 1 and tcp.port <= 80

3.协议过滤

udp、arp、icmp、http、smtp、ftp、dns、msnms、ip、ssl等

排除ssl包。!ssl或者not ssl

4.包长度过滤

udp.length == 26:这个长度表示指udp本身固定长度8加上udp下面那块数据包之和。

tcp.len >= 7:表示IP数据包(TCP下面那块数据),不包括TCP本身。

ip.len == 94:表示除了以太网头固定长度14,其它都是ip.len,即从IP本身到最后。

frame.len == 119:表示整个数据包长度,从eth开始到最后。

5.http模式过滤

http模式包括GET、POST、响应包。

指定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:”

6.连接符and/or

指定显示tcp和udp协议的数据包。如下所示:

tcp and udp

7.表达式

指定源ARP不等于192.168.1.1,并且目标不等于192.168.1.243。如下所示:

!(arp.src==192.168.1.1) and !(arp.dst.proto_ipv4==192.168.1.243)

下面将介绍显示过滤器的自定义方法。在Wireshark的工具栏中依次单击Analyze|Display Filters命令,将显示如图1.13所示的界面。

图1.13  Display Filter

大家看到该界面和添加捕捉过滤器的界面很类似。确实添加显示过滤器和添加捕捉过滤器的方法一样,唯一不同的是在定义显示过滤器时,可以选择表达式。设置完后,单击“确定”按钮。如果单击“应用”按钮,而没有单击“确定”按钮,添加的过滤器将不会生效。

1.2  ARP协议基础知识

在掌握必要的工具Wireshark后,我们就可以开始正式学习ARP的内容。了解ARP协议必备的基础知识,如什么是ARP、地址广播。本节将介绍ARP协议基础知识。

1.2.1  什么是ARP

ARP(Address Resolution Protocol,地址解析协议)是根据IP地址获取物理地址的一个TCP/IP协议。由于OSI模型把网络工作分为七层,IP地址在OSI模型的第三层,MAC地址在第二层,彼此不直接通信。在通过以太网发生IP数据包时,需要先封装第三层(32位IP地址)、第二层(48位MAC地址)的报头。但由于发送数据包时只知道目标IP地址,不知道其MAC地址,而又不能跨越第二、三层,所以需要使用地址解析协议。

使用地址解析协议后,计算机可根据网络层IP数据包包头中的IP地址信息对应目标硬件地址(MAC地址)信息,以保证通信的顺利进行。ARP的基本功能就是负责将一个已知的IP地址解析成MAC地址,以便主机间能正常进行通信。

 

图1.14  ARP请求

如图1.14所示,假设PC1发送数据给主机PC2时,需要知道PC2的MAC地址。可是PC1是如何知道PC2的MAC地址呢?它不可能知道每次所需要的MAC地址,即使知道也不可能全部记录下来。所以,当PC1访问PC2之前就要询问PC2的IP地址所对应的MAC地址是什么?这时就需要通过ARP请求广播实现。

当在超市找人时,如果不知道对方的位置就需要到服务台广播进行找人。当知道对方的位置时就可以直接到对方所在位置。在网络中也存在这种情况,如果不知道对方的地址就需要进行广播,就发生广播帧,而知道对方的地址就发生单播直接到对方处。所以广播通信是“一对所有”的通信方式,而单播通信是“一对一”的通信形式。而所有听到找人广播的范围就是广播域。广播域和广播的具体定义如下:

广播:将广播地址作为目的地址的数据帧显示过滤器ARP协议全面实战手册协议详解、攻击与防御大学霸。

广播域:网络中能接收到同一个广播所有节点的集合显示过滤器ARP协议全面实战手册协议详解、攻击与防御大学霸。

Comments are closed.