ARP协议原理
地址解析协议,即(Address Resolution Protocol),是根据 IP 地址获取MAC地址的一个TCP/IP协议。
(1)每台主机都会在自己的ARP缓冲区建立一个ARP列表,以表示IP地址和MAC地址的对应关系。当源主机需要将一个数据包发送到目的主机时,会先检查自己的ARP列表中是否存在该IP地址对应的MAC地址,如果有,就直接将数据包发送到这个MAC地址;如果没有,就向本地网段发起一个ARP请求的广播包,查询此目的主机对应的MAC地址。此ARP请求数据包里包括源主机的IP地址,硬件地址,以及目的主机的IP地址。
(2)网络中所有主机收到这个ARP请求之后,会检查数据包中的目的IP是否和自己的IP地址一致,如果不一致就忽略此数据包;如果相同,该主机首先将发送端的MAC地址和IP地址添加到自己的ARP列表中,如果ARP列表中已经存在该IP的信息,则将其覆盖,然后将自己的 MAC 地址写入 ARP 响应数据包中发送给源主机,告诉源主机自己是它想要找的 MAC 地址。
(3)源主机收到这个ARP响应数据包之后,将得到的目的主机的IP地址和MAC地址添加到自己的ARP列表中,并利用此信息开始数据的传输。如果源主机一直没有收到ARP响应数据包,表示ARP查询失败。
ARP属哪一层?
基于功能来考虑,它的功能最终是获取到MAC信息,服务于链路层,所以是链路层协议;
ARP的作用
① IP数据包不能直接在实际网络中传输。
② IP地址在物理网络中对目标机器的寻址,必须转换为物理地址,即MAC地址。
③ ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。
交换环境的网络使用交换机(Switch)连接各个网络节点 。
- 交换机通过自己的ARP缓存列表来决定把数据报发送到某个端口, 这样就不是把一个数据报转发到所有端口了, 这种做法一方面大大提高了网络的性能, 另一方面也提高了安全性。
- 在交换环境下, 即使网卡设置为混杂模式, 也只能监听本机的数据包, 因为交换机不会把其他节点的数据报转发给嗅探主机。
ARP 欺骗(ARP Spoofing)
ARP欺骗攻击是利用ARP协议本身的缺陷进行的一种非法攻击,目的是为了在全交换环境下实现数据监听。
通常这种攻击方式可能被病毒、木马或者有特殊目的攻击者使用。
原理:主机在实现ARP缓存表的机制中存在一个不完善的地方,当主机收到一个ARP的应答包后,它并不会去验证自己是否发送过这个ARP请求,而是直接将应答包里的MAC地址与IP对应的关系替换掉原有的ARP缓存表里的相应信息。
ARP的缺陷
- ARP建立在信任局域网内所有结点的基础上。
- 优点是高效,但不安全。
- 无状态的协议,不检查是否发过请求或是否是合法的应答,不只在发送请求后才接收应答。
- 只要收到目标MAC是自己的ARP请求包或ARP应答包,就接受并缓存。
- 这样,便为ARP欺骗提供了可能,恶意节点可以发布虚假的ARP报文从而影响网内结点的通信,甚至可以做“中间人”。
ARP欺骗例子
典型ARP欺骗类型之一
欺骗主机作为“中间人”,被欺骗主机的数据都经它中转,以窃取被欺骗主机间的通讯数据。
假设一网络环境中有三台主机分别为A、B、C
A- IP:192.168.10.1 MAC:AA-AA-AA-AA-AA-AA
B- IP:192.168.10.2 MAC:BB-BB-BB-BB-BB-BB
C- IP:192.168.10.3 MAC:CC-CC-CC-CC-CC-CC
B给A应答IP是192.168.10.3 MAC是BB-BB-BB-BB-BB-BB
B给C应答IP是192.168.10.1 MAC是AA-AA-AA-AA-AA-AA
B对A伪装成C,对C伪装成A,A和C都被欺骗了!
典型ARP欺骗类型之二
-截获网关数据,欺骗路由器的ARP表。
-它通知路由器一系列错误的内网MAC地址,并按照一定的频率不断进行,使真实的地址信息无法通过更新保存在路由器中,结果路由器的所有数据只能发送给错误的MAC地址,造成正常的计算机无法收到信息。
典型ARP欺骗类型之三
-伪造网关,欺骗内网计算机,造成断网。
-建立假网关,让被它欺骗的计算机向该假网关发数据,而不是发给路由器。这样无法通过正常的路由器途径上网,在计算机看来,就是上不了网,即网络掉线或断网了。
ARP攻击
ARP攻击主要是指ARP欺骗,也包括ARP扫描(或称请求风暴),即在网络中产生大量ARP请求广播包,严重占用网络带宽资源,使网络阻塞。ARP扫描一般为ARP攻击的前奏。
ARP攻击主要是存在于局域网中。
ARP攻击一般通过木马感染计算机,ARP欺骗木马只需成功感染一台电脑,就可能导致整个局域网都无法上网,严重的甚至可能带来整个网络的瘫痪。受到ARP攻击的计算机一般会出现的现象:
- 不断弹出“本机的0-255段硬件地址与网络中的0-255段地址冲突”的对话框。
- 计算机不能正常上网,出现网络中断的症状。
利用driftnet截获图片数据流
1.安装driftnet
4.将捕获图片保存到指定目录
6.将攻击机IP和靶机IP添加到target1和target2中
当靶机在浏览图片的时候,攻击机就嗅探到了靶机浏览的图片:
靶机:
攻击机: