每天学点黑客知识是一个分享电脑和最新科技相关问题和知识的平台,旨在帮助您了解世界的最新动态。您还可以留言告诉我们您想学习的知识,我们会有相关专业人员进行解答和帮助!值得一提的是,经过全新改版的每天学点黑客知识不仅可以让您了解世界的奇闻异事,还可以学习电脑知识!但请注意,本教程仅用于探索无线路由安全漏洞,禁止用于非法用途,违者将受到法律制裁。
在开始破解WPA/WPA2之前,我们需要先了解一些基础知识。首先,我们要了解哈希算法(hash),它是一种不可逆的数学运算,无法通过运算结果来推导出原始的未知数。哈希算法通常是公开的,比如MD5、SHA-1等。对于WPA密码,也称为PSK(pre-shared key),其长度通常为8-63字节。通过一定的算法,将PSK和SSID结合起来可以得到PMK(pairwise master key)。PMK的长度固定为64字节。由于计算PMK的过程开销较大,是破解过程中耗时较长的关键步骤,因此我们采用以空间换时间的方式,预先生成PMK的哈希表(也称为HASH表)。生成PMK的算法是一种哈希算法,我们使用airlib-ng工具来完成这个工作,从而实现快速破解。
在认证过程中,会生成一个PTK(pairwise temporary key),它是一组密钥,具体细节不再详述。PTK的生成也采用了哈希算法,参数包括连接的客户端MAC地址、AP的BSSID、A-NONCE、S-NONCE和PMK。其中,A-NONCE和S-NONCE是两个随机数,确保每次连接都会生成不同的PTK。PTK的计算消耗较小。PTK加上报文数据,采用AES或TKIP算法进行加密,同时生成一个签名(MIC,message integrality check)。TKIP的破解与MIC密切相关。
四次握手包中包含了客户端的MAC地址、AP的BSSID、A-NONCE、S-NONCE和MIC等信息,但最关键的PMK和PTK并不包含在握手包中。
认证的原理是,在获取到以上所有参数后,客户端计算出一个MIC,并将原文与MIC一起发送给AP。AP采用相同的参数和算法计算出MIC,并与客户端发送的MIC进行比较。如果一致,则认证通过;否则认证失败。
目前的破解方法是,我们获取到握手包后,使用字典中的PSK+SSID生成PMK(如果有HASH表则可以跳过这一步),然后结合握手包中的客户端MAC地址、AP的BSSID、A-NONCE和S-NONCE计算PTK。接着,将原始报文数据与PTK一起使用特定的算法(AES或TKIP)进行加密,同时生成一个MIC,并与AP发送的MIC进行比较。如果一致,那么该PSK就是正确的密钥。
目前最耗时的步骤是计算PMK,这可以说是破解的瓶颈。即使解决了计算量的问题,海量的密钥存储也是一个挑战(PMK长度为64字节)。
最近出现的tkiptun-ng工具只能解密使用TKIP加密的数据包,并不能快速计算PMK或PSK。如果您对此感兴趣,可以阅读有关哈希算法的书籍,说不定您能破解出这些哈希算法。
在wpasupplicant套件中,有一个名为wpapassphrase的小工具,它的作用与airolib-ng类似,用于生成PMK。在BackTrack中,这个工具应该是自带的。例如,如果有一个SSID为TP-LINK,PSK为12345678的路由器,生成PMK的方法是运行命令”wpa_passphrase TP-LINK 12345678″,结果应该如下所示:
network={
ssid=”TP-LINK”
psk=1eecc652f354863e9f985a96d48545c4994e0d21b04955432b60c2600c0743da
}
其中,psk=1eecc652f354863e9f985a96d48545c4994e0d21b04955432b60c2600c0743da就是PMK。通常,在电脑上运行查看无线密码的软件就可以获取到这个PMK,将其直接输入到无线客户端中,就可以连接到该SSID,相当于输入了12345678。生成PMK的过程是不可逆的,即无法通过PMK逆推得到12345678。可以看到,即使两个PSK都是12345678,如果SSID名称改变,PMK也会发生改变,这就是为什么使用airolib-ng建立表时只能按照SSID生成的原因。
接下来进入正题。首先,下载”cdlinux -0.9.6.1 ISO无线破解系统”。然后准备好虚拟机,我使用的是VM7。如果您不喜欢在虚拟机中运行,可以直接刻录光盘并加载启动。但为了方便进行包的暴力破解,使用虚拟机在Windows下更加方便。硬件方面,我使用的是卡皇,芯片是8187的,您可以根据实际情况进行安排。
第一步:设置虚拟机(如果是光盘启动的,可以直接跳过这一步)。首先安装好VM(绿色版直接运行即可),然后按照以下步骤进行设置:
- 创建一个虚拟机,然后点击下一步。
- 继续点击下一步。
- 这里选择默认选项,直接点击下一步。在客户机操作系统中选择Linux。
- 选择操作系统和内核,这一步非常重要,请按照我的选择进行设置。
- 给虚拟机取一个名字。
- 继续点击下一步。
- 由于CD容量较小(130MB左右),您可以给虚拟机分配200MB的空间即可。我给了1GB的空间,这样基本上就创建好了一个虚拟机的雏形。
- 最后一步也是最重要的一步,给虚拟机指定一个ISO文件。
第二步:破解WEP/WPA2。系统启动成功后,进入桌面界面。
-
系统启动完成后,您将看到桌面界面。很容易上手,类似于Windows的界面。
-
打开第二排的第一个软件minidwep-gtk,并点击”OK”。
-
在左上角的下拉菜单中选择您的网卡,然后点击右上角的”扫描”按钮,开始扫描。
-
扫描结果将显示在左侧的列表中,其中包括SSID、信号强度和数据包等信息。通过ESSID可以确定扫描到的路由器名称。请注意,如果没有数据包,建议您放弃破解,因为没有数据包意味着无法抓取握手包,而没有握手包就无法进行破解。
-
接下来开始抓取握手包,等待认证完成后,系统将提示您已成功抓取到一个握手包,然后可以开始破解。
-
现在,您可以将您的字典文件提供给minidwep-gtk。我提供了一个默认的字典文件,即最后一个wordlist.txt。您可以根据需要选择字典文件。请注意,这个路由器是使用弱口令的,所以这个字典文件足够了。
-
接下来,开始跑包,测试密码。
-
最后,将您的字典文件贡献给minidwep-gtk。这个步骤应该很熟悉了吧?我提供了一个默认的字典文件,即最后一个wordlist.txt。您可以根据需要选择字典文件。我还藏了3GB多的字典文件,但对于这个弱口令的路由器来说,这个字典文件已经足够了。
这样,您就可以开始破解WEP/WPA2了。希望这些步骤对您有所帮助!