最近读了一篇有关arp欺骗和中间人攻击的文章,于是乎就想着自己实现一下,顺便验证下微信在回话劫持后的安全性。

1.本机环境

Macbook Air:OS X 10.11 El Captain

2.推荐工具

Nmap(网络探测工具和安全/端口扫描器)

$ brew install nmap

Ettercap(arp欺骗和dns欺骗工具)

$ brew install ettercap –with-gtk+

Driftnet(网络包图片解析器)

首先要安装macport(https://www.macports.org/),然后在terminal运行一下命令

$ sudo port install driftnet

3.实施步骤

3.1 查看设备

首先使用nmap工具查看同一局域网环境下的网络使用情况

nmap -sP  192.168.1.0/24

效果如下:

这里我们可以看到同一局域网环境下,192.168.1.1是一台华硕的路由器,另外还有一部iphone,一个iWatch和一台未命名设备。我们可以看到iWatch其实是自带wifi模块,希望苹果在接下来几个watchos版本可以把这个功能开放给开发者。

3.2 arp欺骗与回话劫持

接下来就是强大的ettercap出场的时候了,使用以下命令启动GUI

sudo ettercap -G


嗅探无线网卡


遍历局域网内的设备列表

将像劫持的设备ip加入target 1,把网关加入target 2,启动arp欺骗

这时候被侵入的目标设备会认为我们是网关,而网关会认为我们是被侵入的目标设备,我们扮演了一个中间人的角色。而这个工具会自动将包转发给正确的目标,在目标看来我们仿佛并不存在。大家可以用wireshark来检验是否劫持成功,因为arp的原理,欺骗的有效性并不能保证100%。大家可以多试几次。

3.3 抓取图片

我们使用Driftnet来检验下我们的成果,这里我只是用来检验微信的图片传输安全性与否,大家切莫用在不合法的目的上。下面的命令是监控无线网卡并且将其中的明文图片信息保存在某个文件夹中。

$ driftnet -i en0 -d ~/Desktop/pic -a

4.验收成果

由于我劫持的是我自己的iphone,用它打开微信,操作来验证

经过测试发现,朋友圈里的sight不会被加密,其他的图片都是加密过的。在聊天过程中的图片都是加密过的。但是有一点很奇怪,查看自己所发的朋友圈时所有的图片都是明文传输,以后大家想发private小图片到自己的朋友圈要小心点咯。Favorite里的图片也是不加密的,所以大家不要收藏些乱七八糟的东西了。^_^