ARP欺骗技术是黑客攻击基于以太与IP网络的常见手段,本文将全面解释什么是ARP攻
击,ARP欺骗发生以后可以利用的几种黑客攻击手段。如何防范ARP欺骗发生。
一:什么是ARP,为什么ARP欺骗会发生
ARP是地址解析协议(AddressResolution protocol)的简称,首先看一下TCP/IP网络的开放系统
互联协议分层结构:
七层分别为物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。
对于任何一台在网络上的计算机来说,都有两个网络地址,一个是基于网卡的MAC地址,
另外一个是IP地址.
MAC地址全球唯一而且不可改变的存储在网卡上面,MAC地址是用来在数据连接层,当发
送帧数据时候需要使用MAC地址,帧数据包运行在数据链路层,帧数据包头包含源机器
MAC地址与目的计算机的MAC地址,一个帧数据包最大为1500字节。MAC地址是独立于
应用协议的IP地址。MAC地址主要应用在接受发送以太网的数据帧。
IP地址在网络层与数据传输层及之上的数据包中工作,每个计算机必须有个IP作为唯一标
识,IP地址是虚拟的,不依赖于硬件的,而是通过软件实现。
IP地址与MAC地址一起实现了开放系统模型的数据发送与接受。IP层之上的通信通过构造
数据包来完成,数据包头中包含源主机与目的主机的IP地址,这些数据包的通信必须依赖
于数据链路层的帧数据包,这些IP数据包被适当的分片以后,包装在以太网帧数据包中,
帧头部分包含源主机与目的主机(下一跳)MAC地址。发送一下物理层再经过网络上的交换机,
发送到正确的MAC地址主机。当构造一个以太网帧数据包时候,源主机知道目的主机的IP
地址,但是无法获知目的主机的MAC地址,这个时候必须有一种方法可以找到目标主机(下
一跳)MAC地址,于是ARP解析协议就登场啦,它就可以通过目标主机的IP地址获取MAC
ARP协议通过发送ARP请求数据包通过目的主机IP地址来查询MAC,ARP请求报文通过广
播方式发送整个局域网内所有计算机,每个计算机都会检查ARP请求报文,但是只有IP地
址与之相符的计算机会发送一条包含自己MAC地址的ARP应答报文。
显然ARP请求广播报文会消耗局域网的网络带宽资源,于是为了减少发送ARP报文的次数
操作系统一般都会维护一个ARP应答缓存表,只有当缓存表中查询不到对应的MAC地址时
候,才会发送ARP广播请求报文,由于ARP协议是一种无状态协议,当收到一条ARP应答
报文时候,它就会更新ARP应答缓存表不管它之前是否发送了ARP广播请求报文
ARP欺骗正是利用ARP协议的无状态性,通过捏造不存在的MAC地址更新操作系统ARP路
由缓存表。Windowns下查询ARP缓存表的命令及显示如下:
当一个捏造的ARP应答报文被接受以后,ARP路由表将被更新,任何发往目的IP主机B的
数据包可能被重定向到目标主机B(实施欺骗的主机)。这种通过ARP欺骗更新ARP缓存路由
表的攻击方式通常被称为ARP中毒。
交换机匹配帧的目的MAC地址与自己MAC地址表(MAC地址-端口)从而转发帧数据包到正确
的端口,MAC地址表的每条记录是有MAC地址与对应端口组成,当交换机第一次通电启动
时候,交换机通过检查到达端口第一个数据帧中的源MAC地址从而建立该MAC地址表。
当网卡处于混杂模式时,网卡可以检查所有帧数据包不管该帧的目的MAC是不是它自己。
在交换机构建的网络环境中,交换机的帧转发是根据交换机自己的路由表完成,这样就阻止
了网络数据包嗅探工具跨过交换器在不同网段进行网络嗅探。然而通过ARP欺骗,网络数
据包嗅探工具可以在基于交换机的网络上完成数据包嗅探。
二:基于ARP欺骗的攻击方法
中间人攻击
中间人攻击(man in the middle attack)是最典型攻击之一,当一个中间人攻击完成以后,一个
恶意用户将在两台相互通信的目的主机之间。这样他就可以完成网络数据包(以太网数据包)
嗅探与分析,中间人计算机将在两台相互通信的目的主机之间转发帧数据包,而两台目的主
机对此毫无察觉,一个完整的中间人攻击过程如下:
这种攻击方式不仅对计算机有效,还可以扩展到路由器与网关设备,从而在路由器与主机之
间使用中间人攻击。
广播攻击
如果以太网帧的目的地址为FF:FF:FF:FF:FF:FF,则该以太网数据帧为广播帧,网段中所有的
计算机都会收到该广播帧,公共扫描网络上的主机,发送假的ARP应答报文,设定网关的
MAC地址为广播地址,所有发送到该网关的数据将被广播发送,导致网络嗅探攻击。
拒绝服务攻击(DOS)
通过更新ARP缓存表,插入一条不存在的MAC地址记录匹配一个目的IP,将会知道该帧数
据被丢弃,从而导致主机不能接受到数据包产生拒绝服务攻击效果,它其实是中间人攻击成
功以后,中间人离开之后而产生的后中间人攻击效应。
会话劫持
连接劫持(会话劫持)是一种类似中间人攻击的方法,当两台计算机相互连接时,中间人通过
ARP欺骗,完成连接劫持。连接劫持一个简单例子是连接劫持者控制一个远程主机登录连接之后,开始进入远程主机,获取相关资料。
三:ARP欺骗预防
1. 使用静态MAC地址缓存路由表
2. 据说还没有从根本上的解决之道。