首先使用“快照X”恢复Windows/Linux系统环境。
一.ARP欺骗攻击
实验需求:
(1)本实验使用交换网络结构(参见附录B),组一、二和三间通过交换模块连接(主机A、C、E通过交换模块连接,主机B、D、F也通过交换模块连接)。
因此,正常情况下,主机C无法以嗅探方式监听到主机A与主机E间通信数据,同样主机D也无法监听到主机B与主机F间的通信数据。
(2)主机C要监听主机A和主机E间的通信数据;主机D要监听主机B与主机F间的通信数据。
分析:
黑客主机通过对目标主机进行ARP欺骗攻击,获取目标主机间的通信数据。
1.正常通信
(1)目标主机二单击工具栏“UDP工具”按钮,启动UDP连接工具,创建2513/udp服务端。
(2)目标主机一启动UDP连接工具,将“目标机器”IP地址指定为目标主机二的地址,目标端口与服务器一致。
在“数据”文本框中输入任意内容,单击“发送”按钮,向服务端发送数据。
服务端确定接收到数据。
(3)黑客主机单击工具栏“控制台”按钮,切换至/opt/ExpNIS/NetAD-Lab/Tools/ids/目录(Snort目录),执行如下命令:通过上述命令snort仅会监听源IP地址为目标主机一的、传输协议类型为UDP的网络数据
(4)目标主机一再次向目标主机二发送消息,黑客主机停止snort监听(Ctrl+C),观察snort监听结果,是否监听到目标主机间的通信数据。
为什么?
没有监听到结果,目标主机不在同一个共享设备上,正常状态下目标主机一和二间的通信,黑客主机监听不到它们之间的信息。
(5)目标主机一查看ARP缓存表,确定与目标主机二的IP相映射的MAC 地址是否正常。
不正常,缓存表多出一行新的内容。
2.ARP攻击
(1)黑客主机单击平台工具栏“控制台”按钮,进入实验目录,运行ARPattack 程序攻击目标主机一,将其ARP缓存表中与目标主机二相映射的MAC地址更改为黑客主机的MAC地址。
其中第一个参数为被攻击主机IP地址,第二个参数为被攻击主机MAC地址,第三个参数为与被攻击主机进行正常通信的主机IP地址。
通过上述命令在目标主机一的ARP缓存表中,与目标主机二IP相绑定的MAC 被更改为黑客主机MAC。
(2)黑客主机启动snort,同样监听源IP地址为目标主机一的、传输协议类型为UDP的网络数据。
(3)目标主机一继续向目标主机二发送数据,目标主机二是否接收到数据?否
目标主机间的通信是否正常?不正常
黑客主机停止snort监听,观察snort监听结果,是否监听到目标主机间的通信数据。
为什么?是,目标主机一发送给目标主机二的数据包,其目的MAC是黑客主机的MAC地址。
(4)目标主机一查看ARP缓存表,确定与目标主机二的IP相映射的MAC 地址是否正常。
不正常,目标主机一的ARP缓存表中与目标主机二IP相映射的MAC地址已更新为黑客主机的MAC地址。
3.单向欺骗
正如步骤2中所示的实验现象,在黑客实施了简单的ARP攻击后,目标主机二会接收不到目标主机一的消息,在接下来的时间里目标主机一、二很容易会对网络状况产生怀疑。
他们会去查看并修改ARP缓存表。
所以应尽量减少目标主机由于受到ARP攻击而表现出的异常,将黑客主机做为“中间人”,将目标主机一发送的数据转发给目标主机二,是一种很可行的方法。
(1)黑客主机开启路由功能,具体操作如下:
在控制台中输入命令:echo 1 >/proc/sys/net/ipv4/ip_forward
(2)黑客主机捕获来自目标主机一的数据包,并将其转发给目标主机二,具体操作如下(添加iptables防火墙转发规则):
上述第一条规则允许将来自网络接口eth0、源IP为目标主机一IP、目的IP 为目标主机二IP的数据包进行转发,目的网络接口为eth0;第二条规则允许接收针对第一条规则的应答数据包(iptables具体使用方法见实验27|练习二)。
(3)黑客主机启动snort,监听源地址为目标主机一IP、协议类型为UDP 的数据包。
(4)目标主机一再次向目标主机二发送UDP数据,目标主机二是否接收到数据?为什么?
收到
黑客主机将接收到的源IP为目标主机一、目的IP为目标主机二的数据包重新转发给目标主机二。
(5)黑客主机停止snort监听。
图24-1-4 数据包转发
从上图所示信息中可以知道,由源主机(MAC地址是0:C:29:32:14:D6)发往目的主机(MAC地址是0:C:29:52:37:98)的数据包在网络传输时的路由过程是:源主机->中间人(MAC地址是0:C:29:2F:4E:8F)->目标主机。
(6)黑客主机查看ARP缓存表,确定与目标主机一的IP相映射的MAC地址;确定与目标主机二的IP相映射的MAC地址。
(7)目标主机二查看ARP缓存表,确定与目标主机一的IP相映射的MAC 地址。
下面来测试目标主机二对一的数据通信情况。
(8)黑客主机启动snort,仅监听协议类型为ICMP的网络数据包。
(9)目标主机一对目标主机二进行ping操作,是否能够ping通?请描述数据包的在网络中的传输路径。
能
数据包在网络中的传输路径:目标主机一→黑客主机→目标主机二。
(10)黑客主机停止snort监听,观察结果,是否监听到主机一给主机
二发出的ICMP回显请求数据包?是
是否监听到主机二给主机一发出的ICMP回显应答数据包?为什么会出现此种现象?否
目标主机二的ARP缓冲表中与目标主机一IP相映射的MAC地址仍然是目标主机一的MAC地址。
所以目标主机二会将ICMP回显应答数据包直接发送给目标主机一。
二.防范ARP欺骗
当发现主机通信异常或通过网关不能够正常上网时,很可能是网关的IP被伪造。
可以使用下列手工方法防范ARP欺骗攻击。
1.清空ARP缓存表
清空ARP缓存表的命令是arp -d ,之后对目标主机进行ping操作。
2.IP/MAC地址绑定
实现IP/MAC地址绑定,实际上就是向ARP缓存表中添加静态(static)项目,这些项目不会被动态刷新,在机器运行过程中不会失效。
(1)Linux下绑定IP/MAC
实验使用的Linux系统环境(FC5)中,arp命令提供了-f选项,完成的功能是将/etc/ethers文件中的IP/MAC地址对以静态方式添加到ARP缓存表中。
建立静态IP/MAC捆绑的方法如下:
首先建立/etc/ethers文件(或其它任意可编辑文件),编辑ethers文件,写入正确的IP/MAC地址对应关系。
然后让系统在启动后自动加载项目,具体操作:在/etc/rc.d/rc.local最后添加新行arp -f,重启系统即可生效。
此时查看arp缓存表,静态项目的Flags Mask 内容为CM,其中M表示当前项目永久有效。
(2)Windows下绑定IP/MAC
Windows平台中虽然arp命令没有提供-f选项,但同样可以实现IP/MAC地址静态绑定,方法是首先清除ARP缓存表,然后将IP MAC地址对添加到缓存表中,最后实现开机后自动执行上述功能。
请根据上述提示,结合arp命令,写出实现172.16.0.152
00-0c-29-95-b5-e9地址对静态绑定的操作步骤,并添写下面的脚本文件。
@echo off
arp -d
arp -s 172.16.0.152 00-0c-29-95-b5-e9
exit
3.ARP监听
由于ARP欺骗是通过伪装其它IP地址向目标主机发送ARP应答报文实现的,所以通过ARP监听可以监视网络中的目标为本机的ARP应答数据包的流向。
设置监听程序对目标地址为本机地址或子网广播地址或受限广播地址的ARP数据包进行监听。
以本机IP地址为172.16.0.152,子网掩码为255.255.255.0为例,使用snort 监听满足上述条件的数据包,命令如下:
Snort 172.16.0.152 255.255.255.0。