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