
ID: Computer-network
-
引言
由于WEP的安全性较低,IEEE 802.11组织开始制定新的安全标准,即802.11i协议。然而,由于新标准的制定和发布需要时间,用户也不愿意为了网络安全性而放弃原有的无线设备。因此,在802.11i标准发布之前,无线产业联盟基于802.11i草案制定了WPA(Wi-Fi Protected Access)无线加密协议。WPA使用临时密钥完整性协议(TKIP)作为加密算法,无需修改现有无线设备硬件。WPA通过软件升级提高了无线网络的安全性,解决了WEP存在的问题,如IV过短、密钥管理简单以及消息完整性保护不足等。WPA提供了完整的认证机制,允许AP或无线路由根据用户的认证结果决定是否允许其接入无线网络,并根据多种方式动态改变每个接入用户的加密密钥。此外,WPA还对用户在无线传输中的数据分组进行MIC编码,确保数据不会被篡改。作为802.11i标准的子集,WPA的核心是IEEE802.1x和TKIP。WPA于2006年被WPA2取代,WPA2引入了强制使用AES算法和CCMP(计数器模式密码块链消息完整码协议)替代TKIP。 -
WPA破解
接下来,我们尝试在没有大量流量的情况下破解WPA。为了更好地理解破解过程,我们不再使用集成了Aircrack-ng的Wifite,而是直接使用强大的Aircrack-ng套件进行WEP破解。首先,我们需要将无线网卡设置为Monitor模式,然后使用Airodump-ng wlan0mon来寻找目标网络的BSSID和信道。以smart为例,如图1所示。
图1:获取BSSID和信道
我们可以看到有一个用户连接,但捕获数据分组的速度非常慢,说明该用户并没有上网,因此无法获取大量流量。为了加快获取数据分组的速度,我们可以使用该用户的BSSID模拟发送数据分组。命令如下:
root@kali:~# aireplay-ng -0 0 -a 28:6C:07:3E:ED:CA -h 3C:46:D8:4D:0F:5D wlan0mon
其中,-0表示Deauthentication(取消认证)模式,向客户端发送数据分组,让客户端误以为是AP发送的数据。后面的数字0表示无限发送,也可以指定发送的数据分组。选择无限模式发送是为了更快地获取握手分组。如图2所示,我们可以看到发送了大量的数据分组。
图2:发送大量数据分组
然后返回Airodump-ng页面,我们可以看到Frames数量不断增加。在获取握手分组后,我们可以停止Aireplay-ng的分组发送行为,如图3所示。
图3:获取握手分组
接下来,我们获得了smart的cap分组。我们可以使用Aircrack-ng来进行跑包,但这取决于密码在字典中的位置,也可以自己制作字典。由于WPA2加密的密码长度可以设置得很长,破解需要时间。我们先使用aircrack-ng跑一个常用字典,命令如下:
root@kali:~# aircrack-ng -w rockyou.txt smart-01.cap
这里的01是系统在设定了-w smart后自动生成的,用于区分不同次捕捉分组。如图4所示,密码在字典中,并且在字典的前面位置。
图4:WPA破解
- 密码破解
Aircrack-ng使用CPU进行破解,如果运气不好,可能需要几个小时才能跑完一个字典分组,速度较慢。为了加快速度,可以利用显卡的计算能力进行GPU跑包,这样速度可以提升几倍。Hashcat是目前最快的跑包软件之一。它支持使用CPU、NVIDIA GPU和ATI GPU进行密码破解。在操作系统上支持Windows和Linux平台,并且需要安装官方指定版本的显卡驱动程序。如果驱动程序版本不正确,可能导致程序无法运行。在Linux系统下,可以搭建多GPU破解平台,并使用VisualCL技术将多台机器连接起来进行分布式破解作业。在破解速度上,ATI GPU破解速度最快,NVIDIA显卡次之,CPU破解速度最慢。Hashcat支持绝大多数的密码破解,具体支持的密码类型可以在其帮助页面找到。
图5:Hashcat支持的密码类型
在使用Hashcat破解WPA/WPA2时,需要先将cap文件转换成hccap文件。可以使用Aricrack-ng进行转换,如图7所示。
root@kail:~# aircrack-ng smart.cap -J smart
以上是关于WPA和密码破解的内容,希望对您有所帮助。

图1:获取BSSID和信道


图2:发送大量数据分组

图3:获取握手分组
量子哈希











