要想了解ARP攻击的原理,首先就要了解什么是ARP协议。
一、什么是ARP协议
ARP(Address Resolution Protocol ) ,即地址解析协议,负责把目的主机的IP 地址解析成目的MAC地址。
当发送者 知道目的主机的IP地址之后, 就可以使用这个IP地址去解析对方的MAC地址。
ARP协议是有缺点的,第三方主机可以构造一个ARP欺骗报文,而源主机却无法分辨真假。如果发送者硬件地址字段填入攻击者的硬件地址,而发送者IP地址填入被假冒者的IP地址,那么就构造出了一个用于欺骗的ARP请求报文。那么被欺骗主机的ARP高速缓存,被假冒者的IP地址与其MAC地址的对应关系就会更改为欺骗者的,从而达到ARP欺骗的目的。特别的,如果攻击者冒充网关,将转发子网内到外网的所有通信量,以达到捕获其他主机的通信量,从而破坏数据传输的保密性。
二、ARP欺骗的原理
ARP欺骗的运作原理是由攻击者发送假的ARP数据包到网上,尤其是送到网关上。. 其目的是要让送至特定的IP地址的流量被错误送到攻击者所取代的地方。因此攻击者可将这些流量另行转送到真正的网关(被动式数据包嗅探,passive sniffing)或是篡改后再转送( 中间人攻击 ,man-in-the-middle attack)。攻击者亦可将ARP数据包导到不存在的 MAC地址 以达到阻断服务攻击的效果。
单向欺骗:是指欺骗网关
双向欺骗:是欺骗网关跟被攻击的两个机器
三、实验环境
系统环境:攻击机Kali、靶机Windows 7
实验工具:Arpspoof、Driftnet、Nmap、Ettercap
四、实验步骤
1、信息收集:先用ifconfig查询攻击机ip(kali),然后用nmap扫描内网存活ip(也可以用fping)
nmap 192.168.84.1-255
然后我们可以看到内网存活的ip(windows靶机)
route -n
2、使用到我们的Arpspoof工具 对我们的靶机ARP欺骗
arpspoof -i eth0(网卡) -t 192.168.84.141(目标IP) 192.168.84.2(网关) (arp欺骗语法)
也可以使用反向欺骗
arpspoof -i 网卡 -t 网关 目标IP (反向欺骗语法)
可以看到是已经开始攻击了 我们来看看靶机情况
此时我们没有开启流量转发 我们的靶机是无法上网的
3、靶机不能上网,主人发现被攻击了?这个ARP也太菜了吧?
我们设置IP流量转发 就不会出现断网现象(恢复则改为0)
echo 1 >/proc/sys/net/ipv4/ip_forward
这样就设置好流量转发了 再来攻击我们靶机看看能不能上网
成功了 靶机成功上网 且不知不觉已被攻击
4、内网截获图片
Driftnet是一个监听网络流量并从它观察到的TCP流中提取图像的程序(HTTPS的图片捕获不到)
driftnet -i eth0 (driftnet语法)
然后我们可以监听到靶机访问的网页的图像
5、HTTP账户密码获取
Ettercap基于ARP地址欺骗方式的网络嗅探工具,主要适用于交换局域网网络。
-Tq 启动文本模式 q 安静模式 -i 网卡
ettercap -Tq -i eth0 (ettercap语法)
启动后我们来到靶机输入账号密码
如果我们抓到的是中文呢?我们可以看到它是URL编码 我们解码即可
6、目前我也不知道如何抓取HTTPS协议的包
五、防范ARP欺骗
1.双向绑定: 一般来说,在小规模网络中,比较推荐使用双向绑定,也就是在路由器和终端上都进行IP-MAC绑定的措施,它可以对ARP欺骗的两边,伪造网关 和截获数据,都具有约束的作用。这是从ARP欺骗原理上进行的防范措施,也是最普遍应用的办法。它对付最普通的ARP欺骗是有效的。
2.ARP防火墙: 在一些杀毒软件中加入了ARP防火墙的功能,它是通过在终端电脑上对网关进行绑定,保证不受网络中假网关的影响,从而保护自身数据不被窃取的措施。ARP防火墙使用范围很广,但也会有问题,如,它不能保证绑定的网关一定是正确的。如果一个网络中已经发生了ARP欺骗,有人在伪造网关,那么,ARP防火墙上来就会绑定这个错误的网关,这是具有极大风险的。
3.VLAN和交换机端口绑定: 通过划分VLAN和交换机端口绑定来防范ARP,也是常用的防范方法。做法是细致地划分VLAN,减小广播域的范围,使ARP在小范围内起作 用,而不至于发生大面积影响。同时,一些网管交换机具有MAC地址学习的功能,学习完成后,再关闭这个功能,就可以把对应的MAC和端口进行绑定,避免了病毒利用ARP攻击篡改自身地址。也就是说,把ARP攻击中被截获数据的风险解除了。
本文部分内容参考CSDN的优秀博主 请勿利用文章内的相关技术从事非法测试 作者是网络安全小白 不喜勿喷~