本文將主要講講WPA-PSK類型的無線網絡安全問題,首先我們看下802.11協議相關的基礎知識。
802.11常見的幾種認證方式:
1、不啟用安全
2、WEP
3、WPA/WPA2-PSK(預共享密鑰)
4、WPA/WPA2 802.1X (radius認證)
具體在路由器的配置界面一般如下圖所示:
WPA-PSK的認證過程:
由於我這里主要分析wpa-psk類型的認證方式,所以這里就不討論其他的認證方式了,通過抓包分析,我們可以看到wpa-psk的大致認證過程分為以下幾步。
1、無線AP定期發送beacon數據包,使無線終端更新自己的無線網絡列表。
2、無線終端在每個信道(1-13)廣播ProbeRequest(非隱藏類型的WiFi含ESSID,隱藏類型的WiFi不含ESSID)。
3、每個信道的AP回應,ProbeResponse,包含ESSID,及RSN信息。
4、無線終端給目標AP發送AUTH包。AUTH認證類型有兩種,0為開放式、1為共享式(WPA/WPA2必須是開放式)。
5、AP回應網卡AUTH包。
6、無線終端給AP發送關聯請求包associationrequest數據包。
7、AP給無線終端發送關聯響應包associationresponse數據包。
8、EAPOL四次握手進行認證(握手包是破解的關鍵)。
9、完成認證可以上網。
802.11數據幀類型說明
802.11協議的幀類型主要包括管理幀和數據幀,我們這里主要用到管理幀:
管理幀的主體包含的固定字段與信息元素是用來運送信息的。管理幀主要以下幾種,負責鏈路層的各種維護功能。
1. Beacon 信標幀
主要用來聲明某個網絡的存在。定期(默認100s、可自己設置)傳送的信標可讓station得知網絡的存在,從而調整加入該網絡所必需的參數。
2. Probe Request 探查請求幀
移動工作站利用Probe Request探查請求幀來掃描區域內目前哪些802.11網絡。
包含2個字段
SSID:可被設定為特定網絡的 SSID 或任何網絡的 SSID 。
Support rates:移動工作站所支持的速率。
3.ProbeResponse探查響應幀
如果ProbeRequest所探查的網絡與之兼容,該網絡就會以ProbeResponse幀響應。送出最后一個beacon幀的工作站必須負責響應所收到的探查信息。
Probe Request幀中包含了beacon幀的所參數,station可根據它調整加入網絡所需要的參數。
4.IBSS announcement traffic indication map (ATIM)
IBSS 的通知傳輸只是消息
5.Disassociation and Deauthentication
取消關聯、解除驗證幀
6. AssociationRequest
關聯請求幀
7.Reassociation Request
重新關聯
8.Association Response and Reassociation Response
關聯響應、重新關聯響應
9.Authentication
身份驗證幀 ///Authentication Algorithm Number:用於算法擇
10.Action frame
幀傳送、關聯與身份驗證的狀態
State1 :未經認證且尚未關聯 2 :已經認證但尚未關聯 3 :已經認證且已經關聯。
下圖是用科來分析數據包顯示的幀類型:
WPA-PSK認證四次握手認證的過程:
WPA-PSK破解原理:
用我們字典中的PSK+ssid先生成PMK(此步最耗時,是目前破解的瓶頸所在),然后結合握手包中的客戶端MAC,AP的BSSID,A-NONCE,S-NONCE計算PTK,再加上原始的報文數據算出MIC並與AP發送的MIC比較,如果一致,那么該PSK就是密鑰。如圖所示:
WPA-PSK破解過程:
接下來我們看看如何進行抓握手包破解WPA-PSK的無線AP,我這里用的工具是kali Linux,kali Linux集成了aircrack套件。然后網卡使用的是rtl8187芯片的外置USB網卡。
破解步驟如下:
第一步:把usb網卡插入虛擬機,並開啟網卡到監聽模式,命令如下:
“ifconfig wlan0 up” 加載usb網卡。
“airmon-ng start wlan0” 監聽模式已激活到mon0。(通過config 命令查看)。
如果不開啟監聽模式會報錯如下圖:
第二步:抓包查看有哪些無線網絡,抓包的界面如下圖所示:
“airodump-ng mon0” 查看周邊路由AP的信息。
個人經驗一般信號強度大於-70的可以進行破解,大於-60就最好了,小於-70的不穩定,信號比較弱。(信號強度的絕對值越小表示信號越強)
第三步:選擇要破解的WiFi,有針對性的進行抓握手包,命令如下:
“ airodump-ng--ignore-negative-one -w /tmp/test.cap-c 11 --bssid 40:16:9F:76:E7:DE mon0”
參數說明:-w 保存數據包的文件名 –c 信道 –bssid ap的mac地址
(注意test.cap會被重命名),也可以用其他工具抓包比如:wireshark、tcpdump,抓到握手包會有提示。
第四步:為了順利抓到握手包,我們需要使用DEAUTH攻擊使已經連接的客戶端斷開並重新連接,以產生握手包。(注意:抓握手包破解必須有合法的客戶端才行。)攻擊命令如下:
aireplay-ng-0 111 -a ap'mac mon1
aireplay-ng-0 3 -a B8:A3:86:63:B4:06 -c 00:18:1a:10:da:c9 -x 200 mon1
參數說明:-0 Deautenticate 沖突模式 3 發包次數 -x 發包速度
抓包可以看到很多deauthentication類型的數據包:
包結構如下:
抓到的數據包打開后如下圖:圖中使用wireshark打開的,EAPOL類型的數據包共有4個,即四次握手的數據包。
第五步:接下來就是破解握手包,命令如下:
aircrack-ng-w pass-haoyong.txt test-03.cap
參數解釋:-w 字典路徑
也可以使用圖形化工具EWSA進行破解,Elcomsoft Wireless Security Auditor(EWSA)
號稱可以利用GPU的運算性能快速攻破無線網絡密碼,運算速度相比使用CPU可提高最多上百倍。
上面我們講解了通過抓握手包破解WPA-PSK認證的無線AP的全過程,從上述過程可以看出,如果AP沒有合法的客戶端連接,或者密碼設置的足夠復雜就基本上不可能破解。
通過WPS破解無線路由器密碼
接下來我們看一下另一種破解方式,也就是常說的pin碼破解后者叫wps破解。首先了解下什么是wps:
WPS(Wi-FiProtected Setup,Wi-Fi保護設置)是由Wi-Fi聯盟組織實施的認證項目,主要致力於簡化無線網絡的安全加密設置。
功能:
簡化配置,快速配置一個基於WPA2的網絡。
快速連接,輸入pin碼或按下WPS鍵即可完成網絡連接。
問題:
由於WPS存在漏洞,通過PIN碼可以直接提取上網密碼。
通過WPS快速配置無線路由器
我們可以通過WPS快速配置無線路由器:步驟如下
1、通過電腦連接新買的無線路由器,提示通過pin碼進行設置,界面如下:
2、輸入pin碼下一步,就會為路由器自動生成一個足夠復雜的認證方式及密碼:
通過WPS快速連接已有網絡
我們也可以通過WPS快速連接已有網絡,不用輸入復雜的密碼:步驟如下(我使用小米手機進行測試)
1、在手機上選擇通過PIN碼進行連接或通過路由器上的WPS按鍵連接。
2、如果選擇前者只需要輸入pin碼即可連接,如果選擇的是后者則只需要按以下路由器上的wps鍵即可完成連接。
Pin碼破解的原理:
由於WPS存在安全問題,通過PIN碼可以直接提取上網密碼。而pin碼是一個8位的整數,破解過程時間比較短。WPS PIN碼的第8位數是一個校驗和,因此黑客只需計算前7位數。另外前7位中的前四位和后三位分開認證。所以破解pin碼最多只需要1.1萬次嘗試,順利的情況下在3小時左右。Wps認證流程如下圖:
破解的操作步驟:
第一步:Wash 掃描開啟WPS的網絡。
wash-i mon1 –C
第二步:窮舉破解pin碼,並通過獲取的pin碼得到無線AP上網密碼。
reaver-i mon0 -b 5C:63:BF:BA:44:DC -a -S -vv
reaver參數說明:
1. -i 監聽后接口稱號
2. -b APmac地址
3. -a 主動檢測AP最佳配置
4. -S 利用最小的DH key(能夠進步PJ速度)
5. -v、-vv 顯示更多的破解信息
6. -d 即delay每窮舉一次的閑置時候預設為1秒
7. -t 即timeout每次窮舉守候反應的最長時候
8. -c指定頻道能夠便當找到信號,如-c1 指定1頻道
如果無線路由器沒開wps功能會報錯如下圖:
另外破解過程中無線路由器會有如下特征:
破解成功后如下:
如果之前破解的無線路由器密碼被改了,可以直接通過pin碼獲取密碼,命令如下:
reaver-i mon0 -b MAC -p PIN8位數
上面就是通過pin碼破解無線路由器密碼的全過程,可見開啟wps功能並不安全,建議最好不要開此功能。
最后介紹幾個圖形界面的工具:
常用的圖形界面的工具有水滴、打氣筒、奶瓶:
這些工具只是將Aircrack-ng、 reaver打包圖形化,即為Aircrack-ng套件的GUI。
1. Aircrack-ng是一個與802.11標准的無線網絡分析關的安全軟件,主要功能:網絡偵測,數據包嗅探,WEP和WPA/WPA2-PSKPJ。
2. reaver,專用來pin PJ的軟件、一般都集成在水滴等里面了。
3. 另外我們常用的注:beini/CDlinux/xiaopan都是小型linux系統,已集成了上述工具。下圖為水滴的界面。
安全建議:
1. 使用WPA2認證,不要使用wep或無認證。
2. 為無線網路設置復雜的密碼。
3. 關閉WPS功能。