可以,但是需要时间。
WPA2的验证过程有一个随机数挑战的步骤导致你无法快速直接地捕获用户发过来的明文密钥。
简单来说如下
我们定义无线路由器(AP)为Authenticator(认证器),用户的无线网卡(Client)为Supplicant(恳求者)
连接热点的操作为:用户的无线网卡扫描到一个WIFI信号,然后请求访问该WIFI信号对应的无线路由器,无线路由器对用户的身份进行认证
整个步骤如下
Authenticator广播Beacon Frame,这个Beacon Frame包含ESSID(热点的名称,比如说“TP_LINK_xxx”这种,咳咳TP-Link的同学请给我广告费),BSSID(热点的MAC),还有热点的速率等等,不过这个不在今天讨论的重点。 Supplicant收到Beacon Frame,发起连接该热点的请求 Authenticator生成一个随机数ANonce给Supplicant Supplicant也生成一个随机数SNonce Supplicant计算好PMK(Pairwise Master Key),计算PMK的算法是一个消息摘要算法,该算法是SHA1(准确来说是pdkdf2_SHA1),大致需要两个参数,ESSID和MSK(Master Session Key),MSK就是我们通常所说的WIFI密码。 Supplicant以ANonce,自己生成的SNonce,事先在Beacon Frame中获取的BSSID,无线网卡自己的MAC,以及PMK这五个数据作为参数,同样以SHA1(准确来说是pdkdf2_SHA1)这个消息摘要算法为函数,执行后生成一个叫做PTK(Pairwise Transient Key)的东西 Supplicant将PTK,SNonce和无线网卡自己的MAC通过电磁波发送给Authenticator Authenticator这边根据收到的PTK,SNonce和无线网卡自己的MAC,也使用一模一样的消息摘要算法和路由器ROM中存储的正确密钥,ESSID等信息算出PTK,然后进行下一步的验证操作 。。。后面操作不再讲述
好了,从头看到尾,我们会发现,在电磁波中我们只传输了PTK,和热点的名称,热点的MAC,以及无线网卡自己的MAC还有两个随机数ANonce和SNonce,除此之外没有任何和原始密码有关的信息。
而PTK是否可以逆向出原始的MSK,也就是我们的WIFI密码呢?
答:无法直接逆向得到,但是可以通过其他方法间接获取。继续了解相关内容之前请先了解一下上面提到过好几次的“消息摘要算法”
那么再请问一下,能否将合法的用户在认证时发送给热点的数据包截获下来,我们把自己的无线网卡MAC改成合法用户的MAC,然后通过重放事先截获的那个数据包连接上去呢?
答:不可以,因为每一次Authenticator生成的ANonce都是不一样的,导致最后生成的PTK是不一样的,这个随机数挑战机制就是为了避免重放攻击。
下面再来聊一聊“消息摘要算法”
消息摘要算法具有一些和加密算法不同的特性,最重要的一个特性就是它是不可逆算法。意味着你知道消息摘要结果的情况下,无法逆向计算出原始消息是什么。
典型的消息摘要算法有MD5,SHA1等等。
消息摘要算法无法逆向计算出原始消息是什么,但是可以正向计算,穷举所有的消息,将这些消息计算出的摘要信息与我们获取到的摘要进行一个一个比较,这种破解方法为穷举法,而提升这种破解方法效率的方式有彩虹表。网上各种大型的md5解密网站就是通过海量的彩虹表信息进行解密的。
但是彩虹表对于破解WIFI密码来说意义并不是太大,为什么呢?我们前面看到PTK的计算,PMK的计算不仅仅包含密码,还包含,挑战随机数,ESSID等信息。挑战随机数本身就是随机的。现在的路由器的ESSID都是“厂商名称_MAC的后6位”,而MAC的后6位随机性很强,意味着无法制作一个彩虹表来破解大部分的WIFI密码,但是对于简单的“dlink”,“tenda”这种信号,网上可能有制作好的彩虹表可以破解。
那么破解WIFI密码基本上都只能实时计算了,常用的实时计算工具有俄罗斯的EWSA(Windows平台),有开源的aircrack-ng套件(跨平台,但是Windows下效果不好,而且无法使用GPU加速),也有Hashcat(跨平台)。他们可以根据实现准备好的密码字典来进行破解。
破解用的密码字典
所以理论上可以获取到密码,但是破解所需要的时间由该密码的复杂程度决定,如果对方的密码很简单,比如说“12345678”等弱口令,“13012345678”等手机号(可以根据归属地和对方运营商进一步缩小范围),那么破解可能就是几个小时甚至几十分钟的事情。
使用EWSA破解出的弱口令WIFI密码
这是我使用RT3070无线网卡(玩过破解的都知道这款网卡其实接收能力很一般),在晚上上网高峰期对周边邻居做的一个测试,可以看出我身边用弱口令WIFI密码的邻居朋友还是很多的。 |