WLAN技術出現之後,“安全”就成為始終伴隨在“無線”這個詞身邊的影子,針對無線網路技術中涉及的安全認證加密協議的攻擊與破解就層出不窮。現在,網際網路上可能有數以百計,甚至以千計的文章介紹關於怎麼攻擊與破解WEP,但有多少人能夠真正地成功攻破WEP的密碼編譯演算法呢?下面筆者來給大家介紹一些關於WEP加密手段的知識,以及就是菜鳥只要按照步驟操作也可成功破解WEP密鑰的方法。當然最終的目的還是為了讓記者做好安全設定對破解更好的進行防範。本系列文章共兩篇,在第一篇裡主要介紹破解WEP的方法,第二篇裡介紹如何設定WLAN的安全設定來進行更好的防範。
一、WEP:無線網路安全最初的保護者
相對於有線網路來說,通過無線區域網路發送和接收資料更容易被竊聽。設計一個完善的無線區域網路系統,加密和認證是需要考慮的兩個必不可少的安全因素。無線區域網路中應用加密和認證技術的最根本目的就是使無線業務能夠達到與有線業務同樣的安全等級。針對這個目標,IEEE802.11標準中採用了WEP(Wired Equivalent Privacy:有線對等保密)協議來設定專門的安全機制,進行業務流的加密和節點的認證。它主要用於無線區域網路中鏈路層資訊資料的保密。WEP採用對稱式加密機理,資料的加密和解密採用相同的密鑰和密碼編譯演算法。WEP 使用加密金鑰(也稱為 WEP 密鑰)加密 802.11 網路上交換的每個資料包的資料部分。啟用加密後,兩個 802.11 裝置要進行通訊,必須具有相同的加密金鑰,並且均配置為使用加密。如果配置一個裝置使用加密而另一個裝置沒有,則即使兩個裝置具有相同的加密金鑰也無法通訊。(一所示)
圖一:WEP加密
WEP加密過程
WEP支援 64 位元和128 位加密,對於 64 位元加密,加密金鑰為 10 個十六進位字元(0-9 和 A-F)或 5 個 ASCII 字元;對於 128 位加密,加密金鑰為 26 個十六進位字元或 13 個 ASCII 字元。64 位元加密有時稱為 40 位加密;128 位加密有時稱為 104 位加密。152 位加密不是標準 WEP 技術,沒有受到用戶端裝置的廣泛支援。WEP依賴通訊雙方共用的密鑰來保護所傳的加密資料幀。其資料的加密過程如下。
1、計算校正和(Check Summing)。
(1)對輸入資料進行完整性校正和計算。
(2)把輸入資料和計算得到的校正和組合起來得到新的加密資料,也稱之為明文,明文作為下一步加密過程的輸入。
2、加密。在這個過程中,將第一步得到的資料明文採用演算法加密。對明文的加密有兩層含義:明文資料的加密,保護未經認證的資料。
(1)將24位的初始化向量和40位的密鑰串連進行校正和計算,得到64位的資料。
(2)將這個64位的資料輸入到虛擬隨機數產生器中,它對初始化向量和密鑰的校正和計算值進行加密計算。
(3)經過校正和計算的明文與虛擬隨機數產生器的輸出密鑰流進行按位異或運算得到加密後的資訊,即密文。
3、傳輸。將初始化向量和密文串接起來,得到要傳輸的加密資料幀,在無線鏈路上傳輸。(二所示)
圖二:WEP加密過程
WEP解密過程
在安全機制中,加密資料幀的解密過程只是加密過程的簡單取反。解密過程如下。
1、恢複初始明文。重新產生密鑰流,將其與接收到的密文資訊進行異或運算,以恢複初始明文資訊。
2、檢驗校正和。接收方根據恢複的明文資訊來檢驗校正和,將恢複的明文資訊分離,重新計算校正和並檢查它是否與接收到的校正和相匹配。這樣可以保證只有正確校正和的資料幀才會被接收方接受。
圖三:WEP解密過程
二、破解WEP密鑰前的準備工作
在以下的兩部分內容內,筆者將逐步地向大家介紹關於怎樣來破解WEP的密鑰的方法。這種方法並不需要什麼特別的硬體裝置,僅僅只需兩台(只有一台也可)帶有無線網卡的筆記本而已,整個攻擊過程所使用的也只是一些共用和自由軟體,並不需什麼相當專業的工具。看懂這篇文章和學會操作的讀者,並不需要你是一名網路專家,不過要基本上熟悉一些網路術語和基本的原理。最少,你應該知道怎樣去ping 另外一台機器以測試網路是否暢通,並會開啟一個Windows的命令提示字元視窗,知道輸入相關命令和瞭解關於Windows網路屬性視窗的相關內容。這就是基本的要求,要不然怎麼可稱之為菜鳥都可學會的方法呢。
1、組建實驗環境
開始之前,我們的第一步就是要組建一個實驗環境,你不可能拿別人的網路來玩你的破解吧,這樣做既違反了法律也是一種不道德的行為噢。搭建一個實驗環境下的無線網路平台,則無線AP是少不了的,另外,三台帶有無線網卡的筆記本(使用有無線網卡的台式機也可以)組成的簡單網路就可滿足要求了。組成的網路拓撲如四所示。
圖四:組建一個實驗環境
在圖四所示的網路中,無線AP的選用,我們使用的是一個Netgear的產品,型號為WGT624v2,它在以後充當被攻擊目標的角色,在以後就稱它為目標AP。在所使用的三台機器中,一台是作為被攻擊目標的用戶端機器,暫且稱之為“Target”;另外兩台筆記本一台執行主動攻擊,促使網路流量的產生,以便足夠多的資料包有比較短的時間內能夠被捕捉到,稱這台機器為“Attack”;剩下的那台筆記本就是用來嗅探並捕捉那些主動攻擊產生的資料包了,則把它稱為“Sniff”。當然,儘管整個的破解過程可以在一台筆記本上完成,但筆者並不推薦這種做法,用僅僅一台筆記本,會使以後的工作變得很麻煩,並且發現使用這種方法的話竊聽程式可能會發生一點小問題。在一個使用率不高的WLAN中,使用主動攻擊比被動探測的機會更大,它可在較短的時間內使WLAN產生更多的資料包從而加快破解WEP的速度。
在這個實驗環境中一定非得要使用筆記本不可,我們當然也能夠使用案頭PC或案頭PC與筆記本混用,不過使用筆記本的話它的便攜性更好,而且對現在的無線PC Card卡有更好的相容性。
Target所使用的無線網卡與晶片無關,只要是基於802.11b,任意廠家的產品都可滿足要求。而Attack與Sniff兩台機器是使用的兩塊基於PRISM晶片的802.11b的無線網卡。儘管我們在以後的操作中中使用的很多工具(如Kismet)都可支援相當多種類的無線網卡,但筆者還是建議使用基於PRISM 2晶片的網卡,因為這種晶片能夠被我們在破解過程所要使用到的所有工具都支援。
無線網卡一般有外置天線與內建天線兩種,如果所購買的無線網卡並沒有內建天線的話,還必須自己再另購天線。不過外置天線的優點就是增益更高,靈敏度更好,可以調節天線的方向從而得到更好的訊號接收;而內建天線是可以更方便地攜帶,缺點是天線方向無法調節。筆者看到有一種移動式外置天線,使用起來是很方便的,在這種移動式天線的底部有幾個橡膠材料的小吸杯,可以把它方便地吸附在筆記本的頂蓋上,如果是在車內使用的話,還可把它牢牢地吸在車空窗玻璃上呢。如五所示。
圖四:移動式天線
2、實驗WLAN的設定
適當地對這個實驗環境進行一下設定是很重要的,因為我們畢竟只想要在這個用來實驗的環境中來完成所有的操作,在下文中描述的攻擊過程中,將會強制終止一個與AP有串連的用戶端。這種攻擊可能會對在這個鄰近地區內的無線使用者造成嚴重損害,為了避免鄰近的AP上的使用者受到附帶的攻擊, 是要保護那些並不屬於實驗WLAN的使用者。如果這個作業環境中位於一個複雜的辦公室、辦公大樓或其他有許多無線網路覆蓋的地區中的話,要嘗試一下這樣的破解操作,請最好等到晚上沒什麼人工作,網路不再繁忙時進行,免得“城門失火,殃及池魚”。
第一步就是串連和設定這個被攻擊的實驗無線區域網路,如前面所述,這個WLAN包含有一個Access Point(無線路由器)和僅僅一個無線用戶端,且這個無線區域網路被我們想要破解的WEP密鑰保護起來了。把目標AP的SSID(System Set ID)設定為“starbucks”,SSID用來區分不同的網路,也稱為網路名稱。無線工作站必須出示正確的SSID,與無線訪問點AP的SSID相同,才能訪問AP;如果出示的SSID與AP的SSID不同,那麼AP將拒絕他通過本服務區上網。可以認為SSID是一個簡單的口令,從而提供口令機制,實現一定的安全性。並在這個WAP上配置一個64位的WEP密鑰來進行保護。
把如下的資訊記錄下來以便以後使用
①AP的MAC地址。它通常會在AP的WEB配置菜單上顯示出來, AP的底部或側面的標籤上也可能記有原生MAC地址。
②AP的SSID。
③AP的無線頻道(Channel)。
④WEP 密鑰。如果無線AP顯示的密鑰像0xFFFFFFFFFF這樣的格式(把設定的值替代F的值),把除0x外的每個字母都記下來。
第二步就是把Target用戶端串連到目標AP上。我們現在需要把這個用戶端串連到目標AP以進行進一步的配置,(以下都是在Windows XP下進行的),按右鍵案頭上的“網路位置”表徵圖,或者通過“開始”菜單,然後單擊“屬性”,雙擊“Wireless Network Connection”,然後開啟五所示的視窗,其中顯示的是有多個可用的無線網路,但如果只有一個無線網路的話,則在該視窗中可能只僅僅顯示剛剛配置的那個名為“starbucks”的AP,雙擊相應的SSID名稱以串連到目標AP。
圖五:串連到目標WLAN
因為AP已開啟了WEP保護,串連時Windows會要求輸入一個密碼(六所示),把剛才設定的的WEP密鑰輸入(當然從記事本或寫字板文檔中粘貼過來也可),稍等一會兒後Windows就會報告已串連到網路上。確認一下是否已真正地串連成功,去ping一個在有線網路電腦來測試一下;或者假如這個實驗WLAN已接連到網際網路上,隨便開啟一個WEB網站看是否能夠串連來加以確認。如果不能成功地ping通已知地址的機器或者打不開正常的WEB網站,則開啟無線網卡的屬性,單擊“支援”按鈕,檢查一下無線網上是否已擷取了一個正確的IP地址,如果沒有能夠擷取正確的IP地址,看看網路中的DHCP伺服器是否已啟用,並檢查無線網卡的TCP/IP屬性是否設定成“自動擷取IP地址”了,如果一切都正常,在這個無線串連中點擊 “修複”按鈕來加以改正。
圖六:輸入WEP密鑰
第三步就是記錄下Target機器的MAC地址。一旦成功串連到網路上,就把被攻擊的Target電腦的MAC地址記錄下來。方法有兩種,一是開啟一個命令提示字元視窗並輸入ipconfig/all命令也可看到這個MAC地址,這個視窗的內容如七所示(無線網卡的MAC地址資訊已高亮度顯示)。
圖七:輸入ipconfig/all命令來發現MAC地址
二是在Windows XP中,可從“無線串連狀態”視窗來得到這個MAC地址,單擊“支援”按鈕,然後單擊“詳細資料”,這個MAC地址就顯示在視窗頂端的右邊(八所示),當然,不同的機器顯示的名稱可能不盡相同,另外的電腦顯示的就可能如“物理地址”這一類的描述資訊了。在這個視窗的資訊,組成MAC地址的字母和數字被短劃線分隔,短劃線的目的只是使這些字元看得更清楚,但實際的MAC地址是沒有這些短劃線的。
圖八:在網路連接詳細資料中顯示的MAC地址
3、筆記本的設定
首先,我們來準備破解WEP密鑰所需要的幾個工具軟體(Kismet、Airodump、Void11、Aireplay 和Aircrack),Kismet:用來掃描整個地區內的WLAN,找到實驗用的目標WLAN,收集相關資料(SSID值、頻道、AP及與之相串連的用戶端的MAC地址等);Airodump:對目標WLAN進行掃描並捕獲其產生的資料包到一個檔案中;Void11:從目標AP中驗證某台電腦,並強制這個用戶端重新串連到到目標AP,以使其一個ARP請求;Aireplay:接受這些ARP請求並回送到目標AP,以一個合法的用戶端身份來截獲這個ARP請求; Aircrack:接受Airodump產生的捕獲檔案並從中提取WEP密鑰。
它們都是公開原始碼的共用或自由軟體,這些所有的工具都可以在一個被稱為 “Auditor Security Collection LIVE CD” 的共用光碟片上找到,這個光碟片是一張可引導系統的光碟片,可以引導一個經過改進過的Kanotix linux,這個Linux版本無需存取硬碟,在通過光碟片啟動時直接安裝到記憶體中就,它啟動後可自動檢測和配置多種無線網卡。在本文使用的Auditor Security Collection LIVE CD是最新版本,版本號碼為auditor-150405-04,為http://new.remote-exploit.org/index.php/Auditor_mirrors,下載的檔案格式是CD映像檔案或.ISO檔案,通過NERO(或其他的燒錄軟體)把它燒錄下來,給Attack和Sniff機器各一張。
首先把無線網卡插入到筆記本中(如果機器內建有無線網卡就最好不過了),再把筆記本設定成從光碟片引導,並把Auditor Security Collection CD放入光碟機中。從Auditor引導菜單中選擇合適的螢幕解析度後,Kanotix Linux會被安裝到記憶體中運行並出現Auditor開始畫面(九所示)。
圖九:Auditor的開始畫面
在這個Auditor系統中,兩個最重要的表徵圖是位於螢幕左下方的Programs和Command Line表徵圖,我們以後的許多操作基本上都是要通過它們來完成的。十所示。
圖十:Program和Command Line的位置
在這裡,開始做其他任何其他的事情之前,先要確認我們機器上的無線網卡能夠通過Auditor的驗證。單擊Command Line表徵圖以開啟一個命令列視窗,然後輸入iwconfig命令,在Auditor顯示出的資訊中,你會看到有關於“Wlan0”的資訊,它是Auditor為基於PRISM晶片的卡確定的一個名稱,如果用來操作攻擊的筆記本的螢幕顯示十一所示的視窗,則表明Auditor已檢測到了無線網卡,現在就可以開始下一步工作了。對於另外一台筆記本,也進行同樣的步驟,重複這一操作。
圖十一:用iwconfig命令檢驗無線網卡
好,準備工作現在基本完成,在本文的下篇裡,我們將開始實際的解決過程。