一、arp欺骗的原理
ARP协议:
在局域网中,网络设备通信需要用MAC地址来完成。ARP协议就是将IP地址转换为对应的MAC地址的,即根据报文中的IP找到局域网中对应的MAC地址。
例如: 若同个局域网中的A(192.168.1.1)要与B(192.168.1.2)通信,A会先在局域网中广播一个报文。报文中包括A的IP地址,A的MAC地址,B的IP地址。局域网的主机B收到广播后,看到自己的IP,会将自己的MAC地址与IP地址发送给A(对于B来说,A的IP与MAC均已知)。这样A和B就得到对方的MAC地址,并且A会将B的IP与MAC地址存储在自己的ARP缓冲表里面(理解为IP与MAC的绑定表),可以进行通信。
如何欺骗:
现有统一局域网中三台主机 A、B、C,IP地址分别为 192.168.1.1,192.168.1.2,192.168.1.3。网关的IP地址,192.168.1.0。AB要通过网关进行通信,C如何窃听呢?
(关于网关可以看这个回答https://www.zhihu.com/question/67671731/answer/255400790)
漏洞出现在ARP缓存表中。 当主机A收到IP与MAC绑定的报文后,它会将这个信息写入自己的缓冲表。 比如,原本网关地址是 192.168.1.0,C向A发送(IP为192.168.1.0,MAC地址为自己的地址)报文,A就会将原本属于网关的MAC地址更新为C的MAC地址。这样当A通过网关向B发消息时,会先把报文发送给C。我们就可以监听信息了。
二、实现
环境搭建
攻击机:kali (ip:192.168.126.136)
靶机:win7(ip:192.168.126.138)
网关ip:192.168.126.2
虚拟机的网络配置 桥接 或者 NAT模式都可以,只要保证他们在同一局域网就行。我第一次用桥接成功了,第二次桥接不成功,用NAT模式成功了,(可能是校园网的问题?不确定。还请指教)
安装arpspoof
sudo apt-get install dsniff
基本使用
首先开启端口转发。 要让 A发送给C的数据能正常 传输。
cat /proc/sys/net/ipv4/ip_forward
若回显为0,则未开启,需要手动开启。
echo 1 >/proc/sys/net/ipv4/ip_forward
然后利用arpspoof广播,-i 指定网卡作为接口。-t 指定目标 。 想target发送ARP报文,让他更新ip与MAC的绑定关系
arpspoof -i eth0 -t 192.168.126.138 192.168.126.2 #(被攻击者)(网关)
同时,利用ettercap 监听eth0网卡。获取发往eth0的数据
ettercap -Tq -i eth0
效果如图
被攻击者视角
此时,在WIN7上模拟受害者输入登录账户跟密码的场景
随便找的一个登录入口。输入任意账户密码,点击登录,会显示密码错误。
回到kali
可以看到截获了账号密码。有时还会截获经前端加密的密码。(但可以通过前端源码找到加密方式)
但是仍然有问题
并不是所有的网站都能截获账号密码,我们学校的教务处就不行,不知道这是为什么。还请指教。
交流QQ 2368079178