1 关于WPS
WPS(Wi-Fi Protected Setup,Wi-Fi保护设置)是由Wi-Fi联盟(http://www.wi-fi.org/) 组织实施的认证项目,主要致力于简化无线网络的安全加密设置。
在传统方式下,用户新建一个无线网络时,必须在接入点手动设置网络名( SSID)和 安全密钥,然后在客户端验证密钥以阻止“不速之客”的闯入。Wi-Fi Protected Setup能帮 助用户自动设置网络名( SSID)、配置最高级别的WPA2安全密钥,具备这一功能的无线 产品往往在机身上设计一个功能键,称为WPS按钮,用户只需轻轻按下该按钮或输入PIN 码,再经过两三步简单操作即可完成无线加密设置,同时在客户端和路由器之间建立一个 安全的连接。
用户可在产品包装上寻找Wi-Fi PROTECTED SETUP的标识,以确保所购产品 具备WPS功能。具备WPS功能的无线产品都会在其机体外壳上注明WPS标识,如 图11-1所示。
2 WPS的基本设置
由于元线路由器的品牌和型号不同,下述步骤将稍有偏差。
@运用配置程序选择“连接到带有WPS的无线网络”。
@个别无线设备需要按住路由器上的WPS按钮,或者用其他计算机登录到路由器页面,如图11-2所示,在有关页面选择连接计算机。
@在无线网卡配置工具上选择PBC连接形式,或者在无线网卡上按图11-3中的WPS按键。
@等待数秒钟,连接成功。
整个流程与TCP/IP的三次握手协议类似,看起来只有一呼一应两个联系,但是因为配 置了120秒超时的限定,所以实际上也是一个三次握手的流程。WPS完成的工作只是一个 输入超长密钥的流程,但因为操作的便利以及纯人工管控,使得不太容易被运用攻击。
图11-2 图11-3
对于市面上的绝大多数n系列无线路由器来说,都能非常便利地运用WPS功能,并且 建立连接的时间不超过20秒。对一个初级用户来说,只要按两次按键就可以建立超长位数 的WPA2加密,无疑是一项非常有吸引力的功能。不过需要特别注意的是,使用WPS的前 提是使用无线网卡自带的管理配置程序,不能使用Windows自带的无线管理配置服务。
扫描WPS状态
1 扫描工具介绍
目前专门支持WPS扫描的工具并不多,不过由于WPS相关标准的公开,各大厂商在各 自的无线网卡产品配套工具中,都内置了WPS扫描及总动配置功能。这里介绍两款工作在 Linux下使用python编写的小工具,分别为wpscan.py和wpspy.py。其中,wpscan.py用于 扫描开启WPS功能的无线网络设备,wpspy.py则用来确认无线网络设备当前WPS状态。此 工具套装可以到http://bogpack.blogbus.com上下载。
安装很简单,将wps_tools.tar.gz下载到本地,然后使用tar命令解压缩,会看到图11-4 历示的内容。该压缩包包含两个文件,分别为wpscan.py和wpspy.py。
2扫描开启WPS功能的无线设备
工具安装完毕,即可开始具体的WPS扫描,具体步骤如下:
设置无线网卡为监听模式。
和之前最基本的坡解过程一样,在Linux下需要先行使用Aircrack-ng工具套装中的 airmon-ng工具将无线网卡设置为监听模式。注:若觉得安装Aircrack-ng工具套装很麻烦, 可以考虑直接使用BackTrack4 Linux。具体命令如下:
其中,start后跟具体的无线网卡名称,此处为wlan0,载入后的监听网卡ID为 mon0。
当前采用Ralink 2573芯片的无线网卡已被激活为Monitor监听模式,之后的程序将调 用名为mon0的无线网卡,如图11-5所示。
图11-5
扫描开启WPS功能的无线设备。
扫描开启WPS功能的无线路由器,具体命令如下:
其中,-1后跟无线网卡名称,这里是mon0。 按【Enterl键后稍等片刻,wpscan.py可以将周围能够搜索到的开启WPS的无线路由 器全部列举出来。如图11-6所示,扫描出了一款开启WPS的无线路由器,其SSID为 ZerOne Lab.其具体型号未能显示,但其芯片组为Ralink。
图11-6
没有显示出产品具体型号也是正常的,因为并不是所有的厂商都会在WPS中加入厂商 的详细信息,这也是出于安全的考虑。不过一些大的厂商都会在WPS中加入一些信息,比 如在图11-7中的Model Name处,就识别出Belkin的型号为F5D7230-4的无线路由器,甚 至可以显示出具体的型号为v9。这也就导致了信息的暴露,所以针对WPS的扫描也是有效 探测无线设备的方法之一。
图11-7
监测WPS状态。
在获知了存在开启WPS功能的无线设备后,即可对其进行监控,代码如下:
参数解释:
●-i:后跟无线网卡,这里即为mon0。
●-e:后跟SSID,若需要对某指定AP进行监测,可以使用此项,但并不是必需的。
按IEnterl键后即可看到图11-8所示的内容,监测到SSID为ZerOne Lab的无线路由 器。当前WPS功能状态为已配置,即WPSState处显示为Configured。而在WPSPasswordID 处显示为PushButton,即要求客户端按无线网卡上的PBC按键进行连接。
若WPS功能未被配置,则会幽现图11-9所示的内容,在WPSState处显示为Not Configured。
图11-8 图11-9
在WPS的状态改变过程中,使用wpspy.py监测的显示也在不断变化,这将有助于攻击 者掌握当前的WPS部署情况。如图11-10所示,两个不同的提示表示当前WPS正处于调试 配置过程中,当出现WPSPasswordID:PushButton时,将是最利于后续连接的时刻。
图11-10
11.3 使用WPS坡解WPA-PSK密钥
直接进入正题,开始讲解如何利用WPS坡解WPA/WPA2密钥,具体步骤如下:
圆先确认当前网络中是否存在开启WPS功能的无线设备。
具体参考本章前面的内容,这里不再重复。
圆打开无线网卡配置工具。
此时打开无线网卡自带配置工具,扫描当前存在的无线网络。如图11-11所示,可以看 到,之前扫描发现的SSID名为ZerOne的无线网络信号充足,当前无线网卡处于其信号范 围内。
需要注意的是,若此时无法接收到之前扫描的目标AP信号,应采用为无线网卡加装高 增益的天线、增大网卡功率、改变当前接收位置等多种方法来改善。此外,需要额外注意的 是,不要使用Windows系统自带的无线网络配置工具,否则将无法进行下一步无线网卡上 的WPS功能配置。
图11-11
连接开启WPS功能无线设备。
打开无线网卡配置工具中的WPS配置页面。如图11-12所示,单击“重新扫描”按钮 来确认当前开启WPS功能的无线网络,可以看到在“WPS AP列表”中出现了ZerOne的无 线网络设备。
图11-12
接下来,单击下方的PBC按钮,开始尝试与该AP进行WPS自动连接。此时,在 PBC按钮右侧的状态栏中会出现PBC-Scanning AP的提示,表示当前处于扫描WPS设 备中。
稍等10~20秒左右,会出现PBC-Get WPS profile successfully提示,即配置成功的提示。 此时,该无线网卡已经和SSID名为ZerOne的无线网络设备的WPS匹配成功,并成功连接 至该无线网络,如图11-13所示。
图11-13
此时若登录无线路由器,在其上对应的WPS设置中将能看到出现“添加无线设备成功”, 如图11-14所示。
查看无线连接加密配置内容。
在WPS页面下可以看到具体的配置内容。如图11-15所示,当前已连接网络的名称为 ZerOne,认证方法为WPA2-PSK,加密方法为TKIP,密钥为一系列星号显示。
图11-14 图11-15
坡解WPA-PSK或WPA2-PSK加密。
既然是星号显示,那么使用星号查看器查看,即可显示出星号背后真实的密钥内容。如 图11-16所示,打开星号密码查看工具,把鼠标光标移至密钥显示星号的位置,即可在图11-16 右上角密码查看工具中看到密码为longaslast。
也就是说,当前SSID名为ZerOne的无线路由器,启用的WPA2-PSK密钥为longaslast。 至此,该无线网络的WPA2-PSK加密认证已被彻底攻破。
图11-16
对于一些使用长字符串密码的WPA-PSK或者WPA2-PSK加密,此方法依然有效。如 图11-17所示,当前无线网络采用WPA-PSK/WPA2-PSK混合加密方式,具体密钥采用加密 关键字为无规律长字符串。
图11-17
使用星号查看器查看,即可显示出星号背后真实的密钥内容。如图11-18所示,当 前SSID名为IPTIME WPS 3424的无线路由器的启用密钥为35a08cddc7b07491abd8, 即虽然之前设置时输入长达60多位的加密密钥,但在实际使用时只有前20位起作用。 这个原因除了WPA-PSK本身要求密钥在8~64位之间的定义外,还可能是因为产品不 同而导致的。
图11-18
11.4 常见配合技巧
为方便读者学习和使用,这里将常见的配合技巧和可能出现的一些问题列举出来,以供 对比查阅。
11.4.1 常见技巧
一般来说,在无线黑客们的实际攻击及测试中,总会遇到诸如无线路由器WPS功能没 有开启、WPS开启时间有限制或者当前管理员在线但没有访问无线路由器进行配置等情况, 所以无线黑客也会使用一些技巧来回避或者绕过这些问题。
1.发送跨站请求
由于大多数无线路由器上的WPS功能默认是没有开启的,而这些无线设备需要使用者 手动进入无线路由器的WPS配置页面,按启动键才能开启WPS功能。在这种情况下,无线 黑客会考虑结合其他方式进行配合攻击,比如针对无线设备的CSRF攻击。
CSRF的英文全称是Cross Site Request Forgery,字面上的意思是跨站点伪造请求。以韩 国IPTime品牌无线路由器为例,将攻击路径伪造后发送至具备管理员权限的用户,将会导 致需要手动启动的WPS功能在后台悄悄启动,此时攻击者即可使用本节讲述的方法与WPS 关联。
关于针对无线设备的CSRF攻击具体细节由于涉及较多的Web方面的知识,这里就不 再深入讲解。 2.构造特殊脚本 和上面提到的CSRF攻击方式不同的是,构造特殊开机脚本这一方法主要是针对如下情 况:无线黑客已经入侵到无线网络中,并通过该无线网络侵入到其他在线的主机系统,获取 到管理员权限。在这一情况下,黑客为了保存自己的“战果”,会考虑植入一些木马等后门 工具。但需要注崽的是,这些木马可能会被查杀、当前已连接的无线网络加密方式及密钥也 可能被修改等情况。
而构造特殊脚本正是应对上面提及情况的方法之一。最简单的脚本可以使用批处理实 现,如下所示的代码为可以在运行后直接访问WPS配置页面并开启WPS功能,但不会有任 何窗口及提示出现。由于是合法访问,所以360、卡巴斯基之类的杀毒软件都不会报警。
在上述代码的基础上,也可以通过再加入for循环语句和无线路由器登录账户及密码, 就可以使得这个批处理每隔3分钟访问一次无线路由器的WPS配置页面并开启WPS功能, 换句话说,也就是随时开放WPS以便下一次连入。将做好的bat批处理文件放置到网关服 务器的组策略中,就是“计算机配置”中的“启动脚本”中,保存并退出,放置在这个位置 的批处理文件将会在每次服务器开机后出现操作系统登录界面时直接运行,也就是说,只要 主机再一次重启后这个脚本就会一直在后台运行。
11.4.2常见问题
由于WPS攻击属于比较高级的攻击方式,需要一些技巧的配合。所以在进行WPS攻 防测试的时候,肯定会遇到一些问题,下面将常见的问题归纳如下,以供读者参考。
1.无线网卡配置工具中没有WPS选项?
答:请使用具备WPS功能的元线网卡。目前支持802.lln的无线网卡基本都具备 此项功能,具体请在购买前仔细查看外包装说明上是否出现WPS的描述。再次强调 一下,当在外包装上产品简述中出现所谓“一键加密”功能的描述时,即为具备WPS 功能。
2.使用wpspy.py或wpscan.py时出现Killed提示并中断的问题
答:如图11-19所示,在监控时可能遇到下述错误提示,并在末尾出现Killed后自动 退出。
图11-19
这是由于驱动不稳定,或者程序本身bug导致,此类中断情况不影响监控效果,重新输 入命令开启即可。