先跟大家说明一下基础知识:首先要明白一种数学运算,它叫做哈希算法(hash),这是一种不可逆运算,你不能通过运算结果来求解出原来的未知数是多少,有时我们还需要不同的未知数通过该算法计算后得到的结果不能相同,即你不太可能找到两个不同的值通过哈希得到同一个结果。哈希是一类算法的统称,通常哈希算法都是公开的,比如MD5,SHA-1等等。;

我们平时说的WPA密码其实叫PSK(pre-shared key),长度一般是8-63字节,它加上ssid通过一定的算法可以得到PMK(pairwise master key)。PMK=SHA-1(ssid,psk) ,PMK的长度是定长的,都是64字节。由于计算PMK的过程开销比较大,是我们破解花费时间长的关键,所以采用以空间换时间的原则把PMK事先生成好,这个事先生成好的表就是常说的HASH表(生成PMK的算法是一种哈希),这个工作就是用airlib-ng这个工具来完成的,我们的快速破解就是这么来的。

认证的时候会生成一个PTK(pairwise temporary),这是一组密钥,具体细节不详细说了,它的生成方法也是采用的哈希,参数是连接的客户端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-NONE,MIC,最关键的PMK和PTK是不包含在握手包里的!
8 A2 m6 T& }) U2 J认证的原理是在获得以上的所有参数后,客户端算出一个MIC,把原文连同MIC一起发给AP,AP采用相同的参数与算法计算出MIC,并与客户端发过来的比较,如果一致,则认证通过,否则失败。

目前的破解方法是我们获得握手包后,用我们字典中的PSK+ssid先生成PMK(如果有HASH表则略过),然后结合握手包中的(客户端MAC,AP的BSSID,A-NONCE,S-NONCE)计算PTK,再加上原始的报文数据算出MIC并与AP发送的MIC比较,如果一致,那么该PSK就是密钥。
目前最耗时的就是算PMK,可谓破解的瓶颈。即使搞定了运算量的问题,海量的密钥存储也是个问题(PMK都是64字节长度)!
最近出来的tkiptun-ng只是可以解开使用tkip加密了的数据包,并不是说能够快速算出PMK或PSK。如果感兴趣,可以到书店看看讲哈希的书,说不定你把这些HASH算法都破解出来了。

wpa_supplicant套件中有个小工具,叫做wpa_passphrase,它和airolib-ng的作用差不多,都是用来生成PMK,在backtrack中应该自带这个工具。比如有个ssid为TP-LINK,PSK是12345678,那么生成PMK的方法就是wpa_passphrase TP-LINK 12345678,结果应该是这样:
network={ ssid="TP-LINK"
#psk="12345678"
psk=1eecc652f354863e9f985a96d48545c4994e0d21b04955432b60c2600c0743da
psk=1eecc652f354863e9f985a96d48545c4994e0d21b04955432b60c2600c0743da其实就是PMK了,一般在电脑上运行查看无线密码的软件就是得到这个,把1eecc652f354863e9f985a96d48545c4994e0d21b04955432b60c2600c0743da直接输入到无线客户端中就可以连上该ssid,相当于输入了12345678,生成PMK的过程是不可逆的,即无法通过1eecc652f354863e9f985a96d48545c4994e0d21b04955432b60c2600c0743da来逆推得到12345678。可以看到同样是psk是12345678,如果ssid名字改变,那么pmk就会发生改变,这就是为什么用airolib-ng建表是只能按ssid生成。

接下来我们开始无限网络密码破解教程:
首先准备虚拟机软件:
点此下载虚拟机汉化完整版

如果不喜欢虚拟机运行的话,可以直接刻录光盘来加载启动
但是为了方便跑包(暴力破解密码),还是在win下用虚拟机比较方便

硬件方面,我用卡皇,芯片8187的
大家可以根据自己实际情况安排

第一部:设置虚拟机(光盘启动的可以直接路过本部)
首先安装完vm(绿色版直接运行)我就是绿色版
出现如下画面
WPA,WPA2,无线网络密码
1、首先建立一个虚拟机
WPA,WPA2,无线网络密码
然后直接猛击下一步
2、继续下一步
WPA,WPA2,无线网络密码
然后还是下一步

3、这个吗就是默认了,直接下一步
这里客户机操作系统选择linux
4、这就是选择操作系统和内核,很重要,按照我的选择就ok
WPA,WPA2,无线网络密码
5、给他一个名字
WPA,WPA2,无线网络密码
6、我还是下一步
WPA,WPA2,无线网络密码
7、因为cd容量很小,130mb多的文件,你给他200mb就够了!我给他1g
到现在基本上一个虚拟机雏形基本上诞生
接下来最后一步
也是最重要一步
给他一个iso包
WPA,WPA2,无线网络密码


8、给他一个路径,让他知道你的iso在哪儿!就这么简单
接下来你就可以启动虚拟机了!
接下来
WPA,WPA2,无线网络密码
这里选择中文,你应该知道吧?
系统启动,选择语言界面,这里你选择中文,如果你是外国人,选择外语,我相信看到这儿都是中国人吧?
WPA,WPA2,无线网络密码
虚拟机启动ing
启动过后才是令人激动地时刻
嘿嘿
接下来
第二部:破解wep/wpa2
WPA,WPA2,无线网络密码
系统启动成功,桌面
1、系统启动啦,这就是桌面!咋样?熟悉吧?很像win的!很容易上手
WPA,WPA2,无线网络密码
2、然后打开第二排的第一个软件minidwep-gtk~~出现此对话框,直接点ok!就过去了

WPA,WPA2,无线网络密码
3、看左上角那个下拉菜单,找到自己的网卡!!!然后右上角!!扫描!!!然后就开始激动人心了!~
WPA,WPA2,无线网络密码
4、够激动吧?看到没有?
sssid---就是扫描到无线接入点的mac地址 pwr:信号强度 data:这句是所谓的数据包 最后面的essid就知道了吧?那就是你扫描到的路由名称!这样就明白了吧?当然了,如果没有数据包的话,你还是省省吧!毕竟是破解!没有数据包代表抓不到握手包,抓不到握手包怎样破解呢?所以还是需要数据量的!然后抓到握手包以后就开始破解啦!
WPA,WPA2,无线网络密码
5、怎么样?嘿嘿,看到了吧?软件已经搜索到了wpa2加密的方式的路由器!当然了,软件的搜索方式是一起搜索,也就是wep,wpa2一起搜索,看看软件左边栏的“加密方式”你选择wep就会显示wep方式加密的路由,你选择wpa2就会显示wpa2方式加密的路由,咱们这儿讲的是破解wpa2加密方式的路由!所以wep一笔带过!如果是破解wep的路由,直接右边栏的“启动”按钮,剩下的几乎不用动手自动搜索密码(前提是有数据包哦!)
WPA,WPA2,无线网络密码
6、接下来开始抓取握手包,看图片最后面一行字,抓到一个握手包,正在等待认证,等待认证后就会给你提示!告诉你已经抓到一个握手包,然后就可以破解啦!(当然,抓取握手包是需要耐心的,有时候rp暴增,没准上来就能抓到,我这儿抓了十几分钟才抓到)
WPA,WPA2,无线网络密码
7、基本上已经成功,剩下的就是破解啦!这里开始进入破解第一部,跑包,开始测试密码!
WPA,WPA2,无线网络密码
8、接下来,把你的字典贡献给minidwep-gtk!嘿嘿,这个都会了吧?我给他一个默认的字典,就是最后一个wordlist.txt。你可以根据情况来选择字典,其实我上藏了3g多的字典呢!嘿嘿,不过这个路由是弱口令的!所以这个字典足够了!
WPA,WPA2,无线网络密码
9、这下子就解密啦,成功啦!!!嘿嘿,哈哈!!!看见wpakey:0123456789 这就是密码!这个密码牛屄吧?够弱智吧?!哈哈哈