你還在用WiFi萬能鑰匙嗎?探究其原理和危害
以前因?yàn)楹闷?,安裝了WiFi萬能鑰匙,但是從來沒有打開過,當(dāng)時(shí)我心里很清楚,蹭網(wǎng)的前提就是自己家被蹭。晚上刷微博看到一張圖片,iPhone設(shè)備的WiFi列表中竟然出現(xiàn)了「🔑一鍵免費(fèi)連接🔑」相關(guān)的提示,我用自己的手機(jī)測試了下,果真如此:
本文不會從代碼角度分析WiFi萬能鑰匙這個(gè)軟件是如何「破解」密碼的,主要從使用這個(gè)軟件后的感受出發(fā),分析它可能會用到的手段以及可能存在的風(fēng)險(xiǎn)。
軟件對WiFi密碼的攫取
獲取安裝該軟件用戶連接過的WiFi的密碼,這是WiFi萬能鑰匙需要攻克的第一個(gè)難題,攻克之后,從一個(gè)用戶身上可以挖到1-10個(gè)WiFi id和WiFi密碼。攻克的方式嘛,可以去網(wǎng)上搜羅下,很多保存下來的密碼都是明文的,或者是只經(jīng)過了簡單的加密操作,如果用戶root了自己的手機(jī),軟件可以隨意獲取。
顯然,WiFi萬能鑰匙有一個(gè)自己的云端,儲存了大量從用戶手機(jī)里攫取到的WiFi信息,每個(gè)儲存單元應(yīng)該包含了如下信息(按照重要性從上往下依次排列):
WiFi容器的物理地址(MAC信息)
WiFi的密碼
WiFi名稱
WiFi容器的區(qū)域信息
WiFi容器的IP地址
由于民眾對快速上網(wǎng)的極度渴望,偶然聽到或者看到有這么個(gè)神器,當(dāng)機(jī)立斷將其下載到了手機(jī)上,在這兩年時(shí)間間,該軟件的用戶量達(dá)到了5億之多,月活躍用戶在 2.3億(數(shù)據(jù)來自網(wǎng)絡(luò)),其用戶量之多、粘性之強(qiáng),恐怕只有社交類的軟件可以比擬了。由此,也可以想象WiFi萬能鑰匙的云端數(shù)據(jù)庫有多么龐大。
WiFi的連接
初次打開軟件的時(shí)候,你應(yīng)該看到了它會向你申請「獲取位置信息」的請求,目的有兩個(gè),第一是獲取你所在區(qū)域的大概位置,然后將該位置附近的WiFi信息全部緩存到你的客戶端,這樣做可以大大地減少對服務(wù)器的壓力,其二,目前WiFi萬能鑰匙也會做一些商品/商家的推廣,拿到位置信息方便個(gè)性化投放。
1.密碼匹配
以前手機(jī)沒有提供權(quán)限給它獲取WiFi列表,所以軟件會引導(dǎo)用戶將WiFi列表界面截圖,然后通過圖片分析拿到WiFi名稱。而如今,iOS設(shè)備不僅提供了獲取周邊WiFi列表的權(quán)限,而且還允許軟件對每個(gè)WiFi進(jìn)行文字備注,如最上面破解效果列表圖所示。
所以我猜測,以前軟件只能通過WiFi名稱進(jìn)行匹配,而現(xiàn)在可以使用WiFi的其他信息如(MAC地址)進(jìn)行匹配,匹配度更高,因?yàn)閃iFi名稱可能會存在重復(fù)問題。
2.撞庫分析
拿到了幾個(gè)億的數(shù)據(jù),自然少不了對數(shù)據(jù)進(jìn)行統(tǒng)計(jì)和分析,拿到一些常用的弱口令,如八個(gè)8、四個(gè)123、八個(gè)0等,了解路由設(shè)置和WiFi設(shè)置的人本來就不多,很多上門服務(wù)的師傅一般就將密碼設(shè)置成簡單好記的,這也很大程度提高了撞庫的成功率。對于拿不到密碼的WiFi,軟件毫無疑問會作出這種嘗試,成本低、成功率還高。
3.暴力破解
暴破應(yīng)該不會用于實(shí)時(shí)的密碼獲取,而是會在沉默狀態(tài)下,對未知WiFi進(jìn)行暴力破解,破解成功的WiFi上傳到云端服務(wù)器。這種方式可能在軟件上線的初期使用,只是我的一種猜測。
被蹭網(wǎng)存在的危害
如果家里的網(wǎng)絡(luò)被小白用戶蹭了,無非就是大家同時(shí)上網(wǎng)的時(shí)候,網(wǎng)速會慢一點(diǎn),而如果你家網(wǎng)絡(luò)被一個(gè)具備黑客素質(zhì)的人蹭上了,這個(gè)時(shí)候可能需要引起注意了。
如果你家里有WiFi,那么一定會有一個(gè)路由器吧,路由器的密碼還是初始狀態(tài)的guest/admin么,或者被你設(shè)置成了六個(gè)8?如果我是這個(gè)攻擊者,一定會想各種辦法拿到你們家路由器的密碼,如果運(yùn)氣好進(jìn)去了,下一步要做的事情就是把路由器的網(wǎng)關(guān)設(shè)置成我自己的電腦,然后各種截獲和注入。
如果沒有攻克路由器,也可以利用在一個(gè)局域網(wǎng)內(nèi)的條件,通過共享、網(wǎng)絡(luò)廣播等各種欺騙手段忽悠小白用戶上當(dāng),方法總是很多的。只要打開一個(gè)口子,基本上你的手機(jī)/電腦就被控制了,投毒、欺騙、誘騙等,能用上的都會用上。
如何防止被蹭
你手機(jī)上沒有安裝WiFi萬能鑰匙,也沒有將密碼告訴旁邊的鄰居、路人,結(jié)果發(fā)現(xiàn)自己的網(wǎng)絡(luò)還是被蹭到了。為啥呢?回想下,原來上個(gè)月你家外甥過來了,然后他手機(jī)上有這個(gè)軟件…
防止被蹭的最好的方式就是,密碼不告訴任何人,即便是外甥?,F(xiàn)在的路由器默認(rèn)可以設(shè)置兩個(gè)WiFi,并且可以對sub-WiFi進(jìn)行流量限制。當(dāng)然,有些 WiFi做的比較成熟,可以通過自己的手機(jī)監(jiān)控連接的設(shè)備,然后設(shè)置白名單和黑名單。不過估計(jì)用這種WiFi的人不會很多,一般的WiFi也支持在Web 界面上控制上網(wǎng)設(shè)備。
還有一種方式是,在路由器中,將無線設(shè)置的SSID廣播改為「隱藏」,周邊設(shè)備就沒辦法找到你家的WiFi網(wǎng)絡(luò)了。
常規(guī)的WiFi熱點(diǎn)設(shè)置原理
分享一段跑題的內(nèi)容。
以前使用Windows/Linux系統(tǒng)的時(shí)候,嘗試過將自己的電腦作為熱點(diǎn)把網(wǎng)絡(luò)分享給其他同學(xué),剛開始使用了叫做軟媒魔方【IT之家編輯注:軟媒魔方中的WiFi共享功能即可一鍵共享網(wǎng)絡(luò)】的軟件,后來自己也開始敲代碼折騰,事實(shí)上,在Windows下一行代碼就能產(chǎn)生一個(gè)無線熱點(diǎn):
netsh wlan set myWiFi mode=allow ssid=YOUR_WiFi_NAME key=WiFi_PASSWORD
上述命令會在系統(tǒng)的某個(gè)位置生成一個(gè)文件,其中key是明文保存的,然后通過如下命令就能開啟WiFi:
#開啟WiFi
net wlan start myWiFi
#關(guān)閉WiFi
net wlan stop myWiFi
Linux下稍微費(fèi)勁些,配合hostpd和dnsmasq,不過也是差不多幾行代碼的事情。
最后
本文主要是對WiFi萬能鑰匙這個(gè)軟件相關(guān)功能的一些猜測,具體如何實(shí)現(xiàn),可以去網(wǎng)上觀摩下駭客們對軟件代碼的反編譯。