购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.5 WPS,破解WPA/WPA2密钥的捷径

其实很多时候破解WPA/WPA2加密并没有所想的那么复杂,有这样一些技巧可以帮助无线黑客们绕过WPA/WPA2的加密体系,本节讲述的就是其中一个比较取巧的方法,即通过无线WPS功能破解。

需要特别强调一下:本节内容适合目前市面上99%的支持802.11N系列无线路由器以及70%的802.11G无线路由器,当然,只是适合,不代表一定就能破解,具体破解效果会随着这些设备的WPS功能默认设置不同而不同。

2.5.1 关于WPS

1.关于WPS

考虑到普通用户对无线安全设置的困惑,WiFi联盟推出了名为WiFi Protected Setup(WiFi保护设置,简称WPS)的认证程序。WiFi联盟宣称,WPS可以将设置安全网络的步骤减少一半。目前,新一代11n无线路由器及网卡均支持WPS功能,这对用户来说绝对是个好消息,但对攻击者来说也是。

具体来说,WPS(WiFi Protected Setup,WiFi保护设置)是由WiFi联盟(http://www.wi-fi.org)组织实施的认证项目,主要致力于简化无线网络的安全加密设置。在传统方式下,用户新建一个无线网络时,必须在接入点手动设置网络名(SSID)和安全密钥,然后在客户端验证密钥以阻止“不速之客”的闯入。WiFi Protected Setup能帮助用户自动设置网络名(SSID)、配置最高级别的WPA2安全密钥,具备这一功能的无线产品往往在机身上有一个功能键,称为WPS按钮,用户只需要轻轻按下该按钮或输入PIN码,再经过两三步简单操作即可完成无线加密设置,同时在客户端和路由器之间建立起一个安全的连接。

值得注意的是,利用WPS简化网络安全配置要求接入点和客户端设备均须通过WPS认证,用户可以在产品包装上寻找Wi-Fi Protected Setup的标志,如图2-36所示,以确保所购产品具备WPS功能。不过要强调的是,在市场上并不是所有具备WPS功能的无线产品都会在包装上贴上如图2-36所示的标志。所以请特别注意如图2-37所示的描述,当在外包装上产品简述中出现所谓“一键加密”功能描述的,即为具备WPS功能。

图2-36

图2-37

2.WPS的基本设置

关于WPS的基本设置相对简单,不过由于无线路由器的品牌和型号不同,配置时将稍有偏差。以下配置步骤仅供读者参考,通过下述步骤也可看出WPS的便捷性以及厂商为何如此推崇WPS功能。

步骤1:在无线客户端上运行无线网卡配置工具,选择“连接到带有WPS的无线网络”。

步骤2:有些无线路由器是自动开启WPS功能的,比如TPLINK,但还有些无线设备需要使用计算机登录到路由器页面,如图2-38所示,在有关页面中选择连接无线设备,或者按住路由器上的WPS按钮,如图2-39所示。

图2-38

步骤3:在无线网卡配置工具上选择PBC连接形式,或者在无线网卡上点选如图2-40所示中的WPS按键。

步骤4:等待数秒钟,连接成功。

整个流程TCP/IP的三次握手协议类似,看起来只有一呼一应两个联系,但是因为配置了120秒超时的限定,所以实际上也是一个三次握手的流程。WPS完成的工作只是一个输入超长密钥的流程,但因为操作的便利以及纯人工管控,使得不太容易被运用攻击。

图2-39

图2-40

对于市面上的绝大多数n系列无线路由器来说,都能非常便利的运用WPS功能,并且建立连接的时间不超过20秒。对一个初级用户来说,仅仅只要按两次按键就可以建立超长位数的WPA2加密,无疑是一项非常有吸引力的功能。不过需要特别注意的是,使用WPS的前提是使用无线网卡自带的管理配置程序,不能使用Windows自带的无线管理配置服务。

2.5.2 扫描开启WPS的无线设备

对于无线攻击者而言,关键在于如何检测有哪些无线设备开启WPS,以及有哪些无线设备的WPS正处于搜寻状态等,这些都是关系到利用WPS进行攻击的可能性。

1.扫描工具介绍

目前专门支持WPS扫描的工具并不多,不过由于WPS相关标准的公开,各大厂商在各自的无线网卡产品配套工具中,都内置了WPS扫描及总动配置功能。这里介绍两款工作在Linux下使用python编写的小工具,分别为wpscan.py和wpspy.py。其中,wpscan.py用于扫描开启WPS功能的无线网络设备,wpspy.py则用来确认无线网络设备当前的WPS状态。

安装很简单,将wps_tools.tar.gz下载到本地,然后使用tar命令解压缩,会看到如图2-41所示的内容。该压缩包包含2个文件,分别为wpscan.py和wpspy.py。

图2-41

2.扫描开启WPS功能的无线设备

将上述工具安装完毕后,即可开始具体的WPS扫描,具体步骤如下。

步骤1:设置无线网卡为监听模式。

和之前最基本的破解过程一样,在Linux下需要先行使用Aircrack-ng工具套装中的airmon-ng工具将无线网卡设置为监听模式。若觉得安装Aircrack-ng工具套装麻烦,可以考虑直接使用BackTrack4 Linux。具体命令如下:

参数解释:

● start,后跟具体的无线网卡名称,此处为wlan0,载入后的监听网卡ID为mon0。

如图2-42所示,当前采用Ralink 2573芯片的无线网卡已被激活为Monitor监听模式,之后的程序将调用名为mon0的无线网卡。

图2-42

步骤2:扫描开启WPS功能的无线设备。

扫描开启WPS功能的无线路由器,具体命令如下:

参数解释:

● -i,后跟无线网卡名称,这里就是mon0。

按Enter键稍等片刻后,wpscan.py可以将周围能够搜索到的开启WPS的无线路由器全部列举出来。如图2-43所示,扫描出一款开启WPS的无线路由器,其SSID为“ZerOne_Lab”,其具体型号未能显示,但其芯片组为Ralink。

图2-43

没有显示出产品具体型号也是正常的,因为并不是所有的厂商都会在WPS中加入厂商的详细信息,这也是出于安全的考虑。不过一些大的厂商都会在WPS中加入一些信息,像如图2-44所示中,在“Model Name”处,就识别出为Belkin的型号为F5D7230-4的无线路由器,甚至可以显示出具体的型号为v9。这也就导致了信息的暴露,所以针对WPS的扫描也是有效探测无线设备的方法之一。

图2-44

步骤3:监测WPS状态。

在获知了存在开启WPS功能的无线设备后,即可展开探测,具体命令如下:

参数解释:

● -i,后跟无线网卡,这里即为mon0;

● -e,后跟SSID,若需要对某指定AP进行监测,可以使用此项,并不是必须。

按Enter键后即可看到如图2-45所示的内容,监测到SSID为“ZerOne_Lab”的无线路由器。当前WPS功能状态为已配置,即WPSState处显示为Configured。而在WPSStatePasswordID处显示的“PushButton”,即要求客户端按下无线网卡上的PBC按键进行连接。

图2-45

若WPS功能未被配置,则会出现如图2-46所示的内容,在WPSState处显示为“Not Configured”。

在WPS的状态改变过程中,使用wpspy.py监测的显示也在不断变化,这将有助于攻击者掌握当前的WPS部署情况。如图2-47所示,两个不同的提示表示当前WPS正处于调试配置过程中,当出现“WPSPasswordID:PushButton”时,将是最有利于后续连接的时刻。

图2-46

图2-47

2.5.3 利用WPS破解WPA/WPA2密钥

直接进入正题,开始演示如何利用WPS破解WPA/WPA2密钥,具体步骤如下。

步骤1:先确认当前网络中是否存在开启WPS功能的无线设备。

具体参考2.5.2节内容,不再重复。

步骤2:打开无线网卡配置工具。

此时打开无线网卡自带配置工具,扫描当前存在的无线网络。如图2-48所示,可以看到,之前扫描发现的SSID名为“ZerOne_Lab”的无线网络信号充足,当前无线网卡处于其信号范围内。

需要注意的是,若此时无法接收到之前扫描的目标AP信号,应采用为无线网卡加装高增益的天线、增大网卡功率、改变当前接收位置等多种方法来改善。此外,需要特别注意的是,不要使用Windows系统自带的无线网络配置工具,否则将无法进行下一步无线网卡上的WPS功能配置。

图2-48

步骤3:连接开启WPS功能无线设备。

打开无线网卡配置工具中WPS配置页面,如图2-49所示,选择“重新扫描”来确认当前开启WPS功能的无线网络,可以看到在图2-49的“WPS AP列表”中,出现了“ZerOne_Lab”的无线网络设备。

接下来,单击下方的“PBC”按钮,开始尝试与该AP进行WPS自动连接。此时,在“PBC”按钮右侧的状态栏中会出现“PBC-Scanning AP”的提示,表示当前处于扫描WPS设备当中。

稍等10~20s,会出现“PBC-Get WPS profile successfully”,即配置成功的提示。如图2-50所示,此时,该无线网卡已经和SSID名为“ZerOne_Lab”的无线网络设备的WPS匹配成功,并成功连接至该无线网络。

图2-49

图2-50

此时若登录无线路由器,在其上对应的WPS设置中将能看到出现“添加无线设备成功”,如图2-51所示。

图2-51

步骤4:查看无线连接加密配置内容。

在WPS页面下单击打开内容项,可以看到具体的配置内容。如图2-52所示,当前已连接的网络名称为“ZerOne_Lab”,认证方法为WPA2-PSK,加密方法为TKIP,密钥为一系列星号显示。

图2-52

步骤5:破解WPA-PSK或WPA2-PSK加密。

既然是星号显示,那么使用星号查看器查看,即可显示出星号背后真实的密钥内容。如图2-53所示,打开星号密码查看工具,把鼠标光标移至密钥显示星号的位置,即可在图中右上角密码查看工具中看到密码为“longaslast”。

也就是说,当前SSID名为“ZerOne_Lab”的无线路由器,启用的WPA2-PSK密钥为: longaslast 。至此,该无线网络的WPA2-PSK加密认证已被彻底攻破。

对于一些使用长字符串密码的WPA-PSK或者WPA2-PSK加密,此方法依然有效。如图2-54所示,当前无线网络采用WPA-PSK/WPA2-PSK混合加密方式,具体密钥采用加密关键字为无规律长字符串。

图2-53

图2-54

使用星号查看器查看,即可显示出星号背后真实的密钥内容。如图2-55所示,当前SSID名为“IPTIME_WPS_3424”的无线路由器,启用的密钥为:35a08cddc7b07491abd8。

即虽然之前设置时输入长达60多位的加密密钥,但在实际使用时只有前20位起作用。这个原因除了WPA-PSK本身要求密钥在8~64位之间的定义外,还可能因产品不同有所差异所致。

图2-55

2.5.4 延伸攻击

既然WPS可以如此方便地使无线客户端与无线网络设备之间建立认证关系,那么,是否可以说具备WPS功能的无线设备就一定很不安全了?也不一定,因为有些设备默认是不开启WPS的,还有些设备甚至限制了WPS的搜索超时等,这些设定确实限制了攻击的效果,这就是为什么本节开始说适合于市面上99%的支持802.11N系列无线路由器以及70%的802.11G无线路由器,注意是“适合”,并不是说就一定能被利用和攻击。不过,国内外的无线黑客们也想出了诸多新的方法来加强WPS攻击效果,下面给出了几个比较典型并且有效的方式。

1.打造永久的物理WPS无线跳板后门

由于有些无线设备需要按住路由器上的“WPS”按键才可以提供这个WPS功能。不过有些聪明的无线黑客发现只需要创建一个电路,来“按下”无线路由器上的“WPS”按钮就可以了。对于某些品牌的无线路由器,比如Linksys,甚至只需要将无线设备上的“WPS”按钮上的引脚重新焊接,外接一个简单电路,就可以使WPS功能保持永久开启,如图2-56所示。

这样,这台无线设备就成为了内部网络中永远的无线后门。无论管理员修改成什么类型的无线加密内容,无线攻击者们都可以从外界快速地连接至该无线设备,并快速地获取到内部无线网络的加密密钥明文,而这样的后门可能很久都不会被发现!最关键的是,由于WPS键位已被破坏,所以即使管理员选择关闭WPS,但实际上它还是在工作的!

而这一切的一切并不难做到,只需要找个借口维修一下无线设备即可,或者直接在出售设备时就做手脚,甚至对于D-link的某些品牌无线路由器而言,更是可以很容易地使用黏性十足的口香糖来将WPS按键包裹住,即可达到“按下”键位的效果,如图2-57所示。这些操作对于打着定期维护无线设备旗号并精通社会工程学的人来说并不是件难事。

图2-56

图2-57

对于Linksys等品牌的无线网卡配置工具,一旦通过WPS功能连接到无线网络后,攻击者们甚至都不需要使用什么星号查看工具,直接打开就能看到WPA-PSK/WPA2-PSK加密的明文。如图2-58所示,SSID名为“linksys”的无线网络密钥为“testing123”,的确是一目了然。

图2-58

在过去,建立一个硬件路由器后门是一项艰巨的、需要大量人力的任务,只有最优秀的硬件黑客才敢承担。但是现在,流行的WPS新功能几乎存在于所有新的SOHO无线路由器上,攻击者可以安装一个简单的硬件后门,只需要在指定的时间间隔内激活WPS即可。事实上,这也只不过是用点口香糖就能完成的攻击罢了,估计很多攻击者都会暗暗感谢能够这样容易地建立一个后门。

2.用CSRF攻击配合实现WPS攻击

还有一种情况,就是对于个别无线设备,其WPS功能无法主动配对,仍需要使用计算机登录到无线路由器页面,然后在WPS选项中手动点选搜索。这个问题肯定会遇到,此时无线黑客们会考虑结合其他方式进行配合攻击,比如针对无线设备的CSRF攻击。

CSRF的英文全称是Cross Site Request Forgery,字面上的意思是跨站点伪造请求。以韩国IPTime无线路由器为例,将下述路径伪造后发送至具备管理员权限的用户,将会导致需要手动启动的WPS功能在后台悄悄启动,此时攻击者即可使用本节讲述的方法与WPS关联。

当然,使用一些脚本或者构造几个看不到的页面对于很多朋友来说并不困难,所以这里我就不再班门弄斧了,给出一个思路即可。关于针对无线设备的CSRF攻击具体细节请参考4.10节对应的内容。

2.5.5 一些问题

为方便读者学习和测试使用,这里将本节中可能出现的一些问题列举出来,以供对比查阅。

(1)无线网卡配置工具中没有WPS选项。

答: 请使用具备WPS功能的无线网卡。目前支持802.11n的无线网卡基本都具备此项功能,具体请在购买前仔细查看外包装说明上是否出现WPS的描述。再次强调一下,当在外包装上产品简述中出现所谓“一键加密”功能描述的,即为具备WPS功能。

(2)使用wpspy.py或wpscan.py时出现Kill提示并中断的问题。

答: 如图2-59所示,在监控时可能遇到下述错误提示,并在末尾出现Kill后自动退出。

这是由于驱动不稳定,或者程序本身bug导致的,此类中断情况不影响监控效果,重新输入命令开启即可。

图2-59 fI71BUjC2SWE2O0FwoEHLxzBK7g9eYFIjyTmK2NOaUG0sRM9b7DUQ1EJp45usoez

点击中间区域
呼出菜单
上一章
目录
下一章
×