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