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

Frank发布

前段时间有一则新闻说使用一台普通电脑搭建的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设备供电。
分类: 原创文章

9 条评论

不跳OP大大 · 2015 年 12 月 25 日 下午 4:31

Google Chrome 47.0.2526.106 Google Chrome 47.0.2526.106 Windows 7 x64 Edition Windows 7 x64 Edition

配置hostapd后,测试的时候用sudo hostapd -B /etc/hostapd/hostapd.conf
,总是会显示invalid/unknown driver ‘rtl871xdrv 。我不知道这个driver是怎么来的,请博主解答一下下。

匿名 · 2015 年 12 月 23 日 下午 4:27

Google Chrome 46.0.2490.86 Google Chrome 46.0.2490.86 Windows 10 x64 Edition Windows 10 x64 Edition

楼主,请问为啥我在测试WiFi的时候,输入了

sudo ifconfig wlan0 192.168.137.132 netmask 255.255.255.0就没反应了,还有你上面的dnsmasq文件中的dhcp-option那些ip是什么意思呢

789456123 · 2015 年 1 月 15 日 下午 8:24

UC Browser 9.8.1.447 UC Browser 9.8.1.447 Android 2.3.5 Android 2.3.5

904977408@qq.com代码发一下呗

minos · 2014 年 11 月 19 日 上午 1:42

Google Chrome 38.0.2125.111 Google Chrome 38.0.2125.111 Windows 7 x64 Edition Windows 7 x64 Edition

您这个是用的3G上网卡吗?

    Frank  Mod · 2014 年 11 月 19 日 下午 8:50

    Google Chrome 40.0.2214.6 Google Chrome 40.0.2214.6 Windows 8.1 x64 Edition Windows 8.1 x64 Edition

    不是,只是普通的无线网卡。如果想要实现更丰富的功能(比如装模做样地让用户输入用户名密码之后才可以成功连上外网),可以加装一个3G网卡,然后和承载无线AP的网卡桥接就可以了。

      擦擦擦 · 2014 年 11 月 19 日 下午 8:53

      Internet Explorer 11.0 Internet Explorer 11.0 Windows 7 x64 Edition Windows 7 x64 Edition

      QQQQQQQQ发我邮箱来 1958447 444@qq.com

        Frank  Mod · 2014 年 11 月 23 日 上午 10:46

        Google Chrome 40.0.2214.10 Google Chrome 40.0.2214.10 Windows 8.1 x64 Edition Windows 8.1 x64 Edition

        啥?

minos · 2014 年 11 月 19 日 上午 12:24

Google Chrome 38.0.2125.111 Google Chrome 38.0.2125.111 Windows 7 x64 Edition Windows 7 x64 Edition

楼主.我又过来了. = =

minos · 2014 年 11 月 8 日 上午 3:28

Google Chrome 38.0.2125.111 Google Chrome 38.0.2125.111 Windows 7 x64 Edition Windows 7 x64 Edition

楼主楼主。文章很棒。可否加你个好友。求发邮件。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Captcha *

%d 博主赞过: