1.1 工作任务1——基于Sniffer Pro进行协议、模拟攻击分析
1.1.1 工作任务总体描述与实施流程表
本工作任务是对ARP协议的攻击进行协议分析、模拟攻击、测试与流量分析。通过本工作任务的学习,将学会协议分析技术的要点,通过经验的积累能够定位网络故障所在。具体工作任务描述与实施流程如表1.1所示。
表1.1 工作任务描述与实施流程表
本工作任务是对ARP协议的攻击进行协议分析、模拟攻击、测试与流量分析。具体工作任务实施图如图1.1所示。
图1.1 局域网协议分析场景
1.1.2 引导文本
在这个学习情境中,主要安排了一个学习任务,即针对ARP协议进行捕获分析、模拟攻击与流量分析,下面是对ARP协议相关知识的介绍。
1.网络层次结构与数据封装、解封装
首先要清楚网络层次结构与协议封装过程基本概念,如图1.2所示,是网络层次结构的图示;如图1.3所示是数据封装、解封装的图示。理解网络层次结构和数据封装、解封装是进行协议分析的基础,为正确进行协议分析提供指导。
图1.2 网络层次结构
图1.3 数据封装与解封装
2.数据是如何封装的
在进行协议分析前,要知道两台主机在通信过程中对数据是如何封装的?下面是工作站1发送给工作站4的一个ICMP数据包的协议封装,网络及地址信息参见图1.1。
(1)以工作站1和工作站4通信(ping)为例进行分析。
① 工作站1会把ICMP的请求数据进行如图1.4所示的封装,其中要包含的主要内容是:目的主机MAC地址(00-15-58-E0-49-EA)、源主机MAC地址(00-16-76-BE-E7-D0)、源主机IP地址(10.1.103.1)、目的主机IP地址(10.1.103.4)。这样数据才能正确送达工作站4。
② 工作站4会把ICMP的回应数据进行如图1.4所示的封装(可自行画出),其中也要包含:目的主机MAC地址(00-16-76-BE-E7-D0)、源主机MAC地址(00-15-58-E0-49-EA)、源主机IP地址(10.1.103.1)、目的主机IP地址(10.1.103.4)。这样数据才能正确回送到工作站1。
图1.4 ICMP协议数据封装
(2)工作站1 和WWW服务器通信(ping)为例进行分析。
① 工作站1会把ICMP的请求数据进行类似图1.4类示的封装,其中要包含的主要内容是:目的主机MAC地址(目标主机与本机不在同一网络所以此处为网关的MAC地址(00-09-E9-A4-70-00)、源主机MAC地址(00-16-76-BE-E7-D0)、源主机IP地址(10.1.103.1)、目的主机IP地址(218.62.14.86)。这样数据才能正确送达WWW服务器,如图1.5所示。
图1.5 工作站1和WWW服务器网络结构
② 具体细节可以通过后面的学习进行协议分析。
3.针对ARP协议的攻击介绍
前不久,很多企业的内部网络遭受了ARP攻击,此类攻击可能使整个局域网无法进行互联网连接,或使某些关键服务器无法访问。究其主要原因,是由于ARP协议自身的特点及工作方式产生的。
这种攻击的特点是:当同一局域网内的一台或多台计算机感染了ARP攻击程序后,会不断发送伪造的ARP攻击包,如果这个攻击包的源MAC地址伪造为一个假的MAC地址(M1),源IP伪造成网关的IP地址,目的MAC为广播地址、这样所有同一网段内的主机都会收到,并误以为网关的MAC地址已经变为M1,于是进行ARP缓存更新,把网关的真实IP与这个假的MAC地址进行关联。当这些被攻击的主机想进行外部网络访问时会把数据送到网关,即封装网关的IP与MAC,主机会先查询本机内的ARP缓存记录,查找网关IP对应的MAC地址,由于这个MAC是假的,所以外发的数据无法送达网关。因此,造成的现象就是被攻击的主机无法访问外部网络。
按照ARP协议的设计,为了减少网络上过多的ARP数据通信,一个主机,即使收到的ARP应答并非自己请求得到的,也会将其插入到自己的ARP缓存表中,这就造成了“ARP欺骗”的可能。
4.ARP协议的原理分析
目前大多数企业园区网络采用的是二层的以太网结合TCP/IP协议进行网络设计与使用,但是由于以太网的特点和TCP/IP协议存在的不安全性,产生很多网络安全隐患和攻击,如针对ARP的攻击就是一个典型的例子。对于一名网络安全管理人员应该对每个常用的协议有深入的理解,才能有的放矢。那么如何做呢?这时可以利用Sniffer Pro进行协议分析加深对协议结构及其工作过程的理解,同时要对流量进行分析来定位网络故障。对协议的工作原理有了深入理解后还可以对协议的安全性进行测试或模拟攻击。下面针对ARP协议结构进行分析、攻击模拟与流量分析。
首先对ARP的基本原理作以介绍,在以太网同一网段内部,当一个基于TCP/IP的应用程序需要从一台主机发送数据给另一台主机时,它把信息分割并封装成包,附上目的主机的IP地址。然后,寻找目的IP地址到实际MAC地址的映射,这需要发送ARP广播消息。当ARP获取到目的主机MAC地址后,就可以形成待发送帧的完整以太网帧头(在以太网中,同一局域网内的通信是通过MAC寻址来完成的,所以在IP数据包前要封装以太网数据帧,当然要有明确的目的主机的MAC地址方可正常通信)。最后,协议栈将IP包封装到以太网帧中进行传送。
在如图1.1所示的网络中,当工作站1要和工作站4通信(如工作站1 ping工作站4)时。工作站1会先检查其ARP缓存内是否有工作站4的MAC地址。如果没有,工作站1会发送一个ARP请求广播包,此包内包含着欲与之通信的主机的IP地址,也就是工作站4的IP地址。当工作站4收到此广播后,会将自己的MAC地址利用ARP响应包传回给工作站1,并更新自己的ARP缓存,也就是同时将工作站1的IP地址/MAC地址对保存起来,以供后面使用。工作站1在得到工作站4的MAC地址后,就可以与工作站4通信了。同时,工作站1也将工作站4的IP地址/MAC地址对保存在自己的ARP缓存内。
如果想查看ARP缓存中的所有记录,可以在用命令“arp-a”;如果想清除ARP缓存中的动态记录,可以在用命令“arp-d”。
注意:
◆ 当然这其中隐含了一些操作,如同一网段其他的工作站也会收到工作站1发出的ARP广播帧请求帧,并根据此数据帧中工作站1的IP与MAC地址对应关系存入自己的ARP缓存中。
◆ 这里的网关即为:路由器内网接口的IP与MAC(10.1.103.254——00-09-E9-A4-70-00)。
1.1.3 协议分析工具及软件的选用
对网络协议进行深入分析,需要借助于协议分析软件或专业协议分析设备对协议进行捕获并分析,进而排除网络故障,为网络状态把脉。
对于企业而言当然希望选择性价比高的产品。为此在这里介绍由NAI公司推出的Sniffer Pro这款软件。可以用Sniffer Pro网络分析器进行故障解决。利用Sniffer Pro网络分析器的强大功能和特征,解决网络中存在的问题。
与Netxray比较,Sniffer支持的协议更丰富,例如PPPoE协议等在Netxray并不支持,在Sniffer上能够进行快速解码分析。Netxray不能在Windows 2000和Windows XP上正常运行,Sniffer Pro 4.6可以运行在各种Windows平台上。Sniffer软件比较大,运行时需要的计算机内存比较大,运行速度相对较慢,这也是它与Netxray相比的一个缺点。
1.网络协议分析软件Sniffer Pro的安装
第1步:安装过程很简单,双击安装程序,进入安装界面,单击“下一步”后出现许可协议,这些是软件安装的通用的步骤,单击“Yes”同意即可。
第2步:单击“下一步”后,选择并设置安装的目的路径,再下一步就开始安装了。
第3步:接下来要求填写个人信息,包括姓名、商业、电子邮件等,填写完成后单击“下一步”。接下来还是要求填写个人联系方式,包括地址、城市、国家、邮编、电话等,填写完成后单击“下一步”。需要注意的是各项目在填写时注意格式,字母与数字要区分开。如图1.6和图1.7所示。
图1.6 软件安装中个人信息
图1.7 软件安装中联系信息
第4步:接下来会询问安装者是如何了解本软件的?正确选择后,最后的序列号要正确填写。如图1.8所示。
图1.8 软件安装中的注册信息
第5步:接下来是通过网络注册的提示,如图1.9所示。如果由于没有连网所以出现下面的界面,即无法连接,如图1.10所示,暂时不注册并不妨碍软件的使用。
图1.9 软件安装中的联网注册选择
图1.10 软件安装中的联网注册结果
第6步:单击“下一步”后,出现注册结果,单击“完成”就可以结束Sniffer Pro的安装了,如图1.11所示。出现提示要求IE 5支持,接收即可,重启后软件就可以使用了。
图1.11 软件安装中的注册结果及完成
2.网络协议分析软件Sniffer Pro的配置
启动Sniffer Pro软件,在主窗口的工具栏上单击“捕获设置(Define Filter)”按钮,可以对要捕获的协议数据设置捕获过滤条件。默认情况下捕获所有从指定网卡接收的全部协议数据。捕获到数据后,停止查看按钮会由灰色的不可用状态变为彩色的可用状态,如图1.12所示。
图1.12 Sniffer Pro软件的设置
选择停止查看按钮会出现如图1.13所示的窗口,选择最下面的“Decode”选项卡。即可以查看捕获后的数据的解码,如图1.14所示。
图1.13 停止捕获后的窗口
图1.14 查看协议数据的解码信息
1.1.4 对ARP协议数据进行捕获与分析
下面利用Sniffer Pro软件对ARP协议进行分析。在工作站1上进行,分析步骤如下。
(1)设置Sniffer Pro捕获ARP通信的数据包(工作站1与工作站4之间)在工作站1上安装并启动Sniffer Pro软件,并设置捕获过滤条件(Define Filter),选择捕获ARP协议。如图1.15所示。
图1.15 设置捕获过滤条件(Define Filter)
(2)若使工作站1发送ARP请求给工作站4,并得到ARP回应,首先要确保工作站1的ARP缓存中没有工作站4的记录,所以先在工作站1上利用“arp -a”查看一下是否有此记录,如果有,则利用“arp -d”清除;为了看到效果在执行完清除命令后可以再执行一下“arp -a”检查是否已经清除。
(3)确认已经清除工作站1的ARP缓存中关于工作站4的IP与MAC地址对应关系记录后,就可以启动Sniffer Pro进行协议数据捕获了。
(4)在没有互相通信需求下,工作站1是不会主动发送ARP请求给工作站4,所以也就捕获不到ARP的协议数据,此时要在工作站1与工作站4之间进行一次通信,如可以在工作站1上ping工作站4,即ping 10.1.103.4。
(5)命令执行过程结果如图1.16所示。
图1.16 ARP命令及通信测试
(6)有ICMP数据回应后可以发现,Sniffer Pro已经捕获到了协议数据。选择停止并查看,结果如图1.17所示。
图1.17 ARP查询请求数据帧
工作站1发送给工作站4的ARP查询请求数据帧的具体协议数据格式及分析如表1.2所示。
表1.2 ARP查询请求数据帧的具体协议数据格式解析
(7)工作站4应答工作站1的ARP回应数据帧的具体协议数据格式及分析如图1.18和表1.3所示。
图1.18 ARP应答数据帧
表1.3 ARP应答数据帧对应分析
1.1.5 模拟ARP攻击方法
下面利用Sniffer Pro软件进行基于ARP协议的攻击模拟,即让所有主机不能进行外网访问(无法与网关通信),下面在工作站1上实施攻击模拟,步骤如下。
(1)要进行模拟实施攻击,首先要构造一个数据帧,重新构造比较麻烦,可以捕获一个ARP的数据帧再进行改造(可以捕获一个网关的ARP数据帧)。设置Sniffer Pro捕获ARP通信的数据包(工作站1与网关之间)在工作站1上再次启动Sniffer Pro软件,并设置捕获过滤条件(Define Filter),选择捕获ARP协议。
(2)要想工作站1发送ARP请求给网关,并得到ARP回应,首先启动Sniffer Pro捕获,然后利用“arp -d”清除ARP缓存。
(3)在没有互相通信需求下,工作站1是不会主动发送ARP请求给网关的,所以也就捕获不到ARP的协议数据,此时要在工作站1与网关之间进行一次通信,如可以在工作站1上ping网关,即ping 10.1.103.254。
(4)有ICMP数据回应后可以发现,Sniffer Pro已经捕获到了协议数据。选择停止并查看,在第1帧数据包(具体数据结构参见图1.20)上单击右键,并选择“Send Current Frame…”,如图1.19所示。
图1.19 发送当前数据帧
(5)在弹出如图1.20所示的对话框中,其中的数据(Data)即是工作站1发出去查询网关MAC地ARP请求数据,已经放入发送缓冲区内,此时可以进行修改了。
图1.20 发送当前数据帧的修改与设置
(6)对工作站1发出去查询网关MAC地址ARP请求数据(Data)进行如图1.21所示的伪造修改,即这个帧是被伪造为网关IP(10.1.103.254)地址和MAC地址(伪造为假的:112233445566)发出去的查询10.1.103.153(十六进制数为:0a 01 67 99)的MAC地址的ARP广播帧,这样所有本地网段内的主机都会收到并更新记录,以为网关(IP为10.1.103.254)的MAC地址变为了112233445566,并将这一错误关联加入各自的ARP缓存中(包括工作站自身)。
(7)修改后的帧缓冲区中的数据如图1.21所示,修改后在发送(Send)次数下选择连续发送(Continuously),发送类型(Send Type)下选择每隔10毫秒一次,然后单击确定,伪造的数据帧即开始按此间隔时间不断发送了。如需停止发送,如图1.22所示,单击菜单“tools”下的“Packet Generator”项,在出现的窗口中选择停止。这里暂不停止。
图1.21 经过修改后的帧缓冲区中的数据
图1.22 包生成器的控制
对数据帧修改的解析,如图1.23所示。
图1.23 数据帧修改的解析
1.1.6 ARP模拟攻击与结果检查
在工作站1上通过远程桌面连接到工作站4,如图1.24所示。在未发送伪造的数据帧之前工作站4是可以和网关10.1.103.254进行通信的,当启动包生成器发送伪造的数据帧后,就不能ping通网关了。当工作站4上用“arp -a”命令查看,网关IP对应的MAC地址已经变为网络中不存在的伪造MAC地址:112233445566,因而无法访问正确的网关,也就无法访问外部网络。
图1.24 受ARP攻击的计算机(工作站4)的效果查看
此时在工作站1上用“arp -a”命令查看网关IP对应的MAC地址时,arp缓存表中的网关MAC地址也已经变为网络中不存在的伪造的MAC地址:112233445566。
停止发送伪造帧,即停止攻击,并分别在两台工作站上执行“arp -d”命令,重新Ping网关后又可以进行连接并访问外网了。
此种类型的攻击是典型的“中间人”攻击。
1.1.7 确定ARP攻击流量并加以分析
下面对ARP协议攻击软件产生的流量进行以下分析。
(1)在工作站1上开启Sniffer Pro并设置对ARP协议进行捕获,启动捕获。
(2)开启WinArpAttacker软件,先进行Scan扫描本局域网内的存活主机。选中要攻击的目标主机前,然后选择Attack-BanGateway。这里选择两台目标主机(10.1.103.4和10.1.103.5),如图1.25所示。
图1.25 利用ARP攻击器实施攻击
(3)这时发现Sniffer Pro已经捕获到数据了,如图1.26和图1.27所示,其中有四个数据帧,图中的解码为对10.1.103.4的攻击过程。
(4)攻击过程是:工作站1以假的源MAC地址(010101010101)为源给网关发一个ARP包,欺骗网关,使网关会误认为工作站1的IP地址是:10.1.103.4,MAC地址是:010101010101(同时交换机的CAM表也更新)。工作站1以假的源MAC地址(010101010101)为源给工作站4发一个ARP包,进行欺骗,使工作站4会误认为网关的IP地址10.1.103.254,对应的MAC地址是:010101010101。
(5)攻击的结果是:网关发给工作站4的数据发到了工作站1;工作站4发给网关的数据也发到了工作站1(MAC:010101010101)。
(6)分析:这种攻击方式与前面的Sniffer Pro软件模拟的是一个原理。只是目的不同,相对更为复杂一些。
图1.26 捕获到的ARP攻击器欺骗工作站4的协议数据
图1.27 捕获到的ARP攻击器欺骗网关的协议数据
1.1.8 针对此类攻击的防范
1.ARP协议攻击防护分析
防范这类攻击的方法很多,目前已经有一些工具软件可以防范此类攻击,如瑞星、奇虎360安全卫士等已经可以防范此类攻击,但是要求每个客户端都安装软件。也可以进行静态的MAC地址绑定,把网关的IP与MAC地址进行静态关联到工作站的ARP缓存中(命令是:arp-s 10.1.103.254 00-09-E9-A4-70-00)。但定位此类攻击点还是很困难的,可以通过登录交换机查看各交换机端口的广播流量情况定位是哪个端口连接的计算机发出的攻击。也可以设置交换机端口的广播抑制比。当然目前也有很多关于防范ARP攻击的方式,其中以交换机上的配置较多见,主要是以在交换机上进行MAC地址与端口进行静态绑定。
下面以思科交换机的设置为例进行分析:思科Dynamic ARP Inspection(DAI)在交换机上提供IP地址和MAC地址的绑定,并动态建立绑定关系。DAI以DHCP Snooping绑定表为基础,对于没有使用DHCP的服务器个别主机可以采用静态添加ARP access-list实现。DAI配置针对VLAN,对于同一VLAN内的接口可以开启DAI也可以关闭。通过DAI可以控制某个端口的ARP请求报文数量。通过这些技术可以防范“中间人”攻击。
2.交换机配置ARP Inspection实例
(1)全局配置命令:
ip dhcp snooping vlan 100,200 ip dhcp snooping ip arp inspection vlan 100,200 //定义对VLAN100,200 进行ARP数据帧检测
(2)接口配置命令:
ip dhcp snooping trust ip arp inspection trust //定义哪些接口是信任接口,网络设备接口及TRUNK接口等 ip arp inspection limit rate 5(pps) //定义接口每秒ARP数据帧数量
(3)静态IP设备不采用DHCP的排除
arp access-list StaticIP permit ip host 10.1.103.254 mac host 0009.E9a4.7000 ip arp inspection filter StaticIP vlan 201
具体可能通过网上查询进行深入解决方案的设计,提高独立解决问题的能力。
1.1.9 知识技能要点测评
本部分内容是在已有网络基础与网络组建与互联知识与能力的基础上对协议原理与结构知识深入理解,并能够进行协议分析软件的正确安装、配置与使用,最终能对捕获到的协议数据进行分析判断,发现由于网络协议导致的网络异常现象,并定位排除网络安全故障点。如表1.4所示。
表1.4 知识技能要点测评表