实验二 TCP/IP协议攻击
任务一 ARP缓存中毒
1.1 工作原理
ARP缓存是ARP协议的重要组成部分。一旦MAC地址和IP地址之间的映射被解析为执行ARP协议的结果,映射将被缓存。因此,如果映射已经在缓存中,则不需要重复ARP协议。然而,由于ARP协议是无状态的,所以高速缓存可能会被恶意制作的ARP消息中毒(篡改)。这种攻击称为ARP缓存中毒攻击。在这种攻击中,攻击者使用欺骗ARP消息欺骗受害者接受无效的MAC-IP映射,并将映射存储在其缓存中。
1.2 过程演示
(1)环境搭建
整个实验会使用三台虚拟机做实验,一台攻击者,一台被攻击者,一台观察者,对这三台主机的网络进行设置,需要把三台主机放在同一个局域网中。
例如:在同一网关192.168.1.1
攻击者IP地址:Machine A(192.168.1.122)
被攻击者IP地址:Machine B(192.168.1.123)
观察者IP地址:Machine C(192.168.1.124)
如何设置虚拟机在同一局域网内:
在虚拟机设置中修改网络适配器模式为桥接模式,如右图所示:
一般,IP分配会自动分配(DHCP),给内部网络自动分配IP地址,会根据此刻的用户数及IP资源数决定来进行动态的IP分配,当然也可以手动绑定IP,下面给一个我尝试手动绑定IP的截图,但注意手动绑定时,需知道哪些IP地址被占用,否则会产生冲突。
(2)实验前检查这三台主机是否网络连通正常,通过在每一台主机终端上使用ping命令对网络的连通情况进行检查。
以攻击者(Machine A)为例:
ping一下百度:#ping www.baidu.com
ping一下被攻击者(Machine B):#ping192.168.1.123
ping一下被观察者(Machine C):#ping192.168.1.124
检查三台主机是否可以ping通百度,以及主机之间是否相互ping通,若ping不通,说明网络设置有误,需重新检查。
(3)清空ARP缓存。完成对网络的检查后,因为之前使用ping命令对网络进行检查的时候,每个虚拟机已经进行了ARP缓存,如果进行实验的话,将不会有ARP协议的数据包,因为会直接在ARP缓存库里面取得相应的MAC地址。所以要对每一个主机进行ARP缓存清空。
相关ARP命令:
查看ARP缓存表:#arp -n(-n 以数字地址形式显示)
删除一个ARP表项:#arp -d 192.168.1.123(表中的IP地址)
设置一个ARP表项:#arp -s 192.168.1.123 00:11:22:33:44:55(IP地址+MAC地址)
这里只需使用前两个命令就可以了。
三台主机全部清空ARP缓存。Machine B为例,如下图:
(4)清空ARP缓存之后,攻击者(Machine A)利用netwox 80攻击被攻击者(Machine B),命令如下:
#netwox 80 -e “00:11:22:33:44:55” -i “192.168.1.123”
(第一个引号里为MAC地址,可以随便写一个就行,第二个引号里为被攻击者的IP地址)该命令会对所在局域网内的所有主机广播该ARP。
(5)观察者(Machine C)ping被攻击者(Machine B),发现ping不通。
通过Wireshark可以观察到攻击者(Machine A)广播的ARP。
1.3 结果分析
在实验前,三台虚拟机可以相互ping通,并且自动生成和存储了ARP表,要实现ARP缓存中毒,如果被攻击者的ARP表不是动态更新的,而是绑定死的,需先删除相关ARP表项,攻击者再对其进行MAC地址和IP地址映射绑定,并广播ARP数据包,使所有接收到ARP数据包的用户,生成新的ARP表,在ping被攻击者IP时,因为IP绑定的是错误的MAC地址,而无法ping通,这是利用了ARP中毒缓存进行拒绝服务攻击。同时,也可以进行ARP欺骗进行中间人攻击,将所有流量都转发到自己机器上,对数据进行嗅探。