局域网ARP协议和欺骗技术及其对策( 二 )



的MAC地址呢,一般的OS中是这样做的,在OS的内核中保存一分MAC地址表,就是我们一中介始到的 。用arp -a就可以看见这个表的内容了,例如:

C:/>arp -a

Interface: 192.168.0.X on Interface 0x1000002

Internet Address Physical Address Type

192.168.0.1 52-54-ab-27-82-83 dynamic

其中表内有IP和MAC地址的对应关系,当要过进行通讯时,系统先查看这个表中是否有相关的表项,假如有就直接使用,假如没有系统就会发出一个ARP请求包,这个包的目的地址为ffffffffffff的广播地址,他的作用就是询问局域网内IP地址为192.168.0.2的主机的MAC地址,就像是A在局域网中发信息找一个IP地址为192.168

.0.2的主机MAC地址,同样A机把自已的MAC地址告诉出去是52-54-ab-27-82-83,随后所有主机都会接收到这个包,但只有IP为192.168.0.2的B才会响应一个ARP应答包给主机A,B机会回信息给A机说他的MAC地址是52-54-ab-27-82-84

,好这下主机A就知道B的MAC地址了,于时他就可以封包发送了,同时主机A将B的MAC地址放入ARP缓冲中,隔一定时间就将其删除,确保不断更新 。

注重,在这个过程中,假如主机A在发送ARP请求时,假如该局域网内有一台主机C的IP和A相同,C就会得知有一台主机的IP地址同自已的IP地址相同,于时就蹦出一个IP冲突的对话筐 。与ARP相对应的还有一个协议RARP:Reverse

Address Resolution Protocol,

反向地址解析协议,该协议主要用于工作站模型动态获取IP的过程中,作用是由MAC地址向服务器取回IP地址 。
三,如何实现ARP协议的欺骗技术和相应的对策

1,ARP协议欺骗技术

当我们设定一个目标进行ARP欺骗时,也就是把MAC地址通过一主机A发送到主机B上的数据包都变成发送给主机C的了,假如C能够接收到A发送的数据包后,第一步属于嗅探成功了,而对于主机A来目前是不可能意识到这一点,主机C接收到主机A发送给主机B的数据包可没有转交给B 。当进行ARP重定向 。打开主机C的IP转发功能,A发送过来的数据包,转发给C,好比一个路由器一样 。但是这就是ARP协议欺骗真正的一步,假如主机C进行发送ICMP重定向的话就麻烦了,因为他可以直接进行整个包的修改转发,捕捉到主机A发送给的数据包,全部进行修改后再转发给主机B,而主机B接收到的数据包完全认为是从主机A发送来的 。这样就是主机C进行ARP协议欺骗技术,对于网络安全来是很重要的 。当然还可以通过MAC地址进行欺骗的 。


2,ARP协议欺骗技术相应对策

各种网络安全的对策都是相对的,主要要看网管平时对网络安全的重视性了 。下面介始一些相应的对策:

1) 在系统中建立静态ARP表 ,建立后对本身自已系统影响不大的,对网络影响较大,破坏了动态ARP解析过程 。静态ARP协议表不会过期的,我们用“arp -d”命令清除ARP表,即手动删除 。但是有的系统的静态ARP表项可以被动态刷新,如Solaris系统,那样的话依靠静态ARP表项并不能对抗ARP欺骗攻击,相反纵容了ARP欺骗攻击,因为虚假的静态ARP表项不会自动超时消失 。当然,可以考虑利用cron机制补救之 。(增加一个crontab) 为了对抗ARP欺骗攻击,对于Solaris系统来说,应该结合"禁止相应网络接口做ARP解 析"和"使用静态ARP表"的设置

2)在相对系统中禁止某个网络接口做ARP解析(对抗ARP欺骗攻击),可以做静态ARP协议设置(因为对方不会响应ARP请求报文) 如:arp -s XXX.XXX.XX.X 08-00-20-a8-2e-ac

在绝大多数操作系统如:Unix,BSD,NT等,都可以结合"禁止相应网络 接口做ARP解析"和"使用静态ARP表"的设置来对抗ARP欺骗攻击 。而Linux系统,其静态ARP表项不会被动态刷新,所以不需要"禁止相应网络接口做ARP解析"即可对抗ARP欺骗攻击 。

推荐阅读