很多無線路由器都支持WPS(Wifi Protection Setup)功能,它是一種可以讓用戶無需密碼直接連接Wifi的技術(shù)。本來這種技術(shù)的初衷是讓用戶更加方便的連接網(wǎng)絡(luò),但是因?yàn)樗袊?yán)重的安全漏洞,所以反而讓用戶的網(wǎng)絡(luò)更加不安全。因此在這里推薦大家使用路由器的時(shí)候沒事就把WPS功能關(guān)掉。
準(zhǔn)備工作
開啟WPS功能
因?yàn)橐M(jìn)行滲透測(cè)試,所以首先我先把自己路由器的WPS功能開啟,當(dāng)然測(cè)試結(jié)束之后別忘了關(guān)閉WPS功能。

Kali Linux
使用前一篇文章介紹的方法安裝好Kali虛擬機(jī)或者U盤系統(tǒng),然后就可以準(zhǔn)備開始了。

使用到的工具
當(dāng)然這里使用到的工具并不是只有Kali能用,其他Linux發(fā)行版也可以使用。但是還是推薦Kali,因?yàn)楹芏酀B透測(cè)試工具都是按照安防論文的理論來實(shí)現(xiàn)的,很多都已經(jīng)不再維護(hù)了。而Kali收集了很多尚在維護(hù)的工具分支,如果你使用其他發(fā)行版的話,可能其軟件倉庫中的版本還是原來的舊版本。
本文比較簡(jiǎn)單,涉及到的工具有兩個(gè),reaver和aircrack-ng。
無線網(wǎng)卡
我用的是臺(tái)式機(jī)安裝的Kali虛擬機(jī)系統(tǒng),自然是沒有無線功能的,所以需要一塊無線網(wǎng)卡。值得稱道的是現(xiàn)在Linux驅(qū)動(dòng)非常完善了,我原來買的360無線網(wǎng)卡可以直接驅(qū)動(dòng)成功。
連接方法也十分簡(jiǎn)單,電腦插上無線網(wǎng)卡,然后在VMware軟件右下角找到無線網(wǎng)卡的圖標(biāo),點(diǎn)擊并選擇連接到虛擬機(jī),這樣就大功告成了。整個(gè)系統(tǒng)可能會(huì)卡幾秒鐘,之后就正常了。

連接成功后,在Kali虛擬機(jī)中應(yīng)該可以看到Wifi圖標(biāo)了,用lsusb命令還可以查看到無線網(wǎng)卡的廠商和具體型號(hào),可以看到我的無線網(wǎng)卡具體型號(hào)是MT7601U。

將無線網(wǎng)卡設(shè)置為監(jiān)聽模式
首先輸入sudo airmon-ng命令查看一下當(dāng)前系統(tǒng)中的無線網(wǎng)卡,在Kali中這個(gè)接口名默認(rèn)應(yīng)該是wlan0。

然后輸入下面的命令關(guān)閉可能影響網(wǎng)卡監(jiān)聽的程序,然后開啟監(jiān)聽模式。開啟完畢之后,再次輸入sudo airmon-ng,應(yīng)該就會(huì)看到這次接口名變成了wlan0mon,這樣就說明成功開啟了監(jiān)聽模式,可以進(jìn)行下一步了。
sudo airmon-ng check kill
sudo airmon-ng start wlan0
掃描網(wǎng)絡(luò)
輸入下面的命令開始掃描附近的無線網(wǎng)絡(luò)。
sudo wash -i wlan0mon
稍后應(yīng)該就會(huì)顯示出附近開啟了WPS的所有網(wǎng)絡(luò)了,dBm是信號(hào)大小,值越小說明信號(hào)越強(qiáng),按Ctrl+C即可中斷命令。如果想要查看所有網(wǎng)絡(luò)的話,可以添加-a參數(shù),它會(huì)列出所有網(wǎng)絡(luò)(包括了未開啟WPS功能的網(wǎng)絡(luò))。
這時(shí)候就要記下來網(wǎng)絡(luò)的BSSID(網(wǎng)絡(luò)Mac地址)以及ESSID(網(wǎng)絡(luò)名稱),準(zhǔn)備好下一步的工作了。

嘗試PIN
好了,下面就可以開始正式的工作了,其實(shí)說起來原理也很簡(jiǎn)單,WPS PIN是一個(gè)8位數(shù)字密碼,所以其實(shí)我們要做的就是不斷的嘗試,最終找到這個(gè)PIN??偣残枰獓L試的次數(shù)有一億次,看起來這個(gè)數(shù)字非常大,但是在安全領(lǐng)域,一億次算是一個(gè)非常小的次數(shù)了,很多加密算法要攻破甚至需要全世界所有計(jì)算機(jī)同時(shí)計(jì)算幾百年。
當(dāng)然要搞定WPS的PIN并不需要這么長(zhǎng)時(shí)間,最多10來個(gè)小時(shí)就可以了,平均用時(shí)可能也就4-5個(gè)小時(shí)左右。而且一旦知道了PIN,獲得WIFI密碼僅需要數(shù)秒即可搞定。之后只要PIN碼沒有發(fā)生變化,就算WIFI密碼被修改,也可以很輕松的搞定。
reaver命令行介紹
接下來就要輪到本文的主角登場(chǎng)了,這就是reaver,專門用于破解WPS Wifi網(wǎng)絡(luò)的工具。輸入-h參數(shù)即可查看幫助信息,這里簡(jiǎn)單列出一些我們要使用的參數(shù)。
- -i,開啟了監(jiān)聽模式的網(wǎng)絡(luò)接口名
- -b,要探測(cè)的Wifi的BSSID
- -c,成功破解之后運(yùn)行的命令
- -5,使用5G信道
- -v,顯示具體信息,-vv或者-vvv可以顯示更加詳細(xì)的信息
- -q,僅顯示關(guān)鍵信息
- -p,要使用的PIN
- -d,嘗試PIN之間的間隔時(shí)間(默認(rèn)1)
- -l,如果路由器鎖定嘗試PIN,等待的時(shí)間(默認(rèn)60)
- -g,最大嘗試次數(shù),到達(dá)次數(shù)之后命令會(huì)停止
- -x,10次意外失敗之后的等待時(shí)間(默認(rèn)0)
- -t,接收超時(shí)周期(默認(rèn)10)
- -F,忽略幀校驗(yàn)錯(cuò)誤
詳細(xì)參數(shù)參考reaver的幫助,并不難懂。
開始破解
了解了reaver命令行的用法之后,就可以正式開始了。很多時(shí)候一次可能并不能成功,需要嘗試多次。
因?yàn)槭菧y(cè)試,所以我干脆直接指定了PIN的值。為了更詳細(xì)的了解命令運(yùn)行過程,可以開啟2級(jí)或者3級(jí)輸出看看reaver工具到底干了啥。
sudo reaver -i wlan0mon -b BC:D1:77:76:39:06 -p 81103355 -vv
如果出現(xiàn)了下面的bad FCS,可以在添加-F參數(shù)忽略幀校驗(yàn)錯(cuò)誤,然后再次嘗試。

如果一切正常的話,應(yīng)該會(huì)在幾分鐘內(nèi)通過PIN解開WIFI的密碼。如果不知道PIN密碼的話,也可以通過幾個(gè)小時(shí)的嘗試來試出PIN進(jìn)而得知WIFI密碼。因此我們?cè)谌粘J褂玫臅r(shí)候,一定要記得關(guān)掉WPS功能,它是很多漏洞的根源。