我计划撰写一篇关于WiFi破解的教程,因为很多人都对此感兴趣,但是现有的网络教程太过混乱,容易出错。这次我打算用通俗易懂的语言给大家解释WiFi破解的原理,以aircrack-ng作为破解工具的例子,这是一个功能强大且代表性的工具,许多其他破解工具都是基于它的。
名词解释:
- 无线AP:指发射无线网络的设备,通常是无线路由器。
- 客户端:指连接无线网络的设备。
- 握手包:请参考下文。
WiFi万能钥匙是一款常见的应用,它的工作原理可以简单概括为:用户安装WiFi万能钥匙后,通常会默认分享自己连接的WiFi密码。当你在手机的WiFi万能钥匙中看到可破解的WiFi时,那些密码都是别人分享的。实际上,“破解”只是使用了别人分享的密码进行连接。
一般的WiFi破解原理是这样的:首先需要使用一些WiFi破解软件,例如aircrack-ng,进行数据包捕获。我们捕获到的数据包中会有握手包,其中包含了加密后的WiFi认证信息(包括密码)。根据不同的加密方式,破解的方法和难度也会有所不同。
WiFi的加密方式主要分为两种:WEP和WPA/WPA2,具体的加密算法可以通过百度进行了解。
WEP加密方式相对简单,例如aircrack-ng可以直接读取密码。然而,这种加密方式已经逐渐被淘汰,现在常见的路由器几乎都采用WPA/WPA2加密,如下图所示。
WPA/WPA2的加密方式相对复杂,因此我们从捕获的数据包中得到的密钥经过更复杂的加密,不像WEP那样简单。针对WPA/WPA2加密后的密钥,只能通过暴力破解来获取。例如,我们通常在Windows上使用的破解软件是EWSA(Elcomsoft Wireless Security Auditor)。暴力破解通常基于字典,网上有很多可下载的WPA字典,其中包含了许多弱口令或常用密码。我将在下一篇文章中分享这些字典。
虽然有很多握手包爆破工具,但原理都是相同的,关键在于使用的字典是否强大。aircrack也可以进行爆破,我通常直接使用aircrack,简单方便。
然而,WPA/WPA2破解有其局限性:由于这种加密方式需要基于字典进行爆破,所以破解的难度与密码的复杂程度成正比。因此,一个复杂的密码对安全性至关重要。
那么,什么是握手包呢?如前所述,破解无线网络需要先进行数据包捕获,捕获到的数据包被称为握手包。握手包的定义如下:
- 当一个无线客户端与一个无线AP连接时,首先发送连接认证请求(握手申请:你好!)。
- 无线AP收到请求后,向无线客户端发送一段随机信息(你是?)。
- 无线客户端将接收到的随机信息加密后发送给无线AP(这是我的名片)。
- 无线AP检查加密结果是否正确,如果正确则同意连接(哦~原来是自己人呀!)。
通常我们所说的“抓握手包”,指的是在无线AP与合法客户端进行认证时,捕获到的“信息原文”和加密后的“密文”。
握手包的一般格式为.cap格式。实际上,我们也可以使用Wireshark打开握手包进行查看,如上图所示。我们可以看到WiFi连接的最底层信息,包括加密后的认证信息。由于采用了WPA加密,所以需要使用字典进行暴力破解。
那么,如何捕获握手包呢?这种抓包破解的方法的前提是需要有客户端连接。例如,如果你家隔壁有一个WiFi网络,但他们家没有任何设备连接到该网络,那么在抓包时也不会有人去连接,这种情况下是无法捕获握手包的,但这种情况比较少见。
之所以需要有客户端连接,是因为在抓包过程中,我们会监测新设备连接到该网络,一旦有新设备连接,就会有认证过程,从而产生握手包。WiFi破解工具如aircrack-ng还具有附加功能:强制已连接的客户端与AP断开,这样客户端会自动重新连接,从而我们就能捕获到握手包了。
顺便提一下:如果你输入了错误的密码,也是可以捕获到握手包的,但这个包的认证是不成功的。