點(diǎn)擊上方“
何俊林
”,馬上關(guān)注,每天早上
8:50
準(zhǔn)時(shí)推送
真愛(ài),請(qǐng)置頂或星標(biāo)
原文:轉(zhuǎn)載自公號(hào)菜鳥(niǎo)學(xué)Python
作者:小超
昨晚家里停網(wǎng)了,對(duì)于互聯(lián)網(wǎng)人,停網(wǎng)了,這能忍?打電話給修網(wǎng)絡(luò)的,說(shuō)太晚了,要第二天才能過(guò)來(lái),這TM沒(méi)網(wǎng)不是要我的命么?電腦看到隔壁小姐姐的wifi信號(hào)滿格哇,這讓我動(dòng)了邪念,看有沒(méi)有辦法蹭下網(wǎng),我第一個(gè)想到了高效的Python,嘗試看能不能破解隔壁小姐姐的wifi密碼~
Python真的是無(wú)所不能,原因就是因?yàn)镻ython有數(shù)目龐大的庫(kù),無(wú)數(shù)的現(xiàn)成的輪子,讓你做很多很多應(yīng)用都非常方便。
今天從WiFi連接的原理,再結(jié)合代碼為大家詳細(xì)的介紹如何利用python來(lái)破解WiFi。
1
如何連接wifi
首先我們的電腦是如何連接wifi的呢?就拿我們的筆記本電腦來(lái)說(shuō),我們的筆記本電腦都有無(wú)線網(wǎng)卡,如下圖所示:
當(dāng)我們連接WiFi時(shí),無(wú)線網(wǎng)卡會(huì)自動(dòng)幫助我們掃描附近的WiFi信號(hào),并且會(huì)返回WiFi信號(hào)的一些信息,包括了網(wǎng)絡(luò)的名稱(SSID),信號(hào)的強(qiáng)度,加密和認(rèn)證的方式等。這些信息我們?cè)谶M(jìn)行操作的時(shí)候是看不到的。當(dāng)我們想要連接指定WiFi的時(shí)候,我們都需要進(jìn)行認(rèn)證,認(rèn)證的作用就是保護(hù)wifi的訪問(wèn),注意這里的認(rèn)證不是我們輸入的密碼,而是將我們輸入的密碼進(jìn)行加密的方式。也就是將我們輸入額WiFi密碼,進(jìn)行加密傳輸?shù)囊环N方式。大家常用的方式是WPA或者是WPA2PSK,主要是針對(duì)個(gè)人或家庭網(wǎng)絡(luò)等,對(duì)安全性要求不是很高的用戶。如下圖所示。
當(dāng)我們輸入密碼后,會(huì)彈出提示來(lái)告訴我們一些提示的信息,這個(gè)提示的信息其實(shí)就是在指定認(rèn)證加密的方式。我們點(diǎn)擊“是”之后,就可以開(kāi)心的上網(wǎng)了。
2
利用pywifi模擬接入
pywifi這個(gè)庫(kù)是第三方的需要提前用pip安裝一下,接著我們就利用pywifi模塊來(lái)模擬這一個(gè)過(guò)程。首先是判斷電腦是否處于WiFi連接的狀態(tài),代碼如下圖所示。
首先是創(chuàng)建一個(gè)pywifi的對(duì)象,然后將電腦無(wú)線網(wǎng)卡的信息賦值給ifaces。接著判斷ifaces的狀態(tài)(states)即可知道電腦是否連接無(wú)線網(wǎng)絡(luò)。上面我們提到無(wú)線網(wǎng)卡會(huì)返回?zé)o線信號(hào)的信息,接下來(lái)我們就來(lái)輸出一下我們掃描到的附近的無(wú)線信號(hào)以及它們的信息。
如上圖左側(cè)所示,我們輸出了無(wú)線信號(hào)的名稱和其對(duì)應(yīng)的加密方式。二代碼中的data其實(shí)就是一個(gè)個(gè)的配置文件。這里的配置文件我們可以理解為一個(gè)存儲(chǔ)了我們連接的無(wú)線信號(hào)信息的文件,里面包含了無(wú)線信號(hào)的名稱,密碼,認(rèn)證方式等等信息。
3
破解wifi密碼
接下來(lái),我們就要利用pywifi來(lái)進(jìn)行破解WiFi密碼的操作。我們仿照手動(dòng)輸入密碼的過(guò)程,并進(jìn)行驗(yàn)證,如果密碼錯(cuò)誤的話,我們就不停的更滑密碼進(jìn)行試驗(yàn)直到成功為止。部分的代碼如下所示:
程序中,我們首先從console中讀入我們想要破解額WiFi名稱,然后從我們事先設(shè)置好的WiFi密碼本中,不停的讀入WiFi密碼,然后配置profile的信息,包括WiFi的名稱,認(rèn)證方式和WiFi的密碼。如果密碼錯(cuò)誤的話,就更換WiFi密碼繼續(xù)進(jìn)行驗(yàn)證,直到驗(yàn)證正確為止。下圖是實(shí)驗(yàn)的結(jié)果。
上述的破解方法也被稱為暴力破解法。
當(dāng)然這種暴力破解需要有一個(gè)數(shù)據(jù)庫(kù)樣本,比如有數(shù)十萬(wàn)的破解密碼的樣本。這樣通過(guò)充足的時(shí)間,可以用來(lái)嘗試。
本文只是從技術(shù)的角度來(lái)闡述如何利用python來(lái)玩WiFi,來(lái)學(xué)習(xí)Pywifi這個(gè)庫(kù)!并不建議大家做任何破壞性的操作和任何不當(dāng)?shù)男袨椤?
強(qiáng)烈推薦一個(gè)Python號(hào)給大家,Python可以做非常好玩和有意思的事情。
更多爬蟲(chóng),關(guān)注下面公號(hào),后臺(tái)回復(fù):
“
wifi破解
”
,獲取全套代碼。
說(shuō)句題外話,有不少人想加魚哥微信,魚哥姑且放出來(lái),但是坑位有限哦
想去大廠么?
來(lái)加入魚哥技術(shù)星球,放大你進(jìn)大廠概率
掃描如下二維碼加入我的知識(shí)星球:
?推薦閱讀
憋了1年,今天,我有件大事和大家說(shuō)下! "2019,別去互聯(lián)網(wǎng)大廠了!"
喜歡就點(diǎn)在看吧