4. 無線區網監聽環境建置
4.3 無線封包解密/分析實作
硬體平台
1. [筆記型電腦] Acer TravelMate 290 (Intel Centrino 1.5Ghz / 1256MB RAM)。
2. [Wireless 網卡] D-Link DWL-G650 PCMCIA 介面 (H/W version: C3 F/W version: 4.3.1)。
3. [Wireless AP] Buffalo G54 Airstation (支援 802.11b/g) 開啟 WEP 加密,
AP 名稱為 Netlab_Keroro。
軟體平台/工具
1. Ubuntu 7.04 Fiesty Fawn / Linux Kernel v2.6.20-15 2. aircrack-ng v0.6.2
3. kismet v2006.04.R1 4. WireShark v0.99.4 (2) 實驗步驟
1. 將 Wireless 網卡設定為 Monitor mode
利用 aircrack-ng 提供的 airmon-ng 可以將 DWL-G650 設定為 Monitor mode。
DWL-G650 提供之介面名稱有 athX 與 wifiX,請依照以下步驟將 wifiX 衍生出另 一 athX 介面來進入 Monitor mode,原有的 athX 介面並不提供 Monitor mode 切 換。(假設原有介面名稱為 ath0 及 wifi0)
root# airmon-ng start wifi0
wifi0 介面會衍生出另一 ath1 之模擬介面,可將 ath1 切換為 Monitor mode。
root# iwconfig ath1 mode Monitor
此時可在 iwconfig 中看到 ath1 介面模式已切換為 Monitor (Mode: Monitor)。
2. 利用 kismet 偵測空間中有哪些正在活動中的 Wireless Device
kismet 可以解析空間中傳送的 beacon frame,分析其來源然後列於使用介面 中。首先需要更改 kismet 的設定檔,使其利用 DWL-G650 進行擷取封包的工作:
修改/etc/kismet/kismet.conf (line 22):
source=madwifi_ag,wifi0,kismet 存檔後執行 kismet:
root# kismet
kismet 會開始蒐集空間中由各種 Wireless Device 中來往的 Probe request 與 response,作成 SSID 列表,如圖 11 為 kismet 搜尋無線網路的所在,偵測出無線
基地台設備。
圖 11: Kismet 無線網路偵測
當無線網路蒐集到一定的量時,就可以開始進行各種排序(按 s 切換排序),
並選定 SSID 後按 Enter 可以進入該網路察看細節內容,圖 12 為 Netlab_Keroro 之 BSSID、網路形式、Channel、訊號強弱等 AP 資訊。在此我們用 kismet 選定 SSID(或 Channel),使擷取封包的步驟能縮小範圍。
圖 12: Netlab_Keroro AP 資訊
3. 選定 Channel(SSID)進行擷取封包與 WEP 破解
由 kismet 中我們選定 Channel 11 作為無線網路卡監聽的頻道,在此頻道中 我們以擷取 Netlab_Keroro 此 AP 的封包資訊進行 WEP 破解,如圖 13 顯示出頻 道 11 的無線網路。
利用 aircrack-ng 中提供的 airodump-ng 可以鎖定 channel 或 ESSID 作為擷取 封包的 filter,而我們只需要它存下封包中的 IV 值,依以下指令 airodump-ng 即 開始擷取空間中 Channel 11 內的封包資料:
root# airodump-ng --ivs --channel 11 --write wifi0
圖 13: 監聽頻道 11
由於 WEP 破解需要數萬到十萬個封包不等,才能獲得足夠的 IV 進行比對 運算。當擷取的封包數量足夠後可按 Ctrl + c 跳出 airodump,所有的 IV 會儲存 於目前所在目錄下之.ivs 檔案當中。這時可以透過 aircrack-ng 來進行 WEP 的破 解運算,由於預先已知此 Network 的 WEP 屬於 64bit 加密,所以在參數中設定 為 64bit 資料長度,以節省時間。
root# aircrack-ng -a 1 -n 64 -f 2 wifi0.ivs (wifi0.ivs 為擷取之 IV 檔案) aircrack-ng 找出 WEP 加密金鑰,如圖 14 所示(Hex 與 ASCII):
圖 14: Aircrack-Ng WEP 破解
4. 利用 WireShark 抓取封包後進行解析
WireShark(前身為 Ethereal)可以同樣進行封包擷取的動作,但其可以將封包 解構,讓使用者看見封包內的樹狀結構與內文。而 WireShark 在 802.11 協定封包 的解構中也支援使用預先填入的 WEP key 來對已經被 WEP 加密過的封包進行解 析,解析後的 802.11 封包就會有可以展開分析的內文。
首先必須要開啟 WireShark,在 Preference 的 Protocols 中點選 IEEE 802.11 選項,接著利用先前 aircrack-ng 破解出的 WEP 金鑰以 ASCII 的 HEX 原碼方式 輸入。如圖 15 所示,輸入 WEP 金鑰: 57421。
圖 15 : Wireshark wep 記錄金鑰畫面
接著開始使用 DWL-G650 擷取封包資料,當擷取到一定數量後就可以開始 進行分析,WireShark 會自動將收集到的封包以我們輸入的 WEP Key 先行解碼 後再顯示於視窗中,我們就可以清楚的看見這些封包的內文。圖 16 是收集 SMTP(E-mail)一連串通訊過程的封包,可以清楚的看見被解碼的信件內文。
圖 16: SMTP 通訊封包 (3) 補充說明
本次實驗流程著重於利用 aircrack-ng 進行 WEP 金鑰破解,以及破解後的利 用。如果需要在 Win32 環境下進行本次實驗,除了必須將無線網路卡設定成監 聽 模 式 以 外 , 尋 找 Wireless Network 的工作可以由簡單的 NetStumbler 等 War-Driving 工具來進行,而 aircrack-ng 和 WireShark 也已經出現 porting 到 Win32 平台(cygwin)的版本。所以如果位於 Wireless Network 傳輸量大的地區,進行無 線 網 路 的 合 法 / 非 法 監 聽 是 相 當 容 易 的 , 特 別 是 aircrack-ng 已 經具備 破 解 WPA/WPA2 的能力,且即使在資料傳輸量不大的地區,aircrack-ng 中附帶的 aircrack-ptw 工具也能自行對目標 Wireless Network 的 AP 傳送 ARP request,在 短時間內也能獲得相當多的封包數量。
本系統預期能針對 WPA 加密的 PSK 模式(又稱為個人模式)進行金鑰破解,
預先共用密鑰模式(pre-shared key,PSK, 又稱為個人模式) 是設計給負擔不起 802.1X 驗證伺服器的成本和複雜度的家庭和小型公司網路用的,每一個使用者 必須輸入密語來取用網路,而密語可以是 8 到 63 個 ASCII 字元、或是 64 個 16 進位數字 (256 位元)。
WPA-PSK 的 破 解 需 要 透 過 對 AP 的 有 效 介 入 才 能 進 行 , 必 須 使 用 De-authentication 的手法先破壞一個 Wireless NIC 與 Access Point 的連線,再使用 replay 的手法攔截到 Access Point 與 Wireless NIC 之間的 WPA handshake 內容,
一旦 handshake 內容資料被攔截到了以後就可以用來進行 WPA PSK 的破解。理 論上欲進行此種破解手法,監察人員必定會影響到正常使用無線網路的使用者,
所以並不建議實際的大規模使用,且此行動將會有機會被相關的無線網路管理者 所發現。
4.4 通訊協定辨識