ARP攻击之Kali Linux局域网断网攻击

作者:荒原之梦

特别声明:

我们学习研究网络安全技术的目的应是为了维护网络世界的安全,保护自己和他人的私有信息不被非法窃取和传播。请您遵守您所在地的法律,请勿利用本文所介绍的相关技术做背离道德或者违反法律的事情。

 

Special statement:

The purpose of our study of cyber security technology should be to maintain the security of the cyber world and protect the private information of ourselves and others from being illegally stolen and disseminated. Please comply with your local laws. Do not take advantage of the relevant technology introduced in this article to do anything that deviates from morality or against the law.

 

前言:

ARP攻击是基于ARP协议的工作模式进行的,关于ARP协议和ARP攻击的基础知识请查看我的这篇博文ARP协议与ARP攻击入门

ARP攻击能够实现的技术前提有两个,一是作为攻击者的计算机需要和被攻击者的计算机在一个局域网中,二是作为攻击者的计算机需要知道被攻击者计算机的局域网IP。本文将模拟真实的攻击过程,在不与被攻击的计算机发生物理接触的情况下实现对其的局域网断网攻击。

 

网络拓扑图

图 1

 

注:在这里,作为攻击者的计算机使用的是安装在VMware  Workstation中的Kali Linux,我们需要在VMware的设置中将Kali的联网方式改为“桥接模式”,并且不要勾选“复制物理网络连接状态”。

获取目标主机IP

在这里,我们使用Ettercap对内网进行扫描以获取目标主机IP和网关的信息。输入命令:

 

打开Ettercap的GUI界面:

图 2

 

依次点击“Sniff(嗅探) -> Unified sniffing(统一嗅探)”,之后弹出如下界面让选择进行扫描的网络接口(Network interface):

图 3

 

这里我们使用默认的eth0端口。点击“OK”。

 

之后依次点击“Hosts(主机) -> Scan for hosts(扫描主机)”。

这时会出现一个进度条,等待进度条结束,依次点击“Hosts -> Hosts list(主机列表)”即可显示本机所在局域网中除本机之外,当前已连接至网络的设备的IP地址和MAC地址:

图 4

 

注:Ettercap扫描结果的第一项一般是本局域网中的网关,如图中的192.168.50.1就是实验时局域网中的默认网关。

 

这样我们就获得了目标主机的IP和本局域网的网关。

对局域网内的目标主机实施断网攻击

我们使用Kali Linux中的Arpspoof进行ARP攻击。

在实施断网攻击前,我们先测试一下目标主机192.168.50.130是不是能上网,输入命令:

 

发现可以Ping通,说明目标主机在攻击开始之前是可以上网的。

在我们的攻击机上,即Kali中,输入命令:

 

回车就开始对目标主机进行断网攻击了,此时我们在目标主机上执行命令:

 

就会返回一个错误提示:“Ping请求找不到主机www.baidu.com”。

 

通过上述命令产生的Arpspoof的攻击进程不会自动停止,除非当前攻击链路被中断,如攻击机关机或者断开与当前局域网的连接,或目标机关机或者断开与当前局域网的连接或者更改了其在当前局域网内的IP地址。我们可以在Arpspoof进程所在终端上使用“Ctrl+Z”手动关闭Arpspoof的攻击进程。

关闭Arpspoof的攻击进程后,之前被攻击的目标主机一般会在几秒钟的时间内自动恢复正常的网络连接。

附:

Ettercap0.8.2的帮助信息(命令ettercap -help):

 

ARP协议与ARP攻击入门

作者:荒原之梦

一 ARP协议

ARP协议是一个年代相当“久远”的网络协议。ARP协议制定于1982年11月,英文全称:Address Resolution Protocol,即“地址解析协议”。

我们知道,虽然终端设备想要上网必须具有公有IP地址,但是在Internet的TCP/IP协议中,IP地址的作用是标识一台主机或路由器与一条链路的接口,也就是说IP地址指明了数据由一个网络传输到另一个网络的路径,但是我们知道,为了节约IP地址,通常情况下,在一个内部网络中,主机常常使用RFC规定的三种私有IP地址作为局域网中主机的IP地址,而且主机的IP地址是由该网络的路由器动态分配的,如果数据的传输仅仅依赖于IP地址,那么当数据到达一个内部网络中时就可能因为目标主机的IP地址发生改变而将数据传输到了错误的目标主机。但是不同设备的物理地址(MAC)是全网唯一的,而且一般也不会被改变(MAC地址是写入网卡的,固定的),因此使用MAC地址作为信息的标识,定位目标网络设备就可以保证信息能够正确抵达目标主机。而通过目标设备的IP地址查找目标设备的MAC地址就是ARP协议的基本功能。

ARP协议的工作过程

由于内部网络中主机的IP地址往往是动态分配的,因此,在主机中是有ARP缓存的,记录着本网络中IP地址与MAC地址的对应关系。那么,这个ARP缓存是怎么生成的呢?首先,当网络中的主机A需要向主机B发送信息时,会将包含目标IP地址的ARP请求广播到该网络中的所有主机上,网络中的其他主机在收到主机A的ARP请求后可以自主的发送ARP应答报文,应答中包含自己的IP和自己的MAC地址,主机B也会发送这样的应答报文给主机A。这样主机A就知道了主机B的MAC地址与IP地址了。

ARP协议的工作是建立在网络中各个主机之间相互信任的基础上的,一台主机在收到其他主机的ARP应答报文时并不会采取措施校验该报文的真实性,而是直接就记录到了自己的ARP缓存中以备下次使用。

ARP攻击

ARP攻击的第一步就是ARP欺骗。由上述“ARP协议的工作过程”我们知道,ARP协议基本没有对网络的安全性做任何思考,当时人们考虑的重点是如何保证网络通信能够正确和快速的完成——ARP协议工作的前提是默认了其所在的网络是一个善良的网络,每台主机在向网络中发送应答信号时都是使用的真实身份。不过后来,人们发现ARP应答中的IP地址和MAC地址中的信息是可以伪造的,并不一定是自己的真实IP地址和MAC地址,由此,ARP欺骗就产生了。

ARP欺骗

ARP的应答报文是可以伪造的。假设一个网络中有3台主机,分别为A、B和C。当主机A向网络中发送了ARP请求时,用于攻击的主机C可以假装是B,然后向主机A发送一个伪造的ARP应答报文,由于A并不会采取措施验证该报文真伪,而是直接存入自己的ARP缓存并在需要时使用(ARP缓存分两种,一种是静态ARP缓存,该类缓存只要主机不关机就一直存在。另一类是动态ARP缓存,该类缓存是有时效限制的,一般ARP动态缓存的最长生命周期是10分钟,如果一个动态缓存项目在2分钟内没有被使用,则删除,如果在两分钟内被使用了,则增加两分钟的生命周期,直到达到10分钟的最长生命周期后进行更新),由此,C就成功的欺骗了A。那么来自主机B的正确的应答报文去哪了?如果A收到了来自B的正确的应答报文,更新了自己的ARP缓存,那么C的ARP欺骗不就失败了吗?确实会发生这种情况,但是如果C不断的向网络中的各台主机大量发送伪造的ARP应答报文,直到同时欺骗了A和B,C就成功的对主机A和B进行了ARP欺骗。接下来C就可以监听A和B之间的流量,伪造A和B的通信内容或者阻止A和B的通信。

为什么ARP攻击只能发生在局域网

当我们在说“ARP攻击”时,我们还常常和另外一个词连系在一起:“局域网”。为什么ARP攻击只能发生在局域网呢?或者说为什么ARP协议只能在局域网内发挥作用?这和互联网通信的原理以及ARP协议的功能有关。简单的说,我们可以这样理解:

我们知道,IP地址位于OSI模型的第三层(网络层),MAC地址位于OSI模型的第二层(数据链路层)。而路由器工作在三层或者三层以上。由此看来,用于连接IP地址与MAC地址的ARP协议是不能跨越第三层的(ARP工作在网络层),因此ARP广播包也不可能通过路由器到达其他网络。

图 1

上面的这个解释很好理解,但是并不是很严密的解释,也没有触及到问题的核心。如果要完全解释“为什么ARP攻击只能发生在局域网内部?”这个问题,我们就必须更深入的理解TCP/IP协议和路由器的工作原理。

在TCP/IP协议中,数据的传输有三种方式:单播、组播和广播。单播就是一对一的通信,组播(也称多播)是一对多的通信(如视频直播)。单播和组播都是可以跨越物理网络进行通信的,也就是进行通信的主机之间可以不在一个子网内部。但是,广播就有一些特别了,由于广播域的存在(一般一个局域网就是一个广播域),所以路由器在收到广播数据时是会拒绝向其它网络转发的,路由器实际上起到了分离广播域,隔离广播数据的作用。

ARP攻击之所以能够产生,就是因为伪造了对ARP广播的应答,综合上述分析可知,如果用于攻击的主机并不在目标网络中,就接收不到目标网络中ARP请求的广播,其伪造的ARP应答也无法到达目标网络。因此,ARP攻击只能发生在局域网(子网)内部。正因如此,我们只能对目标主机IP地址网络号部分以及子网掩码与我们的攻击机器IP地址网络号部分和子网掩码相同的主机发动ARP攻击。