ARP攻击之 制造IP地址冲突
2008-12-15 13:37:53 来源:WEB开发网在之前的一篇文章《有了IP和MAC 为什么还需要ARP协议?:http://cisco.chinaitlab.com/others/768339.html》中,小编简单介绍了这三者之间的关系,以及ARP协议在网络通讯中所起的作用。ARP协议对网络安全具有重要的意义,默认情况下,ARP从缓存中读取IP-MAC条目,缓存中的IP-MAC条目是根据ARP响应包动态变化的。因此,只要网络上有ARP响应包发送到本机,即会更新ARP高速缓存中的IP-MAC条目。攻击者只要持续不断的发出伪造的ARP响应包就能更改目标主机ARP缓存中的IP-MAC条目,造成网络中断或中间人攻击。
通常坐在计算机前面的用户更加关心IP地址,而非MAC地址。比如我们如果需要访问某个共享目录时,在地址栏输入的一般都是IP地址,但对于以太网中的计算机来讲,在通讯时实际所依懒的并非是IP地址,而是MAC地址。以太网中的计算机在发送数据前,都会先检查自己的ARP缓存表,试图将用户所请求的IP地址翻译为相对应的MAC地址,但这张表并不完全,所以它采用了动态更新机制,通过主机向以太网发送广播并收到目标主机的回应(单播形式)来建立ARP缓存表,同时其还具有“老化”机制,一段时间之后缓存记录会被删除,使缓存表始终维持在一个较小的状态,这样做的好处很明显,小编也就不再此多说了。
ARP缓存表的更新机制很高效,但存在的风险也同样明显。因为当计算机收到任何ARP Reply数据包时都会更新自己ARP缓存表中的记录,而不管这个Reply数据包是否合法。换句话说,就算计算机没有发出过ARP Request数据包,但它对收到的ARP Reply数据包也是“照单全收”的,计算机无法较验收到的某条“对应关系记录”是不是真实的,但这条记录却会被计算机放在自己的ARP缓存表中,以备使用。
ARP Request / Reply数据包的格式如上图所示,Request包中 “以太网目的地址”为0xffffffffffff广播地址,“以太网源地址”为本机网卡的MAC地址,“帧类型”为0x0806表示ARP应答或请求,ARP 包类型1为ARP请求包,2为ARP应答包,“发送端以太网地址”为发送者的MAC地址,“发送端IP”为发送者的IP地址,“目的以太网地址”这里为0x000000000000,“目的IP”为查询MAC地址的IP。理解了ARP的工作原理后,只要有意图的填充上图中的某些字段,即可达到ARP攻击的效果,其中就抱括造成IP地址冲突。
IP地址冲突。计算机检测本机IP地址是否在网上被使用的方法是用本机IP地址作为目的IP地址,发送ARP Request包,如果收到应答,则说明本IP地址已经在网上被使用,弹出IP地址被使用对话框,释放出本机的IP地址。ARP攻击者利用这一原理,用任意的MAC地址(非被攻击者真实的MAC地址)填充“发送端以太网地址”字段,用被攻击者的IP地址填充“发送端IP”字段,用被攻击者的真实MAC地址填充“目的以太网地址”字段,用被攻击者的IP地址填充“目的IP”字段,ARP包类型为“2”。如下面的ARP Reply 数据包截图,当被攻击者收到这样的ARP应答后,就认为本机的IP地址在网络上已经被使用,弹出IP地址冲突对话框。
ARP Request数据包
ARP Reply 数据包
赞助商链接