简单使用wifipineapple进行中间人劫持(MITM)
我们这次就说说wifipineapple,以下简称菠萝,菠萝已经出第五版了,笔者在这里使用的第四版。
首先需要了解菠萝是一个基于openwrt的设备,所以说,openwrt的功能,菠萝也一一具备。关于菠萝的历史,大家可以读读radiowar的文章,这里不再赘述。
菠萝的基本配置:
这部分网上都有,比较重要的就是两点,1、如何使用菠萝上网;2、如何把U盘接入菠萝。
第一个问题:菠萝可以通过手机、网卡、双绞线等多种方式直接连入互联网,这里值得一提的是iptables需要简单配置,这部分笔者简单总结下:
网线的配置方法
iptables -A FORWARD -i eth1 -o wlan0 -s 172.16.42.0 -m state –state NEW -jACCEPTiptables -A FORWARD -m state –state ESTABLISHED,RELATED -j ACCEPTiptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
网卡的配置方法
iptables -t nat -A POSTROUTING -s 172.16.42.0/24 -o wlan0 -j MASQUERADEiptables -A FORWARD -s 172.16.42.0/24 -o wlan0 -j ACCEPTiptables -A FORWARD -d 172.16.42.0/24 -m state –state ESTABLISHED,RELATED-i wlan0 -j ACCEPT
使用手机连入互联网的配置方法
iptables -t nat -A POSTROUTING -s 172.16.42.0/24 -o usb0 -j MASQUERADEiptables -A FORWARD -s 172.16.42.0/24 -o usb0 -j ACCEPTiptables -A FORWARD -d 172.16.42.0/24 -m state –state ESTABLISHED,RELATED-i usb0 -j ACCEPT
在wifipineapple的Advanced里面输入上述命令就可以了,如下图所示:
如何把U盘接入菠萝,其实只需要把U盘直接插入菠萝里就可以了,事先记得把U盘格式化为EXT4格式的,如果需要增大SWAP空间,记得把U盘分成两个区,一个格式化为ext4,一个格式化为linux-swap,记得把autoswap下anon_swap的值改成1。
config global autoswap option from_fstab 1 option anon_swap 0
这样我们就能有一个比较大的空间,如下图所示(图2)
菠萝的用法:
菠萝里最有意思的一个特性是karma,Karma是为了hostapd而开发出来的一个特殊补丁,其目的就是为了用来欺骗接入无线网络的用户,从而使其可以很平滑的连接到虚假的AP当中,然后进行后续的攻击。
菠萝的Pineapple Bar中有很多有意思的工具,比如绕过SSL获取信息的SSLTrip,有获取cookies的Trap Cookies、tcpdump,有“干扰”无线信号的Occupineapple、Jammer,也有获取wifi密码的reaver,这些功能确实很华丽,但是本文需要讲的是一个基于MITM的工具codeinject。
Codeinject是leg3nd开发的一个小工具,该工具可以在菠萝的PineappleBar中直接选择安装,效果是可以在所有通过菠萝的网页中注入javascrip,就像XSS一样。
一个很麻烦的问题是,安装之后往往不能使用,效果往往是被注入的页面根本打不开。
I was able to get it to start but then my pages would notload so i stopped it and restarted it and now it wont even start https://forums.hak5.org/index.php?/topic/30432-arbitrary-code-injection/
我们用putty进去看看到底怎么回事?
Codeinject里有个start.sh,这就是启动Codeinject的命令,我们运行看看,我们会发现这样一个问题。
我们来看看Codeinject的安装“代码”,注意这一句:
作者已经考虑到这是一个ruby gemimport error,但我发现,这句命令并不能执行,那我就就手动操作一次,复制+粘贴,把原来那个socket替换掉。
这次我们试试嵌入beef的代码,成功执行,如下图所示:
不需要通过社会工程的手段,至于打开任意一个网页,这就足够了。菠萝的效果是使附近的设备“无意”连入,而Codeinject/MITM(这里的MITM是另外一个工具的名字)的效果是嵌入beef/xssf/Anetha的代码,后面的发挥,我就不多说了。
Codeinject其实用了一个ruby写的http代理,并在其中注入了一些代码,如果有树莓派的同学应该也可以玩,安装karma->模拟AP->安装ruby->最后参照Codeinject的代码就可以完成上面MITM。