用Cain&Abel进行ARP欺骗和用Wireshark侦测ARP欺骗

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lixiangminghate/article/details/83991431

1.开始前先简单阐述ARP欺骗的原理:

1).ARP双向欺骗的原理:

假设主机 A 192.168.1.2,B 192.168.1.3,C 192.168.1.4; 网关 G 192.168.1.1; 在同一局域网,主机A和B通过网关G相互通信,就好比A和B两个人写信,由邮递员G送信,C永远都不会知道A和B之间说了些什么话。但是并不是想象中的那么安全,在ARP缓存表机制存在一个缺陷,就是当请求主机收到ARP应答包后,不会去验证自己是否向对方主机发送过ARP请求包,就直接把这个返回包中的IP地址与MAC地址的对应关系保存进ARP缓存表中,如果原有相同IP对应关系,原有的则会被替换。

这样C就有了偷听A和B的谈话的可能,继续思考上面的例子:

C假扮邮递员,首先要告诉A说:“我就是邮递员” (C主机向A发送构造好的返回包,源IP为G 192.168.1.1,源MAC为C自己的MAC地址),愚蠢的A很轻易的相信了,直接把“C是邮递员”这个信息记在了脑子里;

C再假扮A,告诉邮递员:“我就是A” (C向网关G发送构造好的返回包,源IP为A 192.168.1.2,源MAC地址为自己的MAC地址),智商捉急的邮递员想都没想就相信了,以后就把B的来信送给了C,C当然就可以知道A和B之间聊了些什么

2).ARP单向欺骗的原理:

ARP单向欺骗就更好理解了,C只向A发送一个返回包,告诉A:G 192.168.1.1 的MAC地址为 5c-63-bf-79-1d-fa(一个错误的mac地址),A把这个信息记录在了缓存表中,而G的缓存表不变,也就是说,A把数据包给了C,而G的包还是给A,这样就是ARP单向欺骗了。

2.演示ARP欺骗。

环境:

路由器:NETGEAR30 IP:10.0.0.1/MAC:A0:40:A0:83:44:2F

实施ARP欺骗的主机(下面简称中间人):win10(关闭防火墙) IP:10.0.0.2/MAC:E4:70:B8:C1:8A:63

被ARP欺骗的主机(下面简称受害机):win10(关闭防火墙) IP:10.0.0.3/MAC:60:57:18:2F:C4:3E

两台主机通过Wifi同路由器连接。出于演示目的,受害机不断ping路由器,模拟内网通信。注意,整个过程是真实环境,并不是在虚拟机中完成。

2.1).不开启ARP欺骗:

在不开启ARP欺骗的情况下,中间人肯定收不到受害机发往路由器的数据包(广播包除外)。我们来看下此时路由器和受害机之间的ICMP通信情况:

从Packet List中任意选取一组请求和响应包:

Packet detail面板显示:ICMP请求包的"Ethernet II"桢中源地址MAC和目标地址MAC正是路由器和受害机的MAC地址,符合预期;

ICMP响应包也是同理。

顺带检查一下受害机的arp表,目前还算正常,显示路由器10.0.0.1的MAC是A0:40:A0:83:44:2F:

2.2).开启ARP欺骗

我们借助Cain&Abel在中间人10.0.0.2上完成ARP欺骗。开启Cain,切换到Sniffer标签-选择混迹在局域网中的网卡后,点击Start Sniffer(工具栏上网卡形状的图标)-点击Add to List(工具栏上+图标),之后Cain会自动扫描并在列表框中显示局域网中的主机。

扫描完毕,点击Sniffer标签页右下角的APR标签-点击Add to List-选择要局域网中要被欺骗的主机及该主机对应的路由器:

配置完毕后,点击工具栏Start APR按钮(黄黑相间的辐射标志),此时局域网ARP欺骗已经开始。中间人可以接受到受害者的ICMP包以及来自路由器的回应:

再次查看受害机的ARP表,发现它到路由器的表项被篡改了:

虽然路由器和受害机受到ARP欺骗的影响,傻乎乎的把数据发给中间人10.0.0.2,倒也不是发现不了。如果在受害机上打开Wireshark,还是能看到中间人因为发起ARP欺骗而留下了大量痕迹:

从中可以看到发往/来自10.0.0.1的数据包的MAC地址并不是路由器的MAC,这不仅反映了本机已经受到ARP欺骗的事实,还暴露了中间人的MAC地址,这倒方便网管揪出局域网里的害群之马!

参考:

1.中间人攻击——ARP欺骗的原理、实战及防御

猜你喜欢

转载自blog.csdn.net/lixiangminghate/article/details/83991431