KaliLinux無線滲透測試入門指南第三章繞過WLAN身份驗證
第三章 繞過 WLAN 身份驗證
作者:Vivek Ramachandran, Cameron Buchanan
譯者:飛龍
簡介
安全的錯覺比不安全更加糟糕。
– 佚名
安全的錯覺比不安全更加糟糕,因為你不可能為面對被黑的可能性做準備。
WLAN 的身份驗證模式可能很弱,可以被破解和繞過。這一章中,我們會檢視一些 WLAN 中所使用的基本的身份驗證模式,以及學習如何破解它們。
3.1 隱藏的 SSID
在預設的配置模式下,所有接入點都在信標幀中傳送它們的 SSID。這讓附近的客戶端能夠輕易發現它們。隱藏 SSID 是個配置項,其中接入點並不在信標幀中廣播它的 SSID。因此,只有知道接入點 SSID 的客戶端可以連線它。
不幸的是,這個方法不能提供可靠的安全,但是網路管理員認為它很安全。隱藏 SSID 不應該被看作安全手段。我們現在來看看如何發現隱藏的 SSID。
實踐時間 – 發現隱藏的 SSID
執行下列指南以開始:
-
使用 Wireshark,如果我們監控
Wireless Lab
網路中的信標幀信標幀,我們就能夠以純文字檢視 SSID。你應該能看到信標真,像這樣: -
配置你的接入點來隱藏
Wireless Lab
網路的 SSID。這個配置項在不同接入點中可能不同。這裡,我需要檢查Visibility Status
選項的Invisible
選項,像這樣: -
現在如果你檢視 Wireshark 的記錄,你會發現
Wireless Lab
的 SSID從信標幀中消失了。這是隱藏 SSID 所做的事情: -
為了繞過信標幀,我們首先使用被動技巧來等待正常客戶端連線到接入點。這會生成探測請求和響應,它包含網路的 SSID,從而揭示它的存在。
-
作為替代,你可以使用
aireplay-ng
來傳送接觸驗證封包給所有代表Wireless Lab
接入點的路由器,通過輸入:aireplay-ng -0 5 -a <mac> --ignore-negative mon0
,其中<mac>
是路由器的 MAC 地址。-0
選項用於選則接觸驗證攻擊,5
是要傳送的封包數量。最後,-a
指定了所定位的接入點的 MAC 地址。 -
接觸驗證的過程會強迫所有正常客戶端斷開連線並重連。為接觸驗證的封包新增個過濾來單獨檢視它們是個好主意。
-
來自接入點的探測響應最後會發現 SSID。這些封包會出現在 Wireshark 中。一旦正常客戶端連線回來了,我們就可以通過探針的請求和響應幀來檢視隱藏的 SSID。可以使用過濾器
(wlan.bssid == 00:21:91:d2:8e:25) && !(wlan.fc.type_subtype == 0x08)
來監控所有發往或來自接入點的非信標封包。&&
符號代表邏輯 AND 操作符,!
符號代表邏輯 NOT 操作符:
剛剛發生了什麼?
即使 SSID 隱藏而且不廣播,當正常的客戶端嘗試連線到接入點時,它們就交換了探測請求和響應的封包。這些封包包含接入點的 SSID。由於這些封包沒有加密,它們可以被非常輕易地嗅探來發現SSID 。
我們在之後的章節中會出於其它目的,例如跟蹤,涉及到探測請求。
許多情況下,所有客戶端可能已經連結到接入點,並且在 Wireshark 記錄中沒有探測請求或響應的封包。這裡,我們可以強制客戶端斷開接入點的連結,通過傳送偽造的解除驗證封包。這些封包會強迫客戶端重新連線到接入點上,從而獲取 SSID。
試一試 – 選擇解除驗證
在之前的練習中,我們廣播瞭解除驗證封包來強制所有無線客戶端重新連線。嘗試驗證如何使用aireplay-ng
工具,選擇性對某個客戶端執行它。
要注意,即使我們使用 Wireshark 演示了許多概念,但也可以使用其它工具來完成攻擊,例如aircrack-ng
套件。我們推薦你探索整個 aircrack-NG 套件以及其它位於官網的文件:http://www.aircrack-ng.org
。
3.2 MAC 過濾器
MAC 過濾器是個古老的技巧,用於驗證和授權,它們根植於有線世界。不幸的是,它們在無線世界中變得十分糟糕。
最基本的想法就是基於客戶端的 MAC 地址進行驗證。MAC 過濾器是為網路介面分配的一段識別程式碼,路由器能夠檢查這個程式碼並將其與允許的 MAC 列表進行比較。允許的 MAC 地址列表由網路管理員維護,儲存於接入點中。我們現在要看看繞過 MAC 過濾器有多容易。
實踐時間 – 繞過 MAC 過濾器
讓我們遵循以下指南來開始:
-
讓我們首先配置我們的接入點來使用 MAC 過濾,之後新增受害者筆記本的客戶端 MAC 地址。我的路由器上的設定頁面是這樣:
-
一旦開啟了 MAC 過濾,只有允許的 MAC 地址能夠成功被接入點驗證。如果我們嘗試從不在 MAC 地址白名單中的機器連線接入點,就會失敗。
-
在這個場景背後,接入點傳送驗證失敗的訊息給客戶端。封包記錄影這樣:
-
為了繞過 MAC 過濾器,我們可以使用
airodump-ng
來尋找連線到接入點的客戶端 MAC 地址。我們可以通過輸入airodumpng -c 11 -a --bssid <mac> mon0
命令。通過指定bssid
命令,我們只監控接入點,這是我們所感興趣的。-c 11
命令將頻道設定為接入點所在的11
。-a
命令確保在airodump-NG
輸出的客戶端部分中,只展示相關客戶端,以及到接入點的連線。這會向我們展示所有和接入點相關的客戶端 MAC 地址。 -
一旦我們找到了白名單中的客戶端 MAC 地址,我們可以使用
macchanger
工具來修改客戶端的 MAC 地址,Kali自帶這個工具。你可以使用macchanger –m <mac> wlan0
命令來完成。你使用-m
命令指定的 MAC 地址就是wlan0
介面的新 MAC 地址。 -
你可以看到,將 MAC 地址修改為白名單客戶端之後,我們現在能夠連線接入點了。
剛剛發生了什麼?
我們使用airodump-ng
監控了空氣,找到了連線到無線網路的正常使用者的 MAC 地址。之後我們可以使用macchanger
工具來修改無線網路卡的 MAC 地址,與客戶端保持一致。這會欺騙接入點,使其相信我們是正常耳朵客戶端,它會允許我們訪問它的無線網路。
我們鼓勵你探索airodump-NG
工具的不同選項,通過訪問官網的文件:http://www.aircrack-ng.org/doku. php?id=airodump-ng
。
3.3 開放驗證
術語“開放驗證”是個誤解,因為它實際上不提供任何驗證。當接入點配置為使用開放驗證的時候,所有連線它的客戶端都可以成功驗證。
我們現在使用開放驗證來獲得驗證並連線到接入點。
實踐時間 – 繞過開放驗證
讓我們現在看看如何繞過開放驗證。
-
我們首先將我們的接入點
Wireless Lab
設定為開放驗證。在我的接入點中,這可以通過將Security Mode
設為Disable Security
來輕易完成。 -
我們之後使用
iwconfig wlan0 essid Wireless Lab
命令來連線到這個接入點,之後驗證我們到接入點的連線是否成功。 -
要注意我們沒有提供任何使用者名稱/密碼來通過開放驗證。
剛剛發生了什麼?
這可能是目前為止最簡單的練習了。你可以看到,在連線到開放驗證網路和連線到接入點時沒有任何障礙。
3.4 共享金鑰驗證
共享金鑰驗證使用例如 WEP 的共享金鑰來驗證客戶端。資訊的交換展示在這張圖中:
無線客戶端傳送驗證請求給接入點,它會回覆一個 challenge。現在客戶端需要使用共享金鑰加密這個 challenge,併傳送ui接入點,接入點解密它來檢查是否它可以恢復原始的 challenge 文字。如果成功了,客戶端就驗證成功,如果沒有,它會傳送驗證失敗的資訊。
這裡的安全問題是,攻擊者可以被動監聽整個通訊,通過嗅探空氣來訪問 challenge 的純文字和加密文字。他可以使用 XOR 操作來獲取金鑰流。金鑰流可以用於加密任何由接入點傳送的未來的 challenge,而不需要知道真實的金鑰。
這種共享驗證的常見形式就是 WEP,或者無線等效協議。它易於破解,並且由數不清的工具用於使破解 WEP 網路變得容易。
這個練習中,我們會了解如何嗅探空氣來獲取 challenge 或者加密後的 challenge,獲取金鑰流,使用它來驗證接入點,而不需要共享金鑰。
實踐時間 – 繞過共享驗證
繞過共享驗證比上一個練習更加困難,所以仔細遵循下列步驟:
-
讓我們首先為我們的
Wireless Lab
網路建立共享驗證。通過將安全模式設定為 WEP ,將驗證設定為Shared Key
,我們已經在我的接入點上完成了設定。 -
讓我們現在將正常的客戶端連線到該網路,使用我們在第一步設定的共享金鑰。
-
為了繞過共享金鑰驗證,我們首先需要嗅探接入點和客戶端之間的封包。但是,我們也需要記錄整個共享金鑰的交換。為了完成它,我們使用
airodump-ng
工具的airodump-ng mon0 -c 11 --bssid <mac> -w keystream
命令。-w
選項在這裡是新增的,讓 Airodump-NG 在keystream
為字首的檔案中儲存資訊。順便,在不同檔案中儲存不同的封包捕獲的會話是個好主意。這允許你在很長時間之後分析它們。 -
我們可以等待正常客戶端連線到接入點,或者使用之前用過的解除驗證的技術強迫重新連線。一旦客戶端連線並且工項金鑰驗證獲得成功,
airodump-ng
就會通過嗅探空氣自動捕獲這個改變。當AUTH
列出現了WEP
,就說明捕獲成功。 -
捕獲到的金鑰流儲存在當前目錄
keystream
為字首的檔案中。我這裡的檔名稱是keystream-01-00-2191-D2-8E-25.xor
。 -
為了偽造共享金鑰驗證,我們使用
aireplay-ng
工具。我們執行aireplay-ng -1 0 -e "Wireless Lab" -y keystream01-00-21-91-D2-8E-25.xor -a <mac> -h AA:AA:AA:AA:AA:AA mon0
命令。這個aireplay-ng
的命令使用我們之前獲得的金鑰流,並嘗試驗證 SSID 為Wireless Lab
,MAC 地址為address 00:21:91:D2:8E:25
的接入點。啟動 WIreshark,並通過wlan.addr == AA:AA:AA:AA:AA:AA
過濾器嗅探所有感興趣的封包。我們可以使用 Wireshark 來驗證它。你應該能在 Wireshark 的介面上看到記錄,像這樣: -
第一個封包是驗證請求,由
aireplay-ng
工具發給接入點: -
第二個封包由接入點發給客戶端的 challenge 文字組成,像這樣:
-
第三個封包中,這個工具向接入點傳送了加密的 challenge。
-
由於
aireplay-ng
工具將匯出的金鑰流用於江米,驗證會成功,接入點會在第四個封包中傳送成功訊息。 -
在驗證成功過之後,這個工具偽造了接入點的關聯,像這樣:
-
如果你在你的接入點管理介面中的無線日誌中檢視,你會看到 MAC 地址為
AA:AA:AA:AA:AA:AA
的客戶端建立了連線。
剛剛發生了什麼?
我們成功從共享驗證交換中匯出了金鑰流,並且使用它來偽造接入點的驗證。
試一試 – 填滿接入點的表格
接入點擁有最大客戶端數量,超過之後它們就會拒絕連線。通過為aireplay-ng
編寫一個小型的包裝器,我們就可以自動傳送數百個連線請求,從隨機的 MAC 地址發往接入點。這會填滿路由器的內部表格,一旦達到了最大客戶端數量,接入點會停止接受新的連線。這通常叫做拒絕服務(DoS)工具,可以強制路由器重啟或使其失去功能。這也可以導致所有無線客戶端失去連線以及不能使用授權後的網路。
小測驗 – WLAN 驗證
Q1 如何強迫無線客戶端重新連線到接入點?
- 傳送解除驗證的封包
- 重啟客戶端
- 重啟接入點
- 以上全部
Q2 開放驗證是幹什麼的?
- 提供了適當的安全
- 不提供任何阿暖
- 需要使用加密
- 以上都不是
Q3 如何破解共享金鑰驗證?
- 從封包中匯出金鑰流
- 匯出加密金鑰
- 向接入點傳送解除驗證的封包
- 重啟接入點
總結
這一章中,我們瞭解了 WLAN 驗證。隱藏 SSID 是“隱藏式安全”的策略,很容易被攻破。MAC 地址過濾器不能夠提供任何安全,因為 MAC 地址可以從無線封包中嗅探,而 MAC 地址在封包中毫無加密。開放驗證不提供任何實際的驗證。共享金鑰驗證的破解有些麻煩,但是,使用了正確的工具,我們可以匯出和儲存金鑰流,我們可以使用它來回應之後由接入點傳送的所有 challenge。最後我們可以獲得驗證而不需要知道真實的金鑰。
下一章中,我們會看一看 WLAN 加密機制的不同 – WEP,WPA 和 WPA2 – 並看一看其中的不安全性。
相關文章
- KaliLinux無線滲透測試入門指南第七章高階WLAN攻擊Linux
- KaliLinux無線滲透測試入門指南第九章無線滲透測試方法論Linux
- KaliLinux無線滲透測試入門指南第六章攻擊客戶端Linux客戶端
- 搭建滲透測試環境選自KaliLinux無線網路滲透測試教程Linux
- 透過WLAN測試驗證網路的連線性
- 滲透測試入門實戰
- 安全性測試入門 (五):Insecure CAPTCHA 驗證碼繞過APT
- 網路安全滲透測試的型別!滲透測試入門教程型別
- Android滲透測試Android滲透測試入門教程大學霸Android
- Metasploit滲透測試指南
- 網路滲透測試實驗二——網路嗅探與身份認證
- python滲透測試入門——Scapy庫Python
- 滲透測試(PenTest)基礎指南
- 網站安全滲透測試檢測認證登入分析網站
- linux滲透測試後續指南Linux
- python滲透測試入門——流量嗅探器Python
- 第三章-常用的滲透測試工具-(sqlmap)SQL
- 滲透測試公司 入職後的個人經驗分享
- AirMagnet無線WLAN網路設計佈局驗收測試AI
- 網路安全審計工具—Nmap!滲透測試入門
- 滲透測試會用到哪些工具?滲透測試教程
- Web 滲透測試入門:環境搭建、流程與實踐Web
- 滲透測試學習之探測和攻擊無線網路五
- 滲透測試學習之探測和攻擊無線網路六
- 滲透測試學習之探測和攻擊無線網路八
- 滲透測試學習之探測和攻擊無線網路九
- 滲透測試學習之探測和攻擊無線網路十
- 滲透測試學習之探測和攻擊無線網路十一
- 滲透測試學習之探測和攻擊無線網路一
- 滲透測試學習之探測和攻擊無線網路二
- 滲透測試學習之探測和攻擊無線網路三
- 滲透測試學習之探測和攻擊無線網路四
- 無線滲透總結
- 【網路安全入門】滲透測試常用工具有哪些?
- 滲透測試對app安全測試實戰過程分享APP
- Linux滲透測試Linux
- 滲透測試-資訊收集
- 滲透測試報告測試報告