1.1.1 ARP欺骗攻击的防范 1.1.1.1 ARP欺骗攻击原理 ARP是用来实现MAC地址和IP地址的绑定,这样两个工作站才可以通讯,通讯发起方的工作站以MAC广播方式发送ARP请求,拥有此IP地址的工作站给予ARP应答,送回自己的IP和 MAC地址。ARP协议同时支持一种无请求ARP功能,局域网段上的所有工作站收到主动ARP广播,会将发送者的MAC地址和其宣布的IP地址保存,覆盖以前Cache的同一IP地址和对应的MAC地址, 主动式ARP合法的用途是用来以备份的工作站替换失败的工作站。由于ARP无任何身份真实校验机制,黑客程序发送误导的主动式ARP使网络流量重指经过恶意攻击者的计算机,变成某个局域网段IP会话的中间人,达到窃取甚至篡改正常传输的功效。黑客程序发送的主动式 ARP采用发送方私有MAC地址而非广播地址,通讯接收方根本不会知道自己的IP地址被取代。为了保持ARP欺骗的持续有效,黑客程序每隔30秒重发此私有主动式ARP。黑客工具如ettercap、 dsniff和 arpspoof都能实现ARP哄骗功能。像ettercap可提供一个用户界面,在对本地网段所有工作站的扫描后,ettercap显示所有工作站源地址和目的地址,选择ARP哄骗命令后,除数据包的截取外,内置的智能Sniffer功能还可以针对不同IP会话获取Password信息。 这里举个例子,假定同一个局域网内,有3 台主机通过交换机相连: A 主机:IP 地址为192.168.0.1, MAC 地址为01:01:01:01:01:01 B 主机:IP 地址为192.168.0.2, MAC 地址为02:02:02:02:02:02 C 主机:IP 地址为192.168.0.3, MAC 地址为03:03:03:03:03:03 B 主机对A 和 C 进行欺骗的前奏就是发送假的ARP 应答包,如图所示: 在收到B主机发来的ARP应答后,A主机应知道: 到 192.168.0.3 的数据包应该发到MAC地址为020202020202 的主机;C 主机也知道:到192.168.0.1 的数据包应该发到MAC 地址为020202020202 的主机。这样,A 和 C 都认为对方的MAC 地址是020202020202, 实际上这就是B 主机所需得到的结果。当然,因为ARP 缓存表项是动态更新的,其中动态生成的映射有个生命期,一般是两分钟,如果再没有新的信息更新,ARP 映射项会自动去除。所以,B还有一个“任务”, 那就是一直连续不断地向A 和 C 发送这种虚假的ARP 响应包,让其ARP缓存中一直保持被毒害了的映射表项。 现在,如果A 和 C 要进行通信,实际上彼此发送的数据包都会先到达B 主机,这时,如果 B 不做进一步处理,A 和 C 之间的...