1.科普
ARP攻击和欺骗是网络安全中比较经典的流量截取手段,特别是适合内网攻击。整个攻击原理简单举例来说就是作为攻击方A,利用网络层的ARP协议不安全性(估计ARP协议设计时候认为网络上IP和MAC都是很诚实地对应),伪造应答包(包含网关IP和攻击方的MAC地址),发送给受害方B,B通过接受到攻击方发送的ARP应答包,在自己的ARP缓存表中写入了虽然是网关的IP(前提是受害方B之前没有绑定过网关IP和其对应正确的MAC,不然ARP欺骗就没有用了),但是对应的MAC却是属于攻击方A的MAC,然后受害方B在浏览网络的时候,所有流量必须经过攻击方A,通过这种手段,攻击方A可以捕获受害方的上网流量。
2.说明
攻击方A:LinuxMint IP:192.168.3.100
受害方B:某安卓手机 IP:192.168.3.101 –理论上能基于ARP协议上网的设备都可以
网关 :192.168.3.1
工具:
①nmap.–主机发现
②dsniff.–ARP欺骗
③driftnet.–图片截取
P.s.这三个工具在软件源里面都有,sudo apt-get install packagename一下就好了,当然如果是用Kali的就不用麻烦下载安装了,直接用就好了
本次实验目的:
㈠对受害方B进行断网攻击
㈡进行受害方B所浏览图片的截取.
3.ARP欺骗
Ⅰ.首先查看自己的网络情况
(这里是linux口令,windows是ipconfig)
ifconfig
找出本机使用的网卡 IP 子网掩码(subnet mask)
这里攻击方A的网卡:wlan0 IP:192.168.3.100 子网掩码:255.255.255.0
通过上面我们就可以知道我们属于的局域网的CIDR:192.168.3.100/24
Ⅱ.nmap主机发现
nmap -sn 192.168.3.100/24
当然因为现在是实验,所以你会发现主机发现结果是有 “3 hosts up”,分别是网关,攻击方A和受害方B。非实验环境下还需要抓包分析目标机行为得出其对应IP地址,这里就不赘述。
这一步我们得出了局域网中的主机存活情况
Ⅲ.ARP欺骗
先受害方B到网关
arpspoof -i wlan0 -t 192.168.3.101 192.168.3.1
在网关到受害方B
arpspoof -i wlan0 -t 192.168.3.1 192.168.3.101
因为处于安全性考虑linux默认是关闭包转发的,所以这时候完成欺骗后,因为没有攻击机的包转发,受害方B是无法上网的,这就是所谓的ARP断网攻击,显然这只是让受害方B无法上网,我们还没有达成目标,更重要的是我们想知道受害方B所浏览的图片情况。这里我们需要打开linux的包转发功能。
4.打开Linux包转发
a.登陆root权限
(当然你要不嫌麻烦这步可以省略,只不过你后面要不断用sudo 还要打密码)
sudo su
b.临时生效包转发
cat命令查看现在ip_forward值
cat /proc/sys/net/ipv4/ip_forward
0
输出0,表示包转发关闭,一般linux都是默认关闭的。
echo "1">> /proc/sys/net/ipv4/ip_forward
cat /proc/sys/net/ipv4/ip_forward
1
输出1,表示包转发开启.
以上提到的方法只是暂时开启,重启或者其他一些操作会让值变回0,要永久生效的办法请自行百度。
到这里真正完成ARP欺骗。
5.图片抓取
driftnet -i wlan0 -a -d /home/smona/桌面/pic
其中 -a 是后台,意思是不打印到显示框;而-d 是捕获图片地址路径。
受害方B所浏览的所有图片内容会一一保存到你所指定的目录内。
6.防范
ARP欺骗的防范并没有特别有效的办法,一般来说就是一下几种:
①arp -s 绑定网关IP和其正确的MAC,保持静态;
②arp -a 查看本机arp表发现ARP欺骗行为;
③通过ARP on,ARP wath,XARP 等工具检测ARP欺骗行为;
安全意识:
个人方面:用户在公共场合尽量不进行重要事务的处理,如若有必要尽量使用加密的方法,比如最简单的能用https的网址用https,警惕可疑的wifi等等;
网关等服务方方面:网关等提供服务方的配合
7.免责声明
本博文提供方法仅仅用来学习ARP协议以及对ARP欺骗的深入理解
不提倡用于侵犯隐私等不正当行为
最后感谢网路上的各种ARP知识和教学的帖子分享,让我受益匪浅,同样我也欢迎大家在评论指出错误和分享经验~