怎么用python破解wifi密码?
今天六一兒童節,跟大家分享一個有意思的案例:如何使用Python暴力破解WiFi密碼
不多說什么直接開始~
如何暴力破解
我們知道,計算機相比人類,最大的優勢就是它能夠重復性執行一些任務,但它永遠不會感覺累(我們假定它一直不斷電)。
我們破解WiFi密碼也會利用計算機的這個優點。
先來思考這樣一個問題:日常我們登錄計算機系統時,如果你的計算機設置了密碼,就需要輸入密碼才能進入系統。這個輸入密碼的過程就是一個完整的身份驗證過程。
計算機有沒有歡迎界面,我這里不是很清楚。
但上面流程圖中綠色框選部分,不同的系統驗證機制不一樣。比如,有的系統可能驗證到錯誤3次之后,暫停輸入n分鐘,這樣來阻礙暴力破解進度。
對于這樣的系統,暴力破解難度就有點大了。暴力的方式很難破解!
?
對于登錄失敗后,沒有對登錄次數進行驗證的系統,我們可以使用暴力破解。?
?
驗證登錄錯誤次數的過程其實是我們在系統易用性安全性上面做的取舍。
?
如果不驗證登錄次數,對于使用者來講,可能更方便;但如果驗證登錄錯誤次數,有時候將一個合法用戶拒之門外,那么,雖然安全性增強了,但系統易用性會大打折扣。
?
?
需要干什么
任何時候,都不能忘記我們的目的!我們是要暴力破解。問題來了,我們那什么破解呢?這里,我們需要一個暴力破解的字典!
?
舉個例子,這個過程就像是把密碼當作一條我們夢寐以求的魚兒,這里我們需要一個裝滿魚兒的池塘,這里的池塘就是我們的密碼字典。現在必須要樂觀一點(不樂觀又能怎么樣?你又不知道你的魚兒在哪里,萬一撞上了呢?),所以,我們假定魚兒就在池塘里面。
?
此時,我們挨個兒將池塘里面的魚兒撈出來。如果魚兒是我們要找的,那么故事的結局皆大歡喜,我們用找到的密碼免費上了網!
?
如果不是,我們將魚兒扔掉(為排除干擾,是不是扔遠一點比較好,但這不是關鍵!),繼續撈下一條,直到找到對的魚!對于魚兒來講,這樣是不是很暴力?
?
好吧,原來艮在這里!道理講清楚了,現實往往很殘酷!我們要在池塘里面找到心目中那條魚兒,確實很難!因為我們并不知道這個池塘夠不夠大……其實,不確定因素還有很多。
?
現在,我們來解決一個最基本的問題,用什么來捕魚并進行驗證?這里我們需要一個捕魚和驗證魚兒的工具!
?
好了,我們開始準備工具吧!
構造池塘:暴力破解字典
Python處理這類問題,很是簡單,我們提供一個思路即可,源代碼獲取方式附后,大家自己敲代碼試試!
?
這里我們就生成了一些密碼本字典,當然這里可選的范圍太多了,如果想要提高找到的概率,字典越大越好;但這里需要處理矛盾,字典大的話,說明池塘大,我們撈魚的速度顯示成了一個問題。
好了,池塘有了,我們開始撈魚并驗證。
捕魚并驗證:Python用什么來驗證WiFi密碼?
池塘總算有了。魚兒是心目中的魚兒,我們并沒有見過它。它唯一的特征是能夠和你的硬件進行連接,有一種怦然心動的感覺(假設怦然心動是驗證連接成功的指標)。我們先來練習捕魚的技巧。
捕魚技巧(逐行讀取密碼文件并驗證)
很簡單,逐行讀取我們剛才生成的密碼字典(池塘中的魚兒)
?
這里的wifiConnect(passwd)函數用來驗證撈出來的魚兒是不是我們想要的(密碼是否正確)。這一步很關鍵,需要利用第三方模塊pywifi實現。
?
第三方模塊pywifi(操作wifi)
這個模塊需要安裝
pip install pywifi -i 國內鏡像源
這里安裝pywifi成功后,運行程序可能出現下面的錯誤,直接安裝comtypes模塊即可解決該問題。
?
這里需要實現wifi連接并認證的過程,后面會有源代碼,小伙伴自己看看吧。說不定哪天出來一個更簡單點的。
?
別著急,下面會有源代碼獲取方式。這段代碼有注釋,我就不逐行解釋了。總之,它實現了驗證連接的功能,很重要的一步哦!
?
到這里,我們的任務基本完成了。有沒有捕到大魚、捕獲的大魚是不是我們想要的,很大程度上取決于個人人品(當然,恒心很重要)。但總體來講,暴力破解是個笨辦法。
下面,我們驗證下程序是否能實現暴力破解wifi密碼的功能。
小試牛刀
按照下面的步驟,我們搭建一個wifi環境。
?
?
打開熱點,點擊設置
?
設置熱點的名稱和密碼
利用手機搭建一個wifi環境。為了節省時間,我們將設置的wifi密碼添加到生成的密碼字典中(添加到第8行)。
?
將剛才設置的密碼添加到密碼字典中
下面,我們來跑一下程序,看看效果。這里有一點小改動,我們將wifi名稱改為了test。然后,wifiConnect(sid='test')函數中將wifi名稱傳入進去。
?
?
電腦成功連接手機熱點
?
電腦上顯示已成功連接test這個熱點
連接成功!除了速度有點慢,沒有其它毛病。wifi密碼設置過于簡單的小伙伴趕緊改一下!此文只探討技術,莫作他用,否則后果自負!
需要說明的是,源代碼中,我直接把sid賦值為“test”(需暴力破解的wifi名稱)。這里小伙伴可以參照修改下。
?
對于文章內容有任何疑問,歡迎留言討論
?
?
總結
以上是生活随笔為你收集整理的怎么用python破解wifi密码?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数字化转型案例学习
- 下一篇: !!! JUnit version 3.