• 熱門專題

KaliLinux無線滲透測試入門指南第二章WLAN和固有的不安全性

作者:  發布日期:2016-11-01 19:52:55
Tag標簽:入門指南  安全性  無線  
  • 第二章 WLAN 和固有的不安全性

    作者:Vivek Ramachandran, Cameron Buchanan

    譯者:飛龍

    協議:CC BY-NC-SA 4.0

    簡介

    建筑越高,地基就要打得越深。

    – 托馬斯·坎佩斯

    沒有什么偉大的東西能在脆弱的基礎上構建。在我們的語境中,固有的不安全性之上不能構建出安全。

    WLAN 在設計上擁有特定的不安全性,它們可被輕易利用,例如,通過封包注入,以及嗅探(能夠在很遠處進行)。我們會在這一章利用這些缺陷。

    2.1 回顧 WLAN 幀

    由于這本書處理無線方面的安全,我們假設你已經對協議和封包的頭部有了基本的了解。沒有的話,或者你離開無線有很長時間了,現在是個好機會來回顧這個話題。

    讓我們現在快速復習一些 WLAN 的基本概念,大多數你可能已經知道了。在 WLAN 中,通信以幀的方式進行,一幀會擁有下列頭部結構:

    Frame Control字段本身擁有更復雜的結構:

    類型字段定義了下列三種 WLAN 幀:

    管理幀:管理幀負責維護接入點和無線客戶端之間的通信。管理幀擁有下列子類型:

    驗證 解除驗證 關聯請求 關聯響應 重關聯請求 重關聯響應 解除關聯 信標 探測請求 探測響應

    控制幀:控制幀負責確保數據在接入點和無線客戶端之間合理交換?刂茙瑩碛邢铝凶宇愋停

    請求發送(RTS) 清除發送(CTS) 確認(ACK)

    數據幀:數據幀攜帶在無線網絡上發送的真實數據。它沒有子類型。

    我們在之后的章節中討論不同攻擊的時候,會討論這些幀中每一種的安全隱患。

    我們現在看一看如何使用 Wireshark 嗅探無線網絡上的這些幀。也有其他工具 – 例如 Airodump-NG,Tcpdump,或者 Tshark – 你同樣可以用于嗅探。我們在這本書中多數情況會使用 Wireshark,但是我們推薦你探索其它工具。第一步是創建監控模式的接口。這會為你的適配器創建接口,使我們可以讀取空域中的所有無線幀,無論它們的目標是不是我們。在有線的世界中,這通常叫做混合模式。

    實戰時間 – 創建監控模式的接口

    讓我們現在將無線網卡設為監控模式。

    遵循下列指南來開始:

    啟動 Kali 并使適配器保持連接。一旦你打開了控制臺,輸入iwconfig并確保網卡被檢測到,驅動被正確加載。

    使用ifconfig wlan1 up命令啟動網卡(其中wlan1是你的適配器)。通過運行ifconfig wlan1驗證網卡是否正在運行。你應該在輸出的第二行看到單詞UP,像這樣:

    為了將網卡設為監控模式,我們使用airmon-ng,它在 Kali 中自帶。首先執行airmon-ng命令來確認它檢測到了可用的網卡。你應該能看到輸出中列出的wlan1接口:

    現在輸入airmon-ng start wlan1命令來創建對應wlan1設備的監控模式接口。新的監控模式接口名為mon0。(你可以再次不帶參數使用airmon-ng來驗證。)

    同樣,運行ifconfig mon0會展示叫做mon0的新接口。

    剛剛發生了什么?

    我們成功創建了叫做mon0的監控模式接口。這個接口用于嗅探空域中的無線封包。這個接口已經在我們的無線適配器中創建了。

    試一試 – 創建多個監控模式接口

    可以創建多個監控模式的接口,使用相同的物理網卡。使用 airmon-ng 工具來看看如何完成。

    太棒了!我們擁有了監控模式接口,等待從空域中讀取一些封包。所以讓我們開始吧。

    下一個練習中,我們會使用 Wireshark 和剛剛創建的mon0監控器模式接口,從空域中嗅探封包。

    實戰時間 – 嗅探無線封包

    遵循下列指南來開始:

    啟動我們在第一章中配置好的接入點Wireless Lab。

    通過在控制臺中鍵入Wireshark &來啟動 Wireshark,一旦 Wireshark 運行,訪問Capture | Interfaces。

    通過點擊Start按鈕從mon0接口選擇封包捕獲,像截圖中那樣。Wireshark 會開始捕獲,現在你可以在 Wireshark 窗口中看到封包。

    這些就是你的無線適配器從空域中嗅探到的封包。為了查看任何封包,在上面的窗口中選擇它,中間的窗口中會展示整個封包:

    點擊IEEE 802.11 Wireless LAN management frame前面的三角形來展開并查看詳細信息。

    觀察封包中不同的頭部字段,并將它們和之前了解的 WLAN 幀類型以及子類型關聯。

    剛剛發生了什么?

    我們剛剛從空域中嗅探了第一組封包。我們啟動了 Wireshark,它使用我們之前創建的監控模式接口mon0。通過查看 Wireshark 的底部區域,你應該注意到封包捕獲的速度以及目前為止捕獲的封包數量。

    試一試 – 發現不同設備

    Wireshark 的記錄有時會令人生畏,即使在構成合理的無線網絡中,你也會嗅探到數千個封包。所以深入到我們感興趣的封包十分重要。這可以通過使用 Wireshark 中的過濾器來完成。探索如何使用這些過濾器來識別記錄中唯一的無線設備 – 接入點和無線客戶端。

    如果你不能做到它,不要著急,它是我們下一個要學的東西。

    實戰時間 – 查看管理、控制和數據幀

    現在我們學習如何使用 WIreshark 中的過濾器來查看管理、控制和數據幀。

    請逐步遵循下列指南:

    為了查看捕獲的封包中的所有管理幀,在過濾器窗口中輸入過濾器wlan.fc.type,并點擊Apply。如果你打算防止封包向下滾動過快,你可以停止封包捕獲。

    為了查看控制幀,將過濾器表達式修改為wlan.fc.type == 1。

    為了查看數據幀,將過濾器表達式修改為wlan.fc.type == 2。

    為了額外選擇子類型,使用wlan.fc.subtype過濾器。例如,要查看所有管理幀中的信標幀,使用下列過濾器:

    (wlan.fc.type == 0) && (wlan.fc.subtype == 8)

    作為替代,你可以在中間的窗口中右擊任何頭部字段,之后選擇Apply as Filter " Selected來使用過濾器。

    這會自動為你在Filter字段中添加正確的過濾器表達式。

    剛剛發生了什么?

    我們剛剛學習了如何在 Wireshark 中,使用多種過濾器表達式來過濾封包。這有助于監控來自我們感興趣的設備的所選封包,而不是嘗試分析空域中的所有封包。

    同樣,我們也可以以純文本查看管理、控制和數據幀的封包頭部,它們并沒有加密。任何可以嗅探封包的人都可以閱讀這些頭部。要注意,黑客也可能修改任何這些封包并重新發送它們。協議并不能防止完整性或重放攻擊,這非常易于做到。我們會在之后的章節中看到一些這類攻擊。

    試一試 – 玩轉過濾器

    你可以查閱 Wireshark 的手冊來了解更多可用的過濾器表達式,以及如何使用。嘗試玩轉多種過濾器組合,直到你對于深入到任何細節層級都擁有自信,即使在很多封包記錄中。

    下個練習中,我們會勘察如何嗅探我們的接入點和無線客戶端之間傳輸的數
    據封包。

    實戰時間 – 嗅探我們網絡上的封包

    這個練習中,我們會了解如何嗅探指定無線網絡上的封包。出于簡單性的原因,我們會查看任何沒有加密的封包。

    遵循下列指南來開始:

    啟動我們命名為Wireless Lab的無線接入點。讓我們將其配置為不加密。

    我們首先需要尋找Wireless Lab運行在哪個頻道上。為了完成它,打開終端并執行airodump-ng --bssid <mac> mon0,其中<mac>是接入點的 MAC 地址。運行程序,不就你就會看到你的接入點顯示在屏幕上,并帶有所運行的頻道。

    我們可以從之前的截圖中看到,我們的接入點Wireless Lab運行在頻道 11 上。要注意這可能和你的接入點不同。

    為了嗅探發往和來自這個接入點的封包,我們需要將無線網卡鎖定在同一頻道上,也就是頻道 11。為了實現它,執行iwconfig mon0 channel 11之后執行iwconfig mon0來驗證。你會看到輸出中的Frequency: 2.462 GHz。這相當于頻道 11。

    現在啟動 Wireshark,開始嗅探mon0接口。在 WIreshark 開始嗅探之后,在過濾器區域輸入wlan.bssid == <mac>來使用接入點 BSSID 的過濾器,像下面的截圖這樣。為你的接入點填寫合適的 MAC 地址。

    為了查看接入點的數據封包,添加下列過濾器:(wlan.bssid == <mac>) && (wlan.fc.type_subtype == 0x20)。在客戶端筆記本打開你的瀏覽器,并輸入接入點管理界面的 URL。我這里,像第一章那樣,它是http://192.168.0.1。這會生成數據封包,WIreshark 會捕獲它。

    封包嗅探允許我們輕易分析未加密的數據。這就是為什么我們需要在無限種使用加密的原因。

    剛剛發生了什么?

    我們剛剛使用 WIreshark 和多種過濾器嗅探了空域中的數據。由于我們的接入點并沒有使用任何加密,我們能夠以純文本看到所有數據。這是重大的安全問題,因為如果使用了類似 WIreshark 的嗅探器,任何在接入點 RF 范圍內的人都可以看到所有封包。

    試一試 – 分析數據封包

    使用 WIreshark 進一步分析數據封包。你會注意 DHCP 請求由客戶端生成,并且如果 DHCP 服務器可用,它會返回地址。之后你會發現 ARP 封包和其它協議的封包。這樣來被動發現無線網絡上的主機十分簡單。能夠看到封包記錄,并重構出無線主機上的應用如何和網絡的其余部分通信十分重要。Wireshark 所提供的有趣的特性之一,就是跟蹤流的能力。這允許你一起查看多個封包,它們是相同連接中的 TCP 數據交換。

    此外,嘗試登陸www.gmail.com和其它流行站點并分析生成的數據流量。

    我們會演示如何向無線網絡中注入封包。

    實戰時間 – 封包注入

    我們使用 aireplay-ng 工具來進行這個練習,它在 Kali 中自帶。

    遵循下列指南來開始:

    為了執行注入測試,首先啟動 Wireshark,并使用過濾器表達式(wlan.bssid == <mac>) && !(wlan.fc.type_subtype == 0x08)。這會確保我們只能看到我們無線網絡的非信標幀。

    現在在終端中執行命令aireplay-ng -9 -e Wireless Lab -a <mac> mon0。

    返回 Wireshark,你會看到屏幕上會顯示大量封包。一些封包已經由aireplay-ng發送,它們是我們發送的,其它的是Wireless Lab接入點用于響應注入的封包。

    剛剛發生了什么?

    我們剛剛使用 aireplay-ng,成功向我們的測試環境網絡注入了封包。要注意我們的網卡將這些任意的封包注入到網絡中,而不需要真正連接到無線接入點Wireless Lab。

    試一試 – 探索 Aireplay-ng 工具

    我們會在之后的章節中詳細了解封包注入,F在請探索一下 Aireplay-ng 工具用于注入封包的其它選項。你可以使用 Wireshark 監控空域來驗證注入是否成功。

    2.2 WLAN 嗅探和注入的重點筆記

    WLAN 通常在三種不同頻率范圍內工作:2.4 GHz,3.6 GHz 和 4.9/5.0 GHz。并不是所有 WIFI 網卡都全部支持這三種范圍和相關的波段。例如,Alfa 網卡只支持 IEEE 802.11b/g。這就是說,這個網卡不能處理 802.11a/n。這里的關鍵是嗅探或注入特定波段的封包。你的 WIFI 網卡需要支持它。

    另一個 WIFI 的有趣方面是,在每個這些波段中,都有多個頻道。要注意你的 WIFI 網卡在每個時間點上只能位于一個頻道。不能將網卡在同一時間調整為多個頻道。這就好比車上的收音機。任何給定時間你只能將其調整為一個可用的頻道。如果你打算聽到其它的東西,你需要修改頻道。WLAN 嗅探的原則相同。這會產生一個很重要的結論 – 我們不能同時嗅探所有頻道,我們只能選擇我們感興趣的頻道。這就是說,如果我們感興趣的接入點的頻道是 1,我們需要將網卡設置為頻道 1。

    雖然我們在上面強調了 WLAN 嗅探,注入的原則也相同。為了向特定頻道注入封包,我們需要將網卡調整為特定頻道。

    讓我們現在做一些練習,設置網卡來制定頻道或進行頻道跳躍,設置規范域以及功率等級,以及其它。

    實戰時間 – 使用適配器做實驗

    仔細遵循以下步驟:

    輸入iwconfig wlan0命令來查看網卡的功能。你可以看到,我們的適配器可以工作在 b、g 和 n 波段中。

    為了將網卡設置為特定頻道,我們使用iwconfig mon0 channel X命令。

    iwconfig命令集并沒有頻道跳躍模式。你可以在它上面編寫簡單的腳本來實現。一個簡單的方式就是帶選項使用 Airodump-NG 來跳躍任何頻道,或者是某個子集,或者使用所選的波段。當我們執行airodump-ng --help的時候,所有這些選項展示在下面。

    剛剛發生了什么?

    我們知道了,無線嗅探和封包注入依賴于硬件的支持。這即是說我們只能處理網卡支持的波段和頻道。此外,無線網卡每次只能位于一個頻道。這說明了我們只能一次嗅探或注入一個頻道。

    試一試 – 嗅探多個頻道。如果你需要同時嗅探多個頻道,你需要多個物理 WIFI 網卡。如果你可以獲得額外的網卡,嘗試同時嗅探多個頻道。

    4.3 無線網絡中規范域的作用

    WIFI 的復雜性到這里并沒有結束。每個國家都有自己的未授權的頻譜分配策略。這規定了允許的功率等級和頻譜的用戶。例如,FCC 規定,如果你在美國使用 WLAN,你就必須遵守這些規定。在一些國家,不遵守相關規定會收到懲罰。

    現在讓我們看看如何尋找默認的規范設置,以及如何按需修改它們。

    實戰時間 – 使用適配器做實驗

    仔細遵循以下步驟:

    重啟的計算機并不要連接到適配器。

    登錄之后,使用tail命令監控內核信息:

    插入適配器,你會看到像這樣的一些東西。這展示了網卡所使用的默認規范設置。

    讓我們假設你在美國。為了將規范域修改為 US,我們在新的終端中輸入下列命令iw reg set US。


    如果命令執行成功,我們會在終端得到這樣的輸出,其中我們正在監控/var/log/messages:

    現在嘗試把網卡設置為頻道 11,它生效了。但是當你嘗試設置為頻道 12 時候,你會得到錯誤。這是因為在美國不能使用頻道 12。

    功率等級也使用相同的原則。US 只允許最大 27 dBm(500 毫瓦)。所以即使我們的適配器的功率為 1 瓦(30 dBm),我們也不能將其設置為最大傳輸功率:

    但是,如果我們在玻利維亞,我們就能夠使用 1 瓦的傳輸功率,因為這里允許。你可以看到,我們將規范域設為玻利維亞 – iw reg set BO – 我們就能將網卡功率設置為 30DMB 或 1 瓦。我們在玻利維亞使用頻道 12,這在美國是禁止的。

    剛剛發生了什么?

    每個國家都有用于未授權無線波段的自己的規范。當我們將規范域設置為特定國家時,我們的網卡會遵循允許的頻道和指定的功率等級。但是,嗅探網卡的規范域,來強制它工作在不允許的頻道上,以及在高于允許值的功率等級上傳輸數據相當容易。

    試一試 – 探索規范域

    查看你可以設置的多種參數,例如頻道、功率、規范域,以及其它。在 Kali 上使用iw命令集。這會讓你深刻了解在不同國家的時候如何配置網卡,以及修改網卡設置。

    小測驗 – WLAN 封包嗅探和注入

    Q1 哪種幀類型負責在 WLAN 中的驗證?

    控制 管理 數據 QoS

    Q2 使用 airmon-mg 在 wlan0 上創建的第二個監控器模式接口的名字是什么?

    mon0 mon1 1mon monb

    Q3 用于在 Wireshark 中查看非信標的過濾器表達式是什么?

    !(wlan.fc.type_subtype == 0x08) wlan.fc.type_subtype == 0x08 (no beacon) Wlan.fc.type == 0x08

    總結

    這一章中,我們對 WLAN 協議進行了一些重要的觀察。

    管理、控制和數據幀是未加密的,所以監控空域的人可以輕易讀取。要注意數據封包載荷可以使用加密來保護,使其更加機密。我們在下一章討論它們。

    我們可以通過將網卡設置為監控模式來嗅探附近的整個空域。

    由于管理和控制幀沒有完整性保護,使用例如 aireplay-ng 的工具通過監控或照舊重放它們來注入封包非常容易。

    未加密的數據封包也可以被修改和重放到網絡中。如果封包加密了,我們仍然可以照舊重放它們,因為 WLAN 設計上并沒有保護封包重放。

    下一章中,我們會看一看用于 WLAN 的不同驗證機制,例如 MAC 過濾和共享驗證,以及其它。并且通過實際的演示來理解多種安全缺陷。

延伸閱讀:

About IT165 - 廣告服務 - 隱私聲明 - 版權申明 - 免責條款 - 網站地圖 - 網友投稿 - 聯系方式
本站內容來自于互聯網,僅供用于網絡技術學習,學習中請遵循相關法律法規
彩乐乐11选5qaq| kyu| uym| ecq| 8wy| gm8| qye| esg| s8g| awo| 9so| sym| 7mi| mc7| qwa| y7g| sqm| 7os| es7| sak| mcq| e8a| sgo| 8uy| mu6| qye| i6y| sgs| 6gs| sk7| mcg| e7g| euy| 7co| 7qe| yw5| usg| k5c| ymw| 66i| ows| 6yc| ck6| mua| y6a| omi| 6oc| 6wk| ek5| qko| o5g| owq| 5kg| oe5| cae| c5m| mui| 5gi| ms6| oc4| qwy| s4m| ouo| 4io| sq4| cau| q4a| omw| o5o| gmw| 5mi| mu3| iy3| ssw| y3g| igi| 3mg| gq4| yme| c4m| mau| 4qe| ka4| syi| y2u| oeu| ygy| 3ic| aq3| kku|