第三章 繞過(guò) WLAN 身份驗(yàn)證
作者:Vivek Ramachandran, Cameron Buchanan
譯者:飛龍
協(xié)議:CC BY-NC-SA 4.0
簡(jiǎn)介
安全的錯(cuò)覺(jué)比不安全更加糟糕。
-- 佚名
安全的錯(cuò)覺(jué)比不安全更加糟糕,因?yàn)槟悴豢赡転槊鎸?duì)被黑的可能性做準(zhǔn)備。
WLAN 的身份驗(yàn)證模式可能很弱,可以被破解和繞過(guò)。這一章中,我們會(huì)查看一些 WLAN 中所使用的基本的身份驗(yàn)證模式,以及學(xué)習(xí)如何破解它們。
3.1 隱藏的 SSID
在默認(rèn)的配置模式下,所有接入點(diǎn)都在信標(biāo)幀中發(fā)送它們的 SSID。這讓附近的客戶(hù)端能夠輕易發(fā)現(xiàn)它們。隱藏 SSID 是個(gè)配置項(xiàng),其中接入點(diǎn)并不在信標(biāo)幀中廣播它的 SSID。因此,只有知道接入點(diǎn) SSID 的客戶(hù)端可以連接它。
不幸的是,這個(gè)方法不能提供可靠的安全,但是網(wǎng)絡(luò)管理員認(rèn)為它很安全。隱藏 SSID 不應(yīng)該被看作安全手段。我們現(xiàn)在來(lái)看看如何發(fā)現(xiàn)隱藏的 SSID。
實(shí)踐時(shí)間 -- 發(fā)現(xiàn)隱藏的 SSID
執(zhí)行下列指南以開(kāi)始:
-
使用 Wireshark,如果我們監(jiān)控
Wireless Lab網(wǎng)絡(luò)中的信標(biāo)幀信標(biāo)幀,我們就能夠以純文本查看 SSID。你應(yīng)該能看到信標(biāo)真,像這樣: -
配置你的接入點(diǎn)來(lái)隱藏
Wireless Lab網(wǎng)絡(luò)的 SSID。這個(gè)配置項(xiàng)在不同接入點(diǎn)中可能不同。這里,我需要檢查Visibility Status選項(xiàng)的Invisible選項(xiàng),像這樣: -
現(xiàn)在如果你查看 Wireshark 的記錄,你會(huì)發(fā)現(xiàn)
Wireless Lab的 SSID從信標(biāo)幀中消失了。這是隱藏 SSID 所做的事情: -
為了繞過(guò)信標(biāo)幀,我們首先使用被動(dòng)技巧來(lái)等待正??蛻?hù)端連接到接入點(diǎn)。這會(huì)生成探測(cè)請(qǐng)求和響應(yīng),它包含網(wǎng)絡(luò)的 SSID,從而揭示它的存在。
-
作為替代,你可以使用
aireplay-ng來(lái)發(fā)送接觸驗(yàn)證封包給所有代表Wireless Lab接入點(diǎn)的路由器,通過(guò)輸入:aireplay-ng -0 5 -a <mac> --ignore-negative mon0,其中<mac>是路由器的 MAC 地址。-0選項(xiàng)用于選則接觸驗(yàn)證攻擊,5是要發(fā)送的封包數(shù)量。最后,-a指定了所定位的接入點(diǎn)的 MAC 地址。 -
接觸驗(yàn)證的過(guò)程會(huì)強(qiáng)迫所有正??蛻?hù)端斷開(kāi)連接并重連。為接觸驗(yàn)證的封包添加個(gè)過(guò)濾來(lái)單獨(dú)查看它們是個(gè)好主意。
-
來(lái)自接入點(diǎn)的探測(cè)響應(yīng)最后會(huì)發(fā)現(xiàn) SSID。這些封包會(huì)出現(xiàn)在 Wireshark 中。一旦正常客戶(hù)端連接回來(lái)了,我們就可以通過(guò)探針的請(qǐng)求和響應(yīng)幀來(lái)查看隱藏的 SSID??梢允褂眠^(guò)濾器
(wlan.bssid == 00:21:91:d2:8e:25) && !(wlan.fc.type_subtype == 0x08)來(lái)監(jiān)控所有發(fā)往或來(lái)自接入點(diǎn)的非信標(biāo)封包。&&符號(hào)代表邏輯 AND 操作符,!符號(hào)代表邏輯 NOT 操作符:
剛剛發(fā)生了什么?
即使 SSID 隱藏而且不廣播,當(dāng)正常的客戶(hù)端嘗試連接到接入點(diǎn)時(shí),它們就交換了探測(cè)請(qǐng)求和響應(yīng)的封包。這些封包包含接入點(diǎn)的 SSID。由于這些封包沒(méi)有加密,它們可以被非常輕易地嗅探來(lái)發(fā)現(xiàn)SSID 。
我們?cè)谥蟮恼鹿?jié)中會(huì)出于其它目的,例如跟蹤,涉及到探測(cè)請(qǐng)求。
許多情況下,所有客戶(hù)端可能已經(jīng)鏈接到接入點(diǎn),并且在 Wireshark 記錄中沒(méi)有探測(cè)請(qǐng)求或響應(yīng)的封包。這里,我們可以強(qiáng)制客戶(hù)端斷開(kāi)接入點(diǎn)的鏈接,通過(guò)發(fā)送偽造的解除驗(yàn)證封包。這些封包會(huì)強(qiáng)迫客戶(hù)端重新連接到接入點(diǎn)上,從而獲取 SSID。
試一試 -- 選擇解除驗(yàn)證
在之前的練習(xí)中,我們廣播了解除驗(yàn)證封包來(lái)強(qiáng)制所有無(wú)線(xiàn)客戶(hù)端重新連接。嘗試驗(yàn)證如何使用aireplay-ng工具,選擇性對(duì)某個(gè)客戶(hù)端執(zhí)行它。
要注意,即使我們使用 Wireshark 演示了許多概念,但也可以使用其它工具來(lái)完成攻擊,例如aircrack-ng套件。我們推薦你探索整個(gè) aircrack-NG 套件以及其它位于官網(wǎng)的文檔:http://www.aircrack-ng.org。
3.2 MAC 過(guò)濾器
MAC 過(guò)濾器是個(gè)古老的技巧,用于驗(yàn)證和授權(quán),它們根植于有線(xiàn)世界。不幸的是,它們?cè)跓o(wú)線(xiàn)世界中變得十分糟糕。
最基本的想法就是基于客戶(hù)端的 MAC 地址進(jìn)行驗(yàn)證。MAC 過(guò)濾器是為網(wǎng)絡(luò)接口分配的一段識(shí)別代碼,路由器能夠檢查這個(gè)代碼并將其與允許的 MAC 列表進(jìn)行比較。允許的 MAC 地址列表由網(wǎng)絡(luò)管理員維護(hù),儲(chǔ)存于接入點(diǎn)中。我們現(xiàn)在要看看繞過(guò) MAC 過(guò)濾器有多容易。
實(shí)踐時(shí)間 -- 繞過(guò) MAC 過(guò)濾器
讓我們遵循以下指南來(lái)開(kāi)始:
-
讓我們首先配置我們的接入點(diǎn)來(lái)使用 MAC 過(guò)濾,之后添加受害者筆記本的客戶(hù)端 MAC 地址。我的路由器上的設(shè)置頁(yè)面是這樣:
一旦開(kāi)啟了 MAC 過(guò)濾,只有允許的 MAC 地址能夠成功被接入點(diǎn)驗(yàn)證。如果我們嘗試從不在 MAC 地址白名單中的機(jī)器連接接入點(diǎn),就會(huì)失敗。
-
在這個(gè)場(chǎng)景背后,接入點(diǎn)發(fā)送驗(yàn)證失敗的消息給客戶(hù)端。封包記錄像這樣:
-
為了繞過(guò) MAC 過(guò)濾器,我們可以使用
airodump-ng來(lái)尋找連接到接入點(diǎn)的客戶(hù)端 MAC 地址。我們可以通過(guò)輸入airodumpng -c 11 -a --bssid <mac> mon0命令。通過(guò)指定bssid命令,我們只監(jiān)控接入點(diǎn),這是我們所感興趣的。-c 11命令將頻道設(shè)置為接入點(diǎn)所在的11。-a命令確保在airodump-NG輸出的客戶(hù)端部分中,只展示相關(guān)客戶(hù)端,以及到接入點(diǎn)的連接。這會(huì)向我們展示所有和接入點(diǎn)相關(guān)的客戶(hù)端 MAC 地址。 -
一旦我們找到了白名單中的客戶(hù)端 MAC 地址,我們可以使用
macchanger工具來(lái)修改客戶(hù)端的 MAC 地址,Kali自帶這個(gè)工具。你可以使用macchanger –m <mac> wlan0命令來(lái)完成。你使用-m命令指定的 MAC 地址就是wlan0接口的新 MAC 地址。 你可以看到,將 MAC 地址修改為白名單客戶(hù)端之后,我們現(xiàn)在能夠連接接入點(diǎn)了。
剛剛發(fā)生了什么?
我們使用airodump-ng監(jiān)控了空氣,找到了連接到無(wú)線(xiàn)網(wǎng)絡(luò)的正常用戶(hù)的 MAC 地址。之后我們可以使用macchanger工具來(lái)修改無(wú)線(xiàn)網(wǎng)卡的 MAC 地址,與客戶(hù)端保持一致。這會(huì)欺騙接入點(diǎn),使其相信我們是正常耳朵客戶(hù)端,它會(huì)允許我們?cè)L問(wèn)它的無(wú)線(xiàn)網(wǎng)絡(luò)。
我們鼓勵(lì)你探索airodump-NG工具的不同選項(xiàng),通過(guò)訪(fǎng)問(wèn)官網(wǎng)的文檔:http://www.aircrack-ng.org/doku. php?id=airodump-ng。
3.3 開(kāi)放驗(yàn)證
術(shù)語(yǔ)“開(kāi)放驗(yàn)證”是個(gè)誤解,因?yàn)樗鼘?shí)際上不提供任何驗(yàn)證。當(dāng)接入點(diǎn)配置為使用開(kāi)放驗(yàn)證的時(shí)候,所有連接它的客戶(hù)端都可以成功驗(yàn)證。
我們現(xiàn)在使用開(kāi)放驗(yàn)證來(lái)獲得驗(yàn)證并連接到接入點(diǎn)。
實(shí)踐時(shí)間 -- 繞過(guò)開(kāi)放驗(yàn)證
讓我們現(xiàn)在看看如何繞過(guò)開(kāi)放驗(yàn)證。
-
我們首先將我們的接入點(diǎn)
Wireless Lab設(shè)置為開(kāi)放驗(yàn)證。在我的接入點(diǎn)中,這可以通過(guò)將Security Mode設(shè)為Disable Security來(lái)輕易完成。 我們之后使用
iwconfig wlan0 essid Wireless Lab命令來(lái)連接到這個(gè)接入點(diǎn),之后驗(yàn)證我們到接入點(diǎn)的連接是否成功。要注意我們沒(méi)有提供任何用戶(hù)名/密碼來(lái)通過(guò)開(kāi)放驗(yàn)證。
剛剛發(fā)生了什么?
這可能是目前為止最簡(jiǎn)單的練習(xí)了。你可以看到,在連接到開(kāi)放驗(yàn)證網(wǎng)絡(luò)和連接到接入點(diǎn)時(shí)沒(méi)有任何障礙。
3.4 共享密鑰驗(yàn)證
共享密鑰驗(yàn)證使用例如 WEP 的共享密鑰來(lái)驗(yàn)證客戶(hù)端。信息的交換展示在這張圖中:

無(wú)線(xiàn)客戶(hù)端發(fā)送驗(yàn)證請(qǐng)求給接入點(diǎn),它會(huì)回復(fù)一個(gè) challenge。現(xiàn)在客戶(hù)端需要使用共享密鑰加密這個(gè) challenge,并發(fā)送ui接入點(diǎn),接入點(diǎn)解密它來(lái)檢查是否它可以恢復(fù)原始的 challenge 文本。如果成功了,客戶(hù)端就驗(yàn)證成功,如果沒(méi)有,它會(huì)發(fā)送驗(yàn)證失敗的信息。
這里的安全問(wèn)題是,攻擊者可以被動(dòng)監(jiān)聽(tīng)整個(gè)通信,通過(guò)嗅探空氣來(lái)訪(fǎng)問(wèn) challenge 的純文本和加密文本。他可以使用 XOR 操作來(lái)獲取密鑰流。密鑰流可以用于加密任何由接入點(diǎn)發(fā)送的未來(lái)的 challenge,而不需要知道真實(shí)的密鑰。
這種共享驗(yàn)證的常見(jiàn)形式就是 WEP,或者無(wú)線(xiàn)等效協(xié)議。它易于破解,并且由數(shù)不清的工具用于使破解 WEP 網(wǎng)絡(luò)變得容易。
這個(gè)練習(xí)中,我們會(huì)了解如何嗅探空氣來(lái)獲取 challenge 或者加密后的 challenge,獲取密鑰流,使用它來(lái)驗(yàn)證接入點(diǎn),而不需要共享密鑰。
實(shí)踐時(shí)間 -- 繞過(guò)共享驗(yàn)證
繞過(guò)共享驗(yàn)證比上一個(gè)練習(xí)更加困難,所以仔細(xì)遵循下列步驟:
-
讓我們首先為我們的
Wireless Lab網(wǎng)絡(luò)建立共享驗(yàn)證。通過(guò)將安全模式設(shè)置為 WEP ,將驗(yàn)證設(shè)置為Shared Key,我們已經(jīng)在我的接入點(diǎn)上完成了設(shè)置。 讓我們現(xiàn)在將正常的客戶(hù)端連接到該網(wǎng)絡(luò),使用我們?cè)诘谝徊皆O(shè)置的共享密鑰。
-
為了繞過(guò)共享密鑰驗(yàn)證,我們首先需要嗅探接入點(diǎn)和客戶(hù)端之間的封包。但是,我們也需要記錄整個(gè)共享密鑰的交換。為了完成它,我們使用
airodump-ng工具的airodump-ng mon0 -c 11 --bssid <mac> -w keystream命令。-w選項(xiàng)在這里是新增的,讓 Airodump-NG 在keystream為前綴的文件中儲(chǔ)存信息。順便,在不同文件中儲(chǔ)存不同的封包捕獲的會(huì)話(huà)是個(gè)好主意。這允許你在很長(zhǎng)時(shí)間之后分析它們。 我們可以等待正??蛻?hù)端連接到接入點(diǎn),或者使用之前用過(guò)的解除驗(yàn)證的技術(shù)強(qiáng)迫重新連接。一旦客戶(hù)端連接并且工項(xiàng)密鑰驗(yàn)證獲得成功,
airodump-ng就會(huì)通過(guò)嗅探空氣自動(dòng)捕獲這個(gè)改變。當(dāng)AUTH列出現(xiàn)了WEP,就說(shuō)明捕獲成功。捕獲到的密鑰流儲(chǔ)存在當(dāng)前目錄
keystream為前綴的文件中。我這里的文件名稱(chēng)是keystream-01-00-2191-D2-8E-25.xor。-
為了偽造共享密鑰驗(yàn)證,我們使用
aireplay-ng工具。我們執(zhí)行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命令。這個(gè)aireplay-ng的命令使用我們之前獲得的密鑰流,并嘗試驗(yàn)證 SSID 為Wireless Lab,MAC 地址為address 00:21:91:D2:8E:25的接入點(diǎn)。啟動(dòng) WIreshark,并通過(guò)wlan.addr == AA:AA:AA:AA:AA:AA過(guò)濾器嗅探所有感興趣的封包。我們可以使用 Wireshark 來(lái)驗(yàn)證它。你應(yīng)該能在 Wireshark 的界面上看到記錄,像這樣: -
第一個(gè)封包是驗(yàn)證請(qǐng)求,由
aireplay-ng工具發(fā)給接入點(diǎn): -
第二個(gè)封包由接入點(diǎn)發(fā)給客戶(hù)端的 challenge 文本組成,像這樣:
-
第三個(gè)封包中,這個(gè)工具向接入點(diǎn)發(fā)送了加密的 challenge。
-
由于
aireplay-ng工具將導(dǎo)出的密鑰流用于江米,驗(yàn)證會(huì)成功,接入點(diǎn)會(huì)在第四個(gè)封包中發(fā)送成功消息。 -
在驗(yàn)證成功過(guò)之后,這個(gè)工具偽造了接入點(diǎn)的關(guān)聯(lián),像這樣:
-
如果你在你的接入點(diǎn)管理界面中的無(wú)線(xiàn)日志中查看,你會(huì)看到 MAC 地址為
AA:AA:AA:AA:AA:AA的客戶(hù)端建立了連接。
剛剛發(fā)生了什么?
我們成功從共享驗(yàn)證交換中導(dǎo)出了密鑰流,并且使用它來(lái)偽造接入點(diǎn)的驗(yàn)證。
試一試 -- 填滿(mǎn)接入點(diǎn)的表格
接入點(diǎn)擁有最大客戶(hù)端數(shù)量,超過(guò)之后它們就會(huì)拒絕連接。通過(guò)為aireplay-ng編寫(xiě)一個(gè)小型的包裝器,我們就可以自動(dòng)發(fā)送數(shù)百個(gè)連接請(qǐng)求,從隨機(jī)的 MAC 地址發(fā)往接入點(diǎn)。這會(huì)填滿(mǎn)路由器的內(nèi)部表格,一旦達(dá)到了最大客戶(hù)端數(shù)量,接入點(diǎn)會(huì)停止接受新的連接。這通常叫做拒絕服務(wù)(DoS)工具,可以強(qiáng)制路由器重啟或使其失去功能。這也可以導(dǎo)致所有無(wú)線(xiàn)客戶(hù)端失去連接以及不能使用授權(quán)后的網(wǎng)絡(luò)。
小測(cè)驗(yàn) -- WLAN 驗(yàn)證
Q1 如何強(qiáng)迫無(wú)線(xiàn)客戶(hù)端重新連接到接入點(diǎn)?
- 發(fā)送解除驗(yàn)證的封包
- 重啟客戶(hù)端
- 重啟接入點(diǎn)
- 以上全部
Q2 開(kāi)放驗(yàn)證是干什么的?
- 提供了適當(dāng)?shù)陌踩?/li>
- 不提供任何阿暖
- 需要使用加密
- 以上都不是
Q3 如何破解共享密鑰驗(yàn)證?
- 從封包中導(dǎo)出密鑰流
- 導(dǎo)出加密密鑰
- 向接入點(diǎn)發(fā)送解除驗(yàn)證的封包
- 重啟接入點(diǎn)
總結(jié)
這一章中,我們了解了 WLAN 驗(yàn)證。隱藏 SSID 是“隱藏式安全”的策略,很容易被攻破。MAC 地址過(guò)濾器不能夠提供任何安全,因?yàn)?MAC 地址可以從無(wú)線(xiàn)封包中嗅探,而 MAC 地址在封包中毫無(wú)加密。開(kāi)放驗(yàn)證不提供任何實(shí)際的驗(yàn)證。共享密鑰驗(yàn)證的破解有些麻煩,但是,使用了正確的工具,我們可以導(dǎo)出和儲(chǔ)存密鑰流,我們可以使用它來(lái)回應(yīng)之后由接入點(diǎn)發(fā)送的所有 challenge。最后我們可以獲得驗(yàn)證而不需要知道真實(shí)的密鑰。
下一章中,我們會(huì)看一看 WLAN 加密機(jī)制的不同 -- WEP,WPA 和 WPA2 -- 并看一看其中的不安全性。




















