無線網絡設備的WPS 功能
本章介紹一種比較特殊的攻擊無線WPA加密的方式,即利用無線網絡設備的WPS 功能。
1 關於WPS
WPS(Wi-Fi Protected Setup,Wi-Fi保護設置)是由Wi-Fi聯盟(http://www.wi-fi.org/) 組織實施的認證項目,主要致力於簡化無線網絡的安全加密設置。
在傳統方式下,用戶新建一個無線網絡時,必須在接入點手動設置網絡名( SSID)和 安全密鑰,然後在客戶端驗證密鑰以阻止“不速之客”的闖入。Wi-Fi Protected Setup能幫 助用戶自動設置網絡名( SSID)、配置最高級別的WPA2安全密鑰,具備這一功能的無線 產品往往在機身上設計一個功能鍵,稱為WPS按鈕,用戶只需輕輕按下該按鈕或輸入PIN 碼,再經過兩三步簡單操作即可完成無線加密設置,同時在客戶端和路由器之間建立一個 安全的連接。
用戶可在產品包裝上尋找Wi-Fi PROTECTED SETUP的標識,以確保所購產品 具備WPS功能。具備WPS功能的無線產品都會在其機體外殼上注明WPS標識,如 圖11-1所示。
2 WPS的基本設置
由於元線路由器的品牌和型號不同,下述步驟將稍有偏差。
@運用配置程序選擇“連接到帶有WPS的無線網絡”。
@個別無線設備需要按住路由器上的WPS按鈕,或者用其他計算機登錄到路由器頁面,如圖11-2所示,在有關頁面選擇連接計算機。
@在無線網卡配置工具上選擇PBC連接形式,或者在無線網卡上按圖11-3中的WPS按鍵。
@等待數秒鐘,連接成功。
整個流程與TCP/IP的三次握手協議類似,看起來只有一呼一應兩個聯系,但是因為配 置了120秒超時的限定,所以實際上也是一個三次握手的流程。WPS完成的工作只是一個 輸入超長密鑰的流程,但因為操作的便利以及純人工管控,使得不太容易被運用攻擊。
圖11-2 圖11-3
對於市面上的絕大多數n系列無線路由器來說,都能非常便利地運用WPS功能,並且 建立連接的時間不超過20秒。對一個初級用戶來說,只要按兩次按鍵就可以建立超長位數 的WPA2加密,無疑是一項非常有吸引力的功能。不過需要特別注意的是,使用WPS的前 提是使用無線網卡自帶的管理配置程序,不能使用Windows自帶的無線管理配置服務。
掃描WPS狀態
1 掃描工具介紹
目前專門支持WPS掃描的工具並不多,不過由於WPS相關標准的公開,各大廠商在各 自的無線網卡產品配套工具中,都內置了WPS掃描及總動配置功能。這裡介紹兩款工作在 Linux下使用python編寫的小工具,分別為wpscan.py和wpspy.py。其中,wpscan.py用於 掃描開啟WPS功能的無線網絡設備,wpspy.py則用來確認無線網絡設備當前WPS狀態。此 工具套裝可以到http://bogpack.blogbus.com上下載。
安裝很簡單,將wps_tools.tar.gz下載到本地,然後使用tar命令解壓縮,會看到圖11-4 歷示的內容。該壓縮包包含兩個文件,分別為wpscan.py和wpspy.py。
2掃描開啟WPS功能的無線設備
工具安裝完畢,即可開始具體的WPS掃描,具體步驟如下:
設置無線網卡為監聽模式。
和之前最基本的坡解過程一樣,在Linux下需要先行使用Aircrack-ng工具套裝中的 airmon-ng工具將無線網卡設置為監聽模式。注:若覺得安裝Aircrack-ng工具套裝很麻煩, 可以考慮直接使用BackTrack4 Linux。具體命令如下:
其中,start後跟具體的無線網卡名稱,此處為wlan0,載入後的監聽網卡ID為 mon0。
當前采用Ralink 2573芯片的無線網卡已被激活為Monitor監聽模式,之後的程序將調 用名為mon0的無線網卡,如圖11-5所示。
圖11-5
掃描開啟WPS功能的無線設備。
掃描開啟WPS功能的無線路由器,具體命令如下:
其中,-1後跟無線網卡名稱,這裡是mon0。 按【Enterl鍵後稍等片刻,wpscan.py可以將周圍能夠搜索到的開啟WPS的無線路由 器全部列舉出來。如圖11-6所示,掃描出了一款開啟WPS的無線路由器,其SSID為 ZerOne Lab.其具體型號未能顯示,但其芯片組為Ralink。
圖11-6
沒有顯示出產品具體型號也是正常的,因為並不是所有的廠商都會在WPS中加入廠商 的詳細信息,這也是出於安全的考慮。不過一些大的廠商都會在WPS中加入一些信息,比 如在圖11-7中的Model Name處,就識別出Belkin的型號為F5D7230-4的無線路由器,甚 至可以顯示出具體的型號為v9。這也就導致了信息的暴露,所以針對WPS的掃描也是有效 探測無線設備的方法之一。
圖11-7
監測WPS狀態。
在獲知了存在開啟WPS功能的無線設備後,即可對其進行監控,代碼如下:
參數解釋:
●-i:後跟無線網卡,這裡即為mon0。
●-e:後跟SSID,若需要對某指定AP進行監測,可以使用此項,但並不是必需的。
按IEnterl鍵後即可看到圖11-8所示的內容,監測到SSID為ZerOne Lab的無線路由 器。當前WPS功能狀態為已配置,即WPSState處顯示為Configured。而在WPSPasswordID 處顯示為PushButton,即要求客戶端按無線網卡上的PBC按鍵進行連接。
若WPS功能未被配置,則會幽現圖11-9所示的內容,在WPSState處顯示為Not Configured。
圖11-8 圖11-9
在WPS的狀態改變過程中,使用wpspy.py監測的顯示也在不斷變化,這將有助於攻擊 者掌握當前的WPS部署情況。如圖11-10所示,兩個不同的提示表示當前WPS正處於調試 配置過程中,當出現WPSPasswordID:PushButton時,將是最利於後續連接的時刻。
圖11-10
11.3 使用WPS坡解WPA-PSK密鑰
直接進入正題,開始講解如何利用WPS坡解WPA/WPA2密鑰,具體步驟如下:
圓先確認當前網絡中是否存在開啟WPS功能的無線設備。
具體參考本章前面的內容,這裡不再重復。
圓打開無線網卡配置工具。
此時打開無線網卡自帶配置工具,掃描當前存在的無線網絡。如圖11-11所示,可以看 到,之前掃描發現的SSID名為ZerOne的無線網絡信號充足,當前無線網卡處於其信號范 圍內。
需要注意的是,若此時無法接收到之前掃描的目標AP信號,應采用為無線網卡加裝高 增益的天線、增大網卡功率、改變當前接收位置等多種方法來改善。此外,需要額外注