Then Notes 隨筆

Aircrack-ng 破解 WEP 加密 Wi-Fi 密碼

簡介

WEP(Wired Equivalent Privacy),亦稱無線加密協定(Wireless Encryption Protocol),是一種已經被證實非常不安全的加密方式。利用 RC4 加密和初始化向量(initialization vector)的特性,在擷取大量封包後便有機會將金鑰破解。Aircrack-ng 是一款無線網路安全測試工具,支援多種攻擊演算法,可用於破解 WEP 和 WPA/WPA2 密碼。但 WPA/WPA2 的破解其實仰賴於字典攻擊,故筆者就不討論了。

實驗環境

AP 設定

登入 AP 後台後,故意將安全性設定為 WEP。日常使用中我們務必要設定為 WPA/WPA2 才能有足夠的安全性。

wep

WEP 的金鑰分為 64-bit 與 128-bit 兩種,為了便於破解,我這裡選用 64-bit 來實驗。64-bit 的金鑰長度為 5 bytes 的 ASCII 字元;128-bit 的金鑰長度則為 10 bytes,或者也可以分別設定成 16 進位數值。此實驗中,我將密碼設定成 ASCII 的 21218,也就是 16 進位的 0x32 0x31 0x32 0x31 0x38,這對筆者來說是一串特別的數字 XD(雖然這個密碼根本沒複雜度可言,只是我喜歡而已,還是要實驗一下的嘛!)

金鑰長度WEP 64WEP 128
16 進位10 個 (0-9, A-F)26 個 (0-9, A-F)
ASCII5 個字元13 個字元

之所以 64-bit 的金鑰只有 5 bytes = 40 bits 的原因是另外 24 bits 被用於當作初始化向量(initialization vector)。

網卡啟用監聽模式(Monitor Mode)

開啟 Terminal 後,輸入:

$ iwconfig

iwconfig

可以看到目前筆者的網卡名稱是 wlp2s0Mode: Managed 為被管理模式(普通模式),現在需要將它設定為監聽模式,才有辦法進行後續封包的捕捉:

$ sudo airmon-ng start wlp2s0

airmon-ng

會發現 airmon-ng 提示有兩個 process 可能造成衝突,可以執行:

$ sudo airmon-ng check kill

但是這裡看到的是 avahi-daemon,基本上它不會造成影響,所以就沒有對這兩個 process 做處理。

在啟用監聽模式後,網卡的名稱後面會被加上 mon 字樣,也就是說例如筆者原先的網卡名稱是 wlp2s0,啟用後則變成了 wlp2s0mon

無線網路封包擷取

首先,利用 airodump-ng 掃描所有存在的無線網路與其參數、屬性等,wlp2s0mon 須替換成您的網卡名稱:

$ sudo airodump-ng wlp2s0mon

airodump-ng

實驗目標的 AP ESSID 是 TP-Link-WiFi,可以看到加密部分是 WEP,此處要記下 CH(channel)的數值,也就是代表第幾個頻道,我這邊的範例是 9,而 BSSID 所寫的 MAC 位址也要一併記錄下來。

接下來就要正式擷取無線網路的封包,參數 --ivs 代表我只需要蒐集 initialization vector,其餘資料可以不必儲存,-w 指定儲存名稱與位置,-d 則指定目標 AP 的 MAC 位址(前步驟的 BSSID)。

$ sudo airodump-ng --ivs -c9 -w capture -d 10:27:F5:F3:E2:7F wlp2s0mon

封包注入(Packet Injection)

再來,需要使用到 aireplay-ng,這是用來做封包注入(packet injection)的工具

Deauthentication

對客戶端傳送連線中斷訊息,從而使客戶端重新發出授權請求,再擷取其請求的封包,裡面就會有我們破解金鑰所需要的 IVs。

$ sudo aireplay-ng -1 0 -a 10:27:F5:F3:E2:7F wlp2s0mon

aireplay-ng-deauthentication

ARP Request Replay Attack

程式會監聽 ARP 封包,然後將其重新回傳 AP,這就會讓 AP 使用新的 IVs 重傳 ARP 封包。

$ sudo aireplay-ng -3 -b 10:27:F5:F3:E2:7F wlp2s0mon

aireplay-ng-request-replay-attack

破解 WEP 金鑰

回到 airodump-ng 的畫面,當看到 #Data 欄位的數字足夠大時,就可以開始破解 WEP 金鑰。實驗過程中,測試了幾次發現 #Data 差不多要大於 20000 筆會比較穩定,有時只收集 10000 多筆會破解失敗。由於筆者的金鑰只有設成簡單的 5 bytes,若金鑰更長理論上也會需更多時間。

airodump-ng-collected

破解工具是 aircrack,直接讀入剛剛收集的 IVs 檔案,就可以成功破解 WEP 金鑰囉!

$ aircrack-ng capture-01.ivs

aircrack-ng

參考資料