|
如何绕过 WEP 共享密钥认证?
按照正规情况,需要客户端输入正确的共享密钥后,才能获得 AP 的认证。共享密钥认证原理如下图所示:
下面来做这个实验:
1. 在无线路由里启用 WEP 及使用共享密钥(密钥设置为 1234567890):
2. 在攻击机上,配置 wlan0,创建监听接口 :
- # ifconfig wlan0 up
- # airmon-ng start wlan0
复制代码
3. 使用 airodump-ng 查找目标 AP:
发现目标:
由上图可见,目标 AP 的 SSID 为 rz-lib ,并且是采用 WEP 防护机制,工作在频道 7。另外注意到,AUTH 一栏内容为空,说明还没有合法的客户端连进网络并进认证。
单纯的执行 airodump-ng mon0 会监听到周围所有的 WIFI 网络,但此时目标已经找到并且获得了相关信息,我们就只针对它来监听,执行命令如下:
- airodump-ng mon0 -c 7 --bssid C8:E7:D8:1E:CA:DE -w keystream
复制代码
-w 选项将捕捉到的数据写入到以 "keystream" 为前缀的文件中。
此时假设还没有任何客户端连入 AP,因此从下图也能看到没看到任何客户端,而且 AUTH 栏仍为空:
手动将另一台计算机连入该 AP,很快的就能看到,AUTH 栏发生了变化,标识上一个 “SKA”,底下也显示出了该客户端的 MAC ,如下图所示:
查看当前目录,发现生成了一些以 keystream 开头的文件,其中一个后缀名为 .xor 的文件比较重要。它是通过对监听得来的挑战信息明文和加密后的挑战密文进行异或(XOR)运算得来的,也称之为 “密钥流”(keystream) 文件。利用该文件,对后续 AP 发过来的挑战信息进行加密,就可以绕过 AP 的认证,而无需实际的密钥。需要说的是,通过该文件,并不能解出实际的共享密钥,而只是用以欺骗 AP,达到一种虚假认证。因此,当你通过它来和 AP 建立连接,你也只是连接了而已,而不会分配到 IP 地址(如果 AP 启用 DHCP 的话,DHCP 服务器和客户机之间通过 ARP 来通讯),因此连上去后也无法上网(因为你没有真正的密钥)。
既然利用该文件只是达到了欺骗 AP 认证的目的,又不能上网,也不能干其他的事情,岂不是什么用都没有?当然是有用的,实际上通过该文件,再结合注入攻击,便能获取真正的密钥。但这个不是本文要阐述的内容,在另外的文章里会演示如何破解到真正的密钥。下面还是继续研究这个认证欺骗。
为了欺骗共享密钥身份验证,使用下面的命令:
- aireplay-ng --ignore-negative-one -1 0 -e rz-lib -y keystream-01-C8-E7-D8-1E-CA-DE.xor -a C8:E7:D8:1E:CA:DE -h aa:aa:aa:aa:aa:aa mon0
复制代码
执行该命令后,成功的话,会看到下面的输出:
解释一下命令中的选项含义:
-1 是采取 模式1 攻击,其意是欺骗认证;后面跟着参数 0,表示多少秒后重新关联一次(有些 AP 要求你每隔一定时间要重新关联,否则认为该客户端没有关联)。
-e 后面接无线网络名,这里是 rz-lib 。
-y 后接的就是之前得来的 *.xor 文件,这个不能少。
-a 后接 AP 的 MAC 。
-h 后接一个自定义的 MAC 地址。如果使用自身的 MAC 地址,就不会出现上图的警告信息。通过该警告信息,我们也了解到如果通过 ifconfig 命令来修改 MAC 地址。
登录路由查看,可以看到该假冒的 MAC 已经连接进来:
下面,通过 Wireshark 抓包来研究一下这个过程(这次假冒的 MAC 是 bb:bb:bb:bb:bb:bb)。
1. 第一个数据包(认证请求)由 aireplay-ng 发往 AP:
2. 接着,第二个数据包由 AP 发过来,里头包含了 AP 发送给客户端的挑战文本,如下图所示:
3. 接着,aireplay-ng 将加密后的挑战信息密文发给 AP :
4. 由于 aireplay-ng 使用的是之前获取的 keystream 进行加密,因此认证一定会通过,从 AP 返回的报文可以看到已经验证通过:
在认证成功之后,aireplay-ng 会伪装与 AP 关联:
同样,AP 也会返回一个与客户端关联成功的数据包:
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|