實驗環境
kali,由於個人是虛擬機,須要再外接一塊網卡html
無線網卡的四種工做模式
- 被管理模式:當無線客戶端直接與無線接入點鏈接時,就是用這個模式
- ad hoc模式:當網絡有相互直連的設備組成時,使用這個模式
- 主模式:這個模式永續無線網卡使用特製的驅動程序和軟件工做
- 監聽模式:使得網卡專心監聽空氣中的數據包
下圖是四種模式的圖示,來自《wireshark 數據包分析實戰 第二版》
WPA—PSK破解原理
咱們都知道破解 WPA-PSK 不是和 WEP 同樣抓不少包就能破解的,這跟抓多少數據包一點關係也沒有。破解的關鍵是要獲取握手包,這個握手包叫4way-handshake四次握手包。
WPA 四次握手過程:
WPA-PSK 初始化工做:
使用SSID和passphares使用如下算法產生PSK。
在WPA-PSK中PMK=PSK,PSK=PMK=pdkdf2_SHA1(passphrase,SSID,SSID length,4096)
第一次握手:
AP廣播SSID,AP_MAC(AA)→STATION
STATION 端使用接受到的SSID,AP_MAC(AA)和passphares使用一樣算法產生PSK
第二次握手:
STATION 發送一個隨機數SNonce,STATION_MAC(SA)→AP
AP端接受到SNonce,STATION_MAC(SA)後產生一個隨機數Anonce,而後用PMK,AP_MAC(AA),STATION_MAC(SA),SNonce,ANonce 用如下算法產生PTK
PTK=SHA1_PRF(PMK, Len(PMK), "Pairwise key expansion",MIN(AA,SA) ||Max(AA,SA) || Min(ANonce,SNonce) || Max(ANonce,SNonce))
提取這個PTK 前16 個字節組成一個MIC KEY
第三次握手:
AP發送上面產生的ANonce→STATION
STATION 端用接收到ANonce 和之前產生PMK,SNonce,AP_MAC(AA), STATION_MAC(SA),用一樣的算法產生PTK。提取這個PTK 前16 個字節組成一個MIC KEY,使用如下算法產生MIC值,用這個MIC KEY 和一個802.1x data 數據幀使用如下算法獲得MIC值。
MIC = HMAC_MD5(MIC Key,16,802.1x data)
第四次握手:
STATION 發送802.1x data ,MIC→AP
STATION 端用上面那個準備好的802.1x 數據幀在最後填充上MIC值和兩個字節的0(十六進制)讓後發送這個數據幀到AP。
AP端收到這個數據幀後提取這個MIC。並把這個數據幀的MIC部分都填上0(十六進制)這時用這個802.1x data 數據幀,和用上面AP產生的MIC KEY 使用一樣的算法得出MIC’。若是MIC’等於STATION 發送過來的MIC。那麼第四次握手成功。若不等說明則AP 和STATION 的密鑰不相同,或STATION 發過來的數據幀受到過中間人攻擊,原數據被篡改過。握手失敗了。
綜上所述:
WPA-PSK安全體系是十分強大和完善的。但他始終是用一個密碼保護的,對於這種用密碼保護的安全體系,通常狀況下咱們均可以用一種叫字典攻擊的常規攻擊手段。針對WPA-PSK的破解,目前也就只有字典攻擊這一種方式了。原理是經過截取WPA-PSK的四次握手包中包含的和密碼有聯繫的信息,再依靠這個信息進行字典暴破。
總之,想要破解WPA-PSK這種強大的加密算法,必須符合如下條件:
需要有合法客戶端,而且存在合法的通訊流量,經過抓取數據包進行破解的概率爲0,惟一的破解方法是抓取WPA-PSK的四次握手包而後進行字典破解。抓到四次握手包以後,最後破解的關鍵是字典的好壞程度,有必定的運氣成分了。若是碰到強口令時千萬不要鑽牛角尖,趁早放棄,由於WPA-PSK的破解目前惟一有實際價值的只有弱密碼字典攻擊。
linux
抓取無線數據的方法
也能夠參考
https://www.cnblogs.com/linkr/p/4502161.html
http://www.javashuo.com/article/p-zhdzevxd-km.html
其實在Linux下按照第一個鏈接中的linux的方法簡單可行,但我想抓取特定的包,便於我本身分析查看,因此還用到了Aircrack-ng這個工具,工具的使用能夠參照https://www.jianshu.com/p/fd16236057df下面是個人步驟
算法
步驟
查看個人網卡
airmon-ng start wlan0使用工具將個人網卡激活至監聽模式
airodump-ng wlan0mon,探測周圍的wifi,其中IRM爲咱們宿舍的wifi,它的mac爲50:FA:84:3E:05:AC,信道爲13
用wireshark開始抓包,根據上步獲得的bssid進行過濾
802.11包有3種類型,分別爲管理、控制、數據
Beacon是一種管理數據包,選擇一個進行分析
能夠看到:
路由器的物理地址和廠商
timestamp爲該包發送的時間戳
ssid parameter set wap廣播的ssid,這裏爲IRM確實是咱們宿舍的
supported rates wap支持的數據傳輸率
ds parameter wap廣播使用的信道,這裏爲13與開始工具探測的一致
並能看到wpa,rsn的版本,採用加密方式等屬性信息
接着我讓個人手機鏈接wifi
開始個人手機發送了請求包,接着wifi進行了迴應
接着進行了認證與關聯
接下來是四次握手過程
以後就能夠進行數據傳輸
安全