瀏覽量:111次
是不是一直都在好奇WiFi萬能鑰匙是怎么知道你家(別人家)WiFi密碼的?有人說是直接破解,但對(duì)于WiFi萬能鑰匙的能力來說,窮舉法是很消耗時(shí)間的,事實(shí)上WiFi萬能鑰匙所用的是被偷偷上傳的WiFi數(shù)據(jù)存入服務(wù)器,然后再提供給下一個(gè)使用該網(wǎng)絡(luò)的用戶的。
WiFi萬能鑰匙是怎么知道你家(別人家)WiFi密碼的?
WiFi萬能鑰匙的基礎(chǔ)功能并不是采用某些答案所述"密碼庫窮舉(逐個(gè)嘗試)暴力破解"的方式獲得正確密碼,而是通過用戶上傳分享的熱點(diǎn)(主動(dòng)或"被動(dòng)")到后臺(tái)服務(wù)器的方式收集、積累數(shù)據(jù)。后臺(tái)服務(wù)器維護(hù)者一份熱點(diǎn)數(shù)據(jù)庫,其中包含著熱點(diǎn)名稱(或者用來唯一標(biāo)識(shí)的MAC地址)以及與其對(duì)應(yīng)的密碼字符串。查詢密碼時(shí),用戶將周圍掃描到的陌生熱點(diǎn)信息上傳,服務(wù)器后臺(tái)查詢到相對(duì)應(yīng)的密碼(如果分享過的話)后返回給APP供用戶選擇使用。不過WiFi共享鑰匙有一個(gè)"深度解鎖"的功能與"暴力破解"沾點(diǎn)邊,但它也僅僅是使用幾個(gè)常見的較為簡單的密碼來嘗試連接熱點(diǎn),不能稱得上算"密碼庫窮舉"。
現(xiàn)在WiFi萬能鑰匙充實(shí)密碼庫的方式主要是用戶主動(dòng)分享,畢竟用戶基數(shù)變大了,但在以前可不是這樣。早期的WiFi萬能鑰匙得到熱點(diǎn)密碼數(shù)據(jù)的手段并不高明,甚至可以說是不光彩的。
我們知道Android系統(tǒng)中有個(gè)文件是用來存儲(chǔ)WiFi密碼的,那就是/data/misc/wifi/wpa_supplicant.conf
此文件只有當(dāng)獲得root權(quán)限后才能訪問。
圖上顯示有兩個(gè)WiFi熱點(diǎn)"network",ssid是熱點(diǎn)名稱,psk是密碼。上面那個(gè)是我的私人熱點(diǎn),另一個(gè)"Bjume"則是某商家提供的免費(fèi)熱點(diǎn)。請(qǐng)注意,其中的密碼是明文顯示的"bjume2013"。
得到了這個(gè)文件,或者能看到這個(gè)文件的內(nèi)容,就意味著能得到這臺(tái)手機(jī)登錄過的所有WiFi熱點(diǎn),以及它們的明文密碼!
早期版本的WiFi萬能鑰匙會(huì)向用戶申請(qǐng)root權(quán)限:
雖然我不是專職的Android開發(fā)者,但我畢竟也開發(fā)過一些自用的小工具,對(duì)系統(tǒng)提供的接口和權(quán)限還是略知一二的。WiFi萬能鑰匙的所有業(yè)務(wù)功能,包括掃描周邊的WiFi信號(hào)、通過網(wǎng)絡(luò)查詢對(duì)應(yīng)WiFi信號(hào)的密碼、輸入密碼登錄WiFi、通過網(wǎng)絡(luò)將用戶在應(yīng)用中輸入的密碼上傳到服務(wù)器,這些都可以使用基本的系統(tǒng)API實(shí)現(xiàn),不知道它為甚麼要申請(qǐng)root權(quán)限。難道是為了訪問wpa_supplicant.conf文件?單從這一點(diǎn)上作惡意揣測似乎不太妥當(dāng),畢竟在Android上很多別的行為也需要root(雖然我實(shí)在不知道WiFi萬能鑰匙哪個(gè)功能有這個(gè)需求),那么接下來的證據(jù)就無法回避了。
通過對(duì)com.snda.wifilocating.apk文件(WiFi萬能鑰匙)進(jìn)行反編譯之后,得到的很多smali腳本,有這么一個(gè)很有意思:
01/home/feng/documents/com.snda.wifilocating.apk/smali/com/snda/wifilocating/a/i.smali:021049 invoke-direct {v2, v3}, Ljava/io/DataOutputStream;->(Ljava/io/OutputStream;)V031050041051: const-string v3, "cat /data/misc/wifi/wpa_supplicant.conf>/data/data/com.snda.wifilocating/wifi.conf\n"051052061053 invoke-virtual {v2, v3}, Ljava/io/DataOutputStream;->writeBytes(Ljava/lang/String;)V復(fù)制代碼/home/feng/documents/com.snda.wifilocating.apk/smali/com/snda/wifilocating/a/i.smali:1049 invoke-direct {v2, v3}, Ljava/io/DataOutputStream;->(Ljava/io/OutputStream;)V10501051: const-string v3, "cat /data/misc/wifi/wpa_supplicant.conf>/data/data/com.snda.wifilocating/wifi.conf\n"10521053 invoke-virtual {v2, v3}, Ljava/io/DataOutputStream;->writeBytes(Ljava/lang/String;)V[聲明]本網(wǎng)轉(zhuǎn)載網(wǎng)絡(luò)媒體稿件是為了傳播更多的信息,此類稿件不代表本網(wǎng)觀點(diǎn),本網(wǎng)不承擔(dān)此類稿件侵權(quán)行為的連帶責(zé)任。故此,如果您發(fā)現(xiàn)本網(wǎng)站的內(nèi)容侵犯了您的版權(quán),請(qǐng)您的相關(guān)內(nèi)容發(fā)至此郵箱【779898168@qq.com】,我們?cè)诖_認(rèn)后,會(huì)立即刪除,保證您的版權(quán)。
官網(wǎng)優(yōu)化
整站優(yōu)化
渠道代理
400-655-5776