提起ARP我们第一个想到的必定是攻击、欺骗,其实ARP协议对于整个网络来说起着至关重要的作用,他的诞生并不是为了欺骗和攻击用途的,假如没了黑客,那么ARP照样运转,假如没了ARP那网络世界便一团糟。
ARP是工作在TCP/IP五层模型的第三层(网络层),相对于ip与icmp等协议较为独立。其报文也只包含了数据链路层和网络层部分,这也是它相对于ip较为独立的体现之一
ARP协议过程可以大致的分为
-pc1发送数据到pc2 首先检查ARP缓存中是否存在pc2的MAC地址
-没有则在整个广播域中广播ARP请求信息
-所有主机收到ARP请求信息
-pc2回复ARP应答,以单播方式发送给pc1 其他主机丢弃
-pc1将pc2发送的单播MAC地址保存到缓存中
只要电脑要访问别人就必须进行ARP协议,可见其重要性
ARP也和MAC地址表一样具有老化时间,手工配置的ARP缓存也会老化,当两台pc一直在通信,缓存自然就不会被删除。
针对于ARP进行攻击和欺骗也是在内网才能发挥作用,一旦需要访问外网例如百度等,帧头MAC地址便会转变成网关地址,由路由器向外传送。
查看ARP缓存的dos命令:arp -a
下面是ARP请求报文的具体内容:
ARP缓存对于ARP的回复是不断更新的,这就导致报文后到达就覆盖了之前的缓存,对于网络来说是方便的,但对于黑客来说这同样也为他们提供了便利。
ARP最大的漏洞就在于不能进行身份验证,攻击人可以通过发送虚假的ARP应答来实现ARP缓存投毒,一般此过程都用到ettercap实现。
这样的攻击对于攻击者来说毫无益处,简而言之就是伤敌一千自损八百,一般就与ARP协议就是中间人攻击最为有效,这种攻击一般人难以发觉,但是你的流量都会流向攻击者,由攻击者再向目标地址转发,你的所有未加密信息也会泄露。
知道了这种攻击的攻击模式,那做起防守便轻而易举了。
同于局域网流量都流向交换机,企业级交换机上面也配备有检测ARP包的功能,通过交换机的ARP动态识别可以直接将ARP欺骗直接扼杀在摇篮里。