声明:本文章仅用于学术讨论,禁止用于非法途径。
前言
最近看到一个ARP欺骗攻击的实验,听说同一局域网下能让室友断网啥的,也是来了兴趣做了下这个实验。
结果是失败的,原因很简单,校园网的交换机通常是企业级交换机使用了DAI保护,阻止异常的ARP包广播。
本文仅是记录复现过程中遇到的坑,帮助更多人解决问题。
原理
前提是在同一局域网(校园网)
不同IP间的通信通常用MAC地址定位具体的物理设备,而ARP协议简单说就是实现IP到MAC地址的映射关系。
ARP协议:同一局域网下的两台主机A、B,当A要和B通信,A会先从ARP缓存中通过IP找出B的MAC地址,如果找到了就直接通信,没找到就广播ARP请求,B收到ARP请求后会发送自己MAC地址给A(ARP请求中带有B的IP其他设备发现IP不对就不会返回MAC地址),A收到后会存入ARP缓存中方便下次查询。
ARP协议是无状态的,也就是你可以自由发送ARP请求包,并且计算机并不具有验证IP到MAC地址是否正确的机制,也就是说当主机收到ARP应带后会直接将其中的IP-MAC映射关系更新到ARP缓存中。
那么攻击思路很简单,群众(局域网)里难免有坏人,要是将目标网关对应的MAC地址变成我的MAC地址,那么对方的流量就会发给我,从而截获目标流量,把截获的流量转发给网关时可以达到监控目标的目的,不转发则会导致目标断网。
以下是实验的两种场景
有线宽带连接
当你使用网线连接时,为了让kali拥有校园网的IP,使用桥接模式:先选中kali在VMware的菜单找到虚拟机->设置->网络适配器->桥接模式
将桥接模式的设备选为以太网的网卡:(可以在设置->网络和Internet->高级网络设置查看以太网网卡的名称),在VMware的菜单找到编辑->虚拟网络编辑器->更改设置->VMnet0选择桥接模式并将设备选为以太网网卡的名称。
确定后打开kali,使用ifconfig查看kali的IP,主机的cmd中使用ipconfig查看自己的IP查看是否为同一网段,实验中两者IP如下
主机:172.19.120.60
kali:172.19.120.64
先在cmd中使用arp -a查看网关对应的MAC地址,结尾是de-d3
使用以下命令可以将目标配置的网关MAC地址变成自己的MAC地址(同一网段内两者的网关IP通常是一样的)
arpspoof -i eth0 -t 主机IP -r 网关IP
arpspoof -i eth0 -t 172.19.120.60 -r 172.19.120.254
再在cmd中使用arp -a命令查看网关对应的MAC地址,已经变成kali的MAC地址了(40-9c),此时主机访问www.baidu.com显示断网,攻击成功
此时将目标主机IP换成室友的IP(前提是在同一网段下,不同的话设置kali的IP和室友保持同一网段,网关设置成室友一样的,直到kali能ping通室友IP即可)
但是当你将命令中主机IP换成室友IP运行后,很可能是不成功(你可以通过发起攻击前后arp -a命令查看网关的MAC地址是否变化判断成功与否),原因开头说了校园网的交换机使用了DAI保护,能拦截不可信IP源发出ARP包。
为什么受害者换成主机IP能成功?因为虚拟机使用虚拟交换机和主机通信,并不会通过外界交换机,也就不会拦截ARP请求包。
无线WIFI连接
很多人使用WiFi做测试的时候发现kali被分配到的是IPV6的地址而没有IPV4的地址,很多教程都没解决,最后发现WIFI使用的是P2P协议,也就是同一时间只能维护一个连接,当使用桥接模式时,无线网卡不能同时处理两个MAC地址维护两个连接。
最后只能出巨资(嘻嘻,也就20块)买了个无线网卡,此时虚拟机可以不用选桥接模式,我这里设置的时NAT模式,此时在你的虚拟机->可移动设备->选择你的无线网卡(通常使用802.11协议)
在kali中点击wifi在可用网络中连接校园网
连完校园网发现主机的IP和kali的IP不在同一网段
主机IP:172.22.36.7/23 网关:172.22.37.254
kali的IP:172.22.32.70/23
需要将kali的IP和网关设置成和主机在同一网段(自行AI),直到Ping通主机
使用以下命令可以将目标配置的网关MAC地址变成自己的MAC地址(同一网段内两者的网关IP通常是一样的)
arpspoof -i eth0 -t 主机IP -r 网关IP
这里我的命令是
arpspoof -i wlan0 -t 172.22.36.7 -r 172.22.37.254
但是没有反应,使用更加隐蔽的方式
ettercap -T -i wlan0 -M arp:remote /主机IP// /网关IP//
ettercap -T -i wlan0 -M arp:remote /172.22.36.7// /172.22.37.254//
还是不行,这里主机和虚拟机使用两个网卡实验,说明ARP请求必定通过学校的交换机,它会拦截不可信IP源发出ARP包。
欢迎大家在评论区讨论,如有不足欢迎指出。