arp全称为“地址解析协议”,是根据IP获取对应mac地址的一种协议。主机上也是根据arp缓存表进行内网主机的信息交互的,arp缓存表存放着ip对应mac地址的关系。如果一台主机需要上网,就需要先找到自己的网关ip。由于在以太网中都是用mac地址进行主机的交互的,所以要在arp缓存表中根据ip地址查询对应的mac地址。。找到mac地址后就可以将自己的请求发给网关。网关再代之进行转发。这就是一个主机再局域网内对外通信进行的大致步骤。
那么主机是如何知道别人的mac地址是多少的呢?当主机不知道对应的ip的mac地址时,就会向外发送广播包,询问ip地址对应的mac地址。这时候一般知道对应mac地址的主机就会回复,而且这个回复一般也是广播包,回复中就告诉所有局域网内的主机该ip对应的mac地址是多少。由于是广播包所以全网都会收到,全网的主机都会进行arp缓存表的更新,这样子就能提高效率。
不过如果交换机划分了vlan。vlan可以理解为一个独立的区域,互不干扰。如果攻击机和受害机在不同的vlan下是无法使用arp协议的。如果想深入了解的同学可以百度一下 = =
由于主机接受arp的回复包是不会判断真实性的,虽然arp缓存表有过期时间,但是也是有缓存时间的,所以给了我们可乘之机。我们可以直接向全网广播arp包,并且伪造arp包。可以向外宣称我的电脑就是网关。这样子其他的主机就会信以为真,将arp缓存表中的网关ip对应的mac地址指向我们攻击端的电脑,到时发送网络请求时就会全部发向我们的攻击机。这时别人的请求落到了我们的手上,我们就可以直接中断网络的传输,不帮其转发;或者修改别人的请求包等等。以下演示的是直接中断网络传输的过程。