使用树莓派搭建钓鱼WiFi热点

前段时间有一则新闻说使用一台普通电脑搭建的wifi热点就可以窃取使用者的网银和支付宝等密码。但是稍微有点常识的人都会知道:支付相关的网站和部分网站的登陆页面都使用了https连接,所以破解这种加密就不要指望了。不过我们可以换一下思路,比如伪造一个联通WLAN的登陆页面,然后窃取使用者的WLAN号码和密码。

环境配置

需要用到的硬件:

  • 树莓派一台
  • USB无线网卡一个

需要用到的软件

  • apache2
  • php5
  • hostapd
  • dnsmasq

首先安装上述的软件

 

如果你觉得Apache对于Pi来说负担太重的话,可以换成nginx,具体操作请看这里

对于hostapd,如果你的网卡不在支持范围内,你可能需要首先安装驱动或自己编译安装hostapd
查看usb设备列表

%e5%9b%be%e5%83%8f-067

可以看出我使用的网卡芯片是RTL8188CUS。但是官方提供的程序不兼容RTL8188CUS芯片的无线网卡,不过Edimax团队为我们专门编译了兼容的版本,下面的操作需要替换hostapd为兼容版本。

替换的命令如下:

编辑配置文件

  • Hostapd

  •  dnsmasq,实现DHCP服务器并将终端发来的所有http请求重定向到rpi本地的服务器上

测试WLAN热点

这时应该可以搜索到一个名为China Unicom的WiFi,连接上后随便输入一个url,会显示如下的网页,也就是apache的默认页面:

qq%e5%9b%be%e7%89%8720140127215942

仿造登陆页面

WLAN热点到这里就建设完成了,然后我们需要仿造联通WLAN的登陆页面
这里是一个真的登陆页面http://119.6.17.129:8080/

我们需要把网站上面用到的css和js等脚本下载下来
我使用的是比较笨的办法,也就是在html源码中找到css和js的url,然后wget下载下来

然后就可以得到这么几个东西:

接下来把首页的html代码粘贴保存下来,

找到这一行:

这一行定义了表单的提交方式及动作,改为:

将action改为服务器上的一个php文件,从html提交的表单将交由这个php文件来处理

然后找到这一行:

这一行定义了按钮的动作,改为:

然后新建一个login.php,写入:

然后将网站目录放进/var/www/,打开浏览器测试

整体测试

正常情况下,你的浏览器UA,输入的用户名及密码将被记录到/var/www/d.txt中。
(如果没有的话,自己新建一个,然后将它chown 到www-data用户

完成

不过要注意的是

  1. 树莓派的电源问题一直是个老大难,如果你发现RPi的USB或有线网络不工作,或者PWR灯忽亮忽暗,首先检查是否使用了足够功率的电源(5v 1a都不一定够)
  2. 让别人接入你的无线网络对你来说也是很危险的事情,确保你更改了默认的账户密码,不然别人就可以畅通无阻地通过ssh连接并控制你的RPi,黑人不成反被人黑就神作了。

一些细节问题

  1. 用户在连接到你的AP的时候,地址栏里可能是一个网页的url而不仅仅是域名(如:www.xxx.com/xxx.html)这样的话,RPi上的apache就会返回一个404页面。
    解决方法是使用apache的.htaccess文件进行重写,将404页面定义为一个自定义页面。具体操作方法网上一搜一大堆,这里不再赘述。
  2. 今天测试了一下在将全套装置带出去的时候使用android手机进行ssh远程控制的情况。当我连上ssh(用的connectbot)之后试着编辑一个文件,结果发现nano编辑器竟然用!不!了!–因为android键盘上没有方向键,而且otg键盘罕见地不起作用…浴室我就只能苦逼地用对我来说熟练度几乎为0的vi…所以,如果你打算带着它出去作死,请确保安装了vnc,因为android上的ssh client体验不是一般的差。
  3. 还有就是RPi一直被人诟病的一点就是—-电源。虽然RPi标称的是输入5v 700ma,但是在我的测试过程中,在插入无线网卡的情况下,如果只使用5v 1a的电源,很可能出现usb接口和有线网口都不工作的情况。如果出现这样的情况,那么你可能需要一个更大的电源适配器或者有源hub。最后我采用了这样的方案:使用一个没有隔离的有源hub从usb接口对RPi反向供电(注意:这会使板上的所有保护电路失效,如果有条件,强烈不建议这样做!),同时将一个5v 1a的移动电源(实际输出可能不到)接在microusb 接口上。(因为我的hub质量很差,轻轻一碰可能就掉电了)
  4. 最推荐的供电方案是:使用5v 2a的电源接在microusb上为RPi供电,同时使用一个带隔离的有源hub对外接usb设备供电。