谁蹭了我的WiFi?浅谈家用无线路由器攻防

家用无线路由器作为家庭里不可或缺的网络设备,在给普通人带来极大便利的同时,也给处于互联网时代的我们带来了很多安全隐患,本文将针对普通家用无线路由器的常见攻击过程进行拆解并提出相应的防御建议,希望对大家有所帮助。 ‍ ‍

‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ 一、盗取无线密码 ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ 

‍ ‍ 针对无线路由器最常见的攻击方式就是盗取无线密码,常见无线路由器的无线加密方式为WEP和WPA/WP2,通过无线路由配置的加密方式采取不同的攻击手法,再运用一些特殊的技巧,就可以轻易得到无线路由器的无线密码。

下图为常见的无线路由加密方式: ‍ ‍

‍ ‍ ‍ ‍ ‍ ‍

‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ 1.1 WEP破解 ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍

‍ ‍ 如果你的家用路由器的无线加密方式被配置为WEP加密,那么你就得马上进行修改了,因为由于WEP加密体制缺陷,蹭网者能够通过收集足够的握手包(即计算机与无线路由器连接认证过程中的数据包),使用分析密算法还原出密码。此类加密方式的攻击成功率基本接近100%。比较常见的攻击手法是使用MIDIWEP对周围的无线信号进行嗅探,当抓取到足够多的IVS时就可以自动解出无线密码,如下图所示: ‍ ‍

‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ 1.2 WPA/WPA2 ‍ ‍ 爆破 ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍

‍ ‍ 无线路由器的另一种加密方式为WPA/WPA2加密,相比较于WEP加密,暂时未能从一些公开的方法中找到直接破解WPA/WPA2密码的方法,只能先抓获握手包,然后对握手包进行暴力破解,但是结合着一些技巧以及普通用户密码策略比较薄弱,成功的机率也比较高。 ‍ ‍

‍ ‍ 首先,使用feedingbottle(奶瓶)等工具对周围无线网络进行嗅探抓包,抓取到完整的握手包之后,可将保存的握手包在windows下使用工具EWSA进行暴力破解,根据之前测试的数据,使用550Ti的显卡破解速率约为13000/秒,所以使用纯数字的无线密码最为薄弱,单台PC破解一个九位纯数字的时间根据计算约为:999999999/10000/60/60=27.8小时 ‍ ‍

‍ ‍ 万能的某宝更是提供了在线跑握手包的服务,利用集群服务器跑握手包,可大大缩短破解的时间。 ‍ ‍

‍ ‍ ‍ ‍ 1.3 WPS ‍ ‍ 破解 ‍ ‍ ‍ ‍ ‍ ‍

‍ ‍ 其实很少人有人注意到家用无线路由器是上面有一个WPS(QSS或AOSS)功能,而且默认都是开启的,下图是一些常见家用路由器的WPS(QSS或AOSS)功能界面。

‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ WPS是由Wi-Fi联盟组织实施的认证项目,主要致力于简化无线局域网的安装及安全性能配置工作。在支持WPSWPS(QSS或AOSS)的无线路由器上,用户不需要输入无线密码,只需输入PIN码或按下按钮(PBC),就能安全地连入 ‍ ‍ WLAN 。 ‍ ‍ ‍ ‍但是使用PIN码连接无线路由器的这个过程是可以暴力破解的,首先我们先讲一下PIN码的组成,WPS的PIN码是一个8位的纯数字,第8位数是一个校验和(checksum),根据前7位数算出,而在PIN验证时,PIN码的前4位和PIN码的接下来3位是分开验证的,因此,暴力破解PIN码的过程中,只需要尝试11000(10^4+10^3)就可以解出PIN码,然后通过PIN连接路由器抓取到无线密码。 ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍

‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ 暴力破解PIN码时使用的工具为reaver或inflator(图形化reaver),工具可以对周围的无线网络进行扫描,并将开启WPS功能的无线信号标记出来,在选择好暴力破解的的目标后,调用reaver命令行进行破解,如果路由器性能不错且信号比较好,破解速率为2 seconds/pin~~4 seconds/pin,所以可算出来破解出无线密码的最高时间成本为9.17hour(3*11000/60/60),弱一点的路由器在破解过程中会出现死机,这时就要等一段时间,待路由器性能稳定后再进行破解,下图为破解成功时的情况:

‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍

‍ ‍ ‍ ‍ 很多路由器厂商也逐渐意识到PIN码破解的问题,部分无线路由器厂商会增加一些PIN暴力破解防护,在破解这些无线路由器的时候会出现这样的提示: ‍ ‍ ‍ ‍

‍ ‍ 但是经过实践发现,绝大部分路由器会在约60秒后解除限制,这时只需要在reaver 命令里面添加 –l 3 参数,-l 参数是指reaver间隔多久对已经限制了尝试PIN的路由器进行再次尝试破解,命令默认为300,通过设置为3后,大概探测20次约一分后就会开始新的破解,尝试10次PIN码后再次等待约一分钟,如此往复。所以在此类有一些PIN防护的路由器上,破解PIN码速率大约为11 ([60+5*10]/10)seconds/pin,根据之前的公式计算,破解出PIN的最大时间成本为33.6 hour(11*11000/60/60),下图为尝试破解一些有PIN防护时的路由器成功时的情况:

‍ ‍ 1.4 TELNET ‍ ‍ 后门 ‍ ‍ ‍ ‍

某漏洞平台上曾经爆出过很多路由器的公网地址允许telnet远程登录,因为telnet密码和WEB管理密码相同,所以很容易通过(admin:admin)telnet路由器公网地址成功进入到无线路由器,再通过执行wlctlshow命令,可以得到无线路由器的无线密码,常见品牌的家用无线路由器都有部分批次存在这个问题。

部分集成busybox的路由器也存在公网地址默认开启telnet的情况,登录后不仅能看到无线密码,PPPOE的密码也能轻易得到:

‍ ‍ 作者曾编写过一个专门的脚本只用admin:admin的用户名密码组合去尝试登录公网地址的telnet服务,登录成功后只执行一条wlctl show 命令,并将回显信息进行提取,通过扫描一些公网地址网段发现公网上存在着大量公网地址开启telnet且默认密码为admin:admin的家用路由器。下图为工具批量扫描时提取出的部分无线密码: ‍ ‍

‍ ‍ 1.5 APP ‍ ‍ ‍ ‍ ‍ ‍ 共享泄露密码 ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍

‍类似一些WIFI辅助类的手机APP也是泄露无线密码的一个途径。 比如某些APP的默认配置是分享手机中的无线密码,因此手机上连过的所有无线的密码默认是会被分享出去的,包括家用的无线路由器或者朋友的无线路由器,因此如果你或者连接你WIFI的朋友手机装了此类APP,很有可能造成家庭无线密码的泄露,作者安装此类APP后经常尝试搜索周围无线信号的密码,往往都会有收获。‍‍

默认情况下,APP是不会告诉你这些连接成功的密码的,但是由于系统会自动保存成功连接过的WIFI密码,因此root后的安卓手机就可以通过浏览配置文件的方式读取WIFI密码了,方法如下:http://jingyan.baidu.com/article/91f5db1bea61d51c7e05e36e.html‍ ‍

‍ ‍ ‍ ‍ 二、盗取后的危害 ‍ ‍ ‍ ‍

‍ ‍ 2.1 中间人攻击 ‍ ‍

‍ ‍ ‍ ‍ 当获取到无线密码后,黑客便拿到了进入无线局域网的权限,接下来比较常用的攻击手法就是进行中间人嗅探,通过ARP毒化并结合CAIN、wireshark、sslstrip、dsploit等工具,完成对局域网主机的敏感信息嗅探。 ‍ ‍

‍ ‍

下图为SSLSTRIP嗅探网银的原理: ‍ ‍

‍ ‍

‍ ‍ 2.2 盗取 ‍ ‍ PPPOE ‍ ‍ ‍ ‍ 密码 ‍ ‍ ‍ ‍

‍ ‍ 通过以上步骤拿到无线密码通过嗅探或弱口令猜解的方式,就可以很容易地登录到家用路由器做一些配置更改及查看,比如下载路由器配置文件并使用一款routerpassview的软件查看PPPOE密码,也可以直接更改DNS配置,进行DNS层面的钓鱼和中间人攻击。 ‍ ‍

‍ ‍ 三、几点安全建议 ‍ ‍

‍ ‍ 熟悉了以上针对家用无线路由器的攻击手法,我们下面来讲一讲防御: ‍ ‍

‍ ‍

‍ 本文版权属于NSTRT团队。如果你觉得这篇文章有用,可以分享给自己的朋友,同样希望更多的人也关注我们的微信公众号trt917,我们会定期分享一些信息安全相关知识,希望能够对大家有所帮助。 ‍ ‍ ‍

[本文作者NSTRT团队,FreeBuf.COM独家发布文章,未经许可禁止转载]