目前绝大多数的公司及家用无线网络都设置为使用开放式WEP加密的环境,即允许他人都可以搜索到该接入点公开的SSID标识,这是由无线路由器进行SSID广播实现的。但针对WEP加密而言,因为其非常容易被破解的特点,所以目前已经被公认为是非常威胁甚至毫无意义的加密,已远不能够满足较高一点的安全环境。那么一些稍有安全意识的人都会想:既然如此,我还是关闭SSID广播好了,或者把AP的SSID名称取得奇怪一点,不容易猜到,是不是就没人能破解我的无线网络,也就进不到内网来了?如下图1所示,在TP-LINK无线接入点设置页面中将“允许SSID广播”前的对钩去除即可关闭SSID广播。
图1 在TP-LINK无线路由器中关闭SSID广播
对于Linksys品牌无线路由器或者其它一些无线厂商而言,则可以在无线设置主配置页上将对应的“Wireless SSID Broadcast”设置为Disable即可。如下图2所示。
图2 在Linksys无线路由器中关闭SSID广播
在成功修改了无线路由器上的关闭SSID设置后,也将需要对所有的合法无线客户端进行预设置。这样,若不属于合法客户端,将无法连接此关闭SSID广播的无线路由器。当然,这也是国内大多数无线安全改进文章中所认为的。
作为无线黑客们多采用被动探测方式的无线探测工具Kismet,作为被动探测不仅隐蔽性好,而且更加可靠。因为如果选用主动探测,可以配置AP使它不回复将SSID设置为“任何”的探测请求帧。然而,如果选用被动探测工具来检测AP的SSID,也可能由于AP被配置为不在广播信标帧中传输其SSID而延迟。无线网络的发现之所以是被延迟而不是完全阻止,是因为稍后当合法用户试图和AP进行连接时,SSID将会以明文的方式传输。
过去,无线黑客们发现这种等待很令人厌烦,于是设计出了被称之为Essid-Jack的工具来解决等待问题。这款在2005年拉斯维加斯BlackHat全球黑帽子大会上公开的工具在当时轰动一时,不过有些遗憾的是该工具只支持802.11b,此外被主要用于无线钓鱼攻击。
那么对于当前流行的802.11b/g,恶意的攻击者们也想到很多办法来对付SSID广播关闭。最常用的方法有三种,分别是抓包分析法、暴力破解法及Deauth攻击法。我们先来看看抓包分析法。
方法一:抓包分析法
顾名思义,抓包分析法指的就是可以通过抓取一定数量的无线网络数据包,进行简单分析就可以得到对方的SSID。比如工作在Windows下的OmniPeek或者科来网络分析工具,在抓取一部分无线数据包后,即可分析出SSID(见图3)。当然,使用Ethereal或者Wireshark也可以达到同样的效果。
图4 使用tcpdump分析无线数据
攻击者也可以通过tcpdump实现。在Linux Shell下进行抓包,耐心等待片刻,即可看到SSID出现(见图4)。类似地,Kismet的效果也非常不错。
图4 使用tcpdump分析无线数据 方法二:暴力破解法
除了被动地监听和等待,攻击者也可以通过在线暴力破解的方式来猜测ESSID,该攻击模式支持字典攻击和纯暴力破解两种方式。
如图5所示,首先在相关工具(此工具为MDK3的GUI版本,Java编译)上设置为“Brute Force Mode”(暴力破解模式),可以在下拉菜单里选择目标SSID可能采用的组合方式,这里我们选择为“LCase & UCase”,这个词组实际上是Lowercase和Upcase的缩写,即小写字母和大写字母。这个地方根据需要进行设置。
然后,在下方VICTIM SPECS处设定预攻击的无线接入点MAC地址及工作频道,这些信息可以通过简单的预扫描获得,如使用airodump-ng进行探测。
图5 设置为“Brute Force Mode”(暴力破解模式)
接下来,就可以进行在线攻击了,如图6所示,可以看到尝试破解SSID的速度为124个包/秒,在左下角Packets sent后面还可以看到总共发送的数据包数量统计。
图6 正在暴力破解SSID中
当经过短短14秒后,可以看到目标无线接入点的SSID已经被破解开,如图7所示。
图7成功破解出SSID为“True
当然,若对方采用了有规律的单词、词组或生日等作为SSID的话,也可以考虑使用字典破解的方法来进行破解,如图8所示,勾选“Use Dictionary Mode”,然后在下面栏里指定预先编辑好的专用字典即可。关于字典的制作我会在以后的文章说明。
图8设置为字典破解模式
如图9所示为字典破解过程,可以看到和纯暴力破解模式界面几乎是一样的,但破解效率要略低于暴力破解。
图9 正在进行字典破解SSID中
放大图10,可以看到进行字典破解时在成功载入字典时的提示为: 方法三:Deauth攻击法
在无线D.O.S攻击中,Deauth攻击是其中主要的方式之一。简单来说,通过发送Deauth攻击数据包,可以迫使无线接入点与合法客户端之间断开。对于已关闭SSID广播的AP,由于原本连接的合法无线客户端会尝试与AP再次建立连接,此时无线探测即可截获重新连接时无线数据包中的SSID标识,换句话说,也就使得禁用广播的SSID重现原型。具体步骤如下:
步骤1:打开airodump-ng进行无线探测,可以看到,对于关闭SSID的AP只能显示出其SSID的长度,如图11中ESSID处显示为<length:7>。
图11扫描到关闭SSID的无线接入点
步骤2:通过发送Deauth数据包,迫使AP与已连接无线客户端断开连接,如图12所示。
图12 发送Deauth攻击包
步骤3:此时,回到airodump-ng界面上,即可看到原本无法显示的SSID的位置已经显示为7位的“TP-LINK”。同时,提示为SKA算法。接下来,即可进行破解WEP或者破解WPA的内容。
图13 获得隐藏的SSID
所以,关闭SSID广播确实是一个能够提升无线接入点安全的措施,但是并没有很多人想象的那么有效,攻击者至少还是可以通过上面介绍的三种方式来轻松地获取设置为关闭广播的SSID。上述方法对于WPA、WPA2破解时同样有效。