在介绍ARP断网攻击之前,我们先来了解一些基本术语。
ARP
英文全称为Address Resolution Protocol,即地址解析协议,是根据IP地址获取mac地址的一个TCP/IP协议。在一个局域网环境下,我们请求互联网都是通过网关帮我们进行转发的,而接收互联网消息也是通过网关转发给我们。
ARP欺骗
网络协议共分七层:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
在网络协议中,IP地址通常的MAC地址相对应,一个IP地址对应一个MAC地址。我们设置的默认网关地址术语第三层即网络层,它是通过IP地址寻址的,但是ARP属于第二层即数据链路层,在这一层没有IP协议,因此它是通过MAC地址进行寻址的,前面我们提到ARP通过IP地址获取MAC地址,如果我们改变了网关IP地址对应的MAC地址,就能达到ARP欺骗的目的。因为它通过IP地址获得的不是原来网关的MAC地址,而是我们攻击机的MAC地址。也就是说ARP会误认为我们攻击机才是真正的网关,这是就会将请求发送到我们攻击机。如果我们不做任何响应,目标主机就呈现出了断网的假象(注意:它不是真正意义上的断网,而是我们不返回任何数据给目标主机造成的假象)。我们还可以拦截到请求,修改数据并发送到互联网,通过将互联网响应的数据修改后返回给目标主机。
网关会定时向局域网广播自身的IP地址和MAC地址,因此在进行ARP欺骗时,也要定时进行,以达到持续欺骗的目的。
说了这么多,接下来开始真正的ARP断网攻击。
所需工具是Kali linux,它是一款专门为网络安全人员准备的基于Linux的操作系统,该系统涵盖了绝大多数渗透测试工具,其界面如下图所示。
该系统下载地址为:https://www.kali.org/downloads/
建议读者下载VMWare的虚拟机版本。
进行ARP攻击非常简单,Kali Linux自带攻击工具,输入下述命令即可:
arpspoof -i eth0 -t 10.205.29.73 10.205.29.126
如图所示:
这时,目标主机将无法访问互联网。按住Ctrl-C就能停止攻击。
上述命令中,eth0为网络名,读者可通过ifconfig查看。第一个IP地址为目标主机的IP地址,第二个IP地址为网关的IP地址,同样可以通过ifconfig查看。
俗话说,上有政策,下有对策。有攻击就有防御,本小节我们就来探讨如何防御ARP断网攻击。
我们知道,ARP通过MAC地址寻址,修改MAC地址达到欺骗目的。那么,我们将ARP设置为静态地址,不就能保证其寻址始终是正确的MAC地址吗?
添加静态ARP也很简单,首先查看网络连接信息,如图所示。
可以看到当前主机网络名为以太网3。
然后输入命令netsh -c i i show in,如图所示。
可以看到以太网3 对应的Idx为33。
再次输入命令arp -a查看网关对应的MAC地址,如图所示。
笔者网关为10.205.29.126,因此对应的MAC地址为:44-82-e5-e0-50-0b。
最后输入命令:netsh -c i i add neighbors 33 10.205.29.126 44-82-e5-e0-50-0b,即可添加静态ARP。
这时用Kali Linux进行ARP断网攻击将无法生效。