近期,Wi-Fi相关的安全话题充斥着电视新闻的大屏幕,先是曝出了路由器劫持的消息,而后又有报道提到黑客可以控制在同一个Wi-Fi下的其他电脑,所以公共Wi-Fi并不安全。紧接着是家用监控摄像头被劫持,用户的大量隐私被曝光。
这些报道的话题五花八门,而节目中给出的防范措施也较为杂乱,缺乏条理与说明。由于相关的信息量非常大,普通用户很难在短时间内弄清原委,对于其中提到的一些防范措施也难以甄别取舍。甚至因为报道的时间限制或操作说明的复杂度,电视新闻中并没有提到一些非常有效的防范措施,十分可惜。
笔者希望能够通过本文,以一个作者搭建的Wi-Fi入侵实例,来分层次梳理说明Wi-Fi入侵的先后顺序和层级,从而引出各类防护的手段的运作方式。使得大家可以选择最行之有效的入侵防范手段,做到事半功倍。其实,只要对家用Wi-Fi设置得当,就可以封死黑客的入侵的通道,保证安全的上网环境。
声明:这是一虚构的故事,因此对图片均进行了模糊化处理。
故事的主人公小黑是一名从事IT相关工作的技术宅男。五一长假来临,宅在家中的他相当无聊,打开手机上的Wi-Fi模块,发现附近有将近10个无线连接点,有几个信号强度还相当不错。心想何不尝试看看能否攻破邻居家的网络呢?说干就干,他决定利用自己的知识储备进行一番尝试,于是故事就这样开始了。
第一步 攻破Wi-Fi连接密码,实现蹭网
【攻击过程】
小黑用自己运行Android系统的手机,搜索了附近广播了SSID的Wi-Fi连接点,计划选取了一个合适的攻击目标。通过一款Wi-Fi信号分析软件,他发现邻居小白家的Tenda_XXXXX无线连接是一个理想的攻击对象:这个Wi-Fi连接的信号非常好,而且常年处于开机状态,显然是最优选之一。
一般为了防止被蹭网,个人用户都会给Wi-Fi设置一个连接密码。常用的两种加密方式又分为WEP加密与WPA加密两种。WEP 加密由于是一种静态加密方式,收发的包中就含有密码信息,因此可以非常容易地就直接破解密码,目前已经很少被使用。而WPA加密相比之下则更为安全一些,由于采用了动态加密的方式,因此只能使用暴力破解的方式来攻克。
小黑这次遇到的SSID是Tenda_XXXXX的Wi-Fi就是采用比较难以破解的WPA加密,虽然相比WEP,破解难度高了不少,但是小黑并没有彻底绝望,因为对于 WPA加密方式的Wi-Fi连接,破解的成功率取决于密码的复杂度与黑客手中的字典大小。
小黑熟练地打开一款名为WiFi万能钥匙的应用,尝试对这个无线网络的密码进行简单的破解,想不到竟然一下子就成功了。小黑迫不及待地进入相关文件查看,发现密码是:111111。
WiFi万能钥匙这款应用的优点在于操作简便,需要的技术知识门槛低,但是缺点也十分明显:由于字典的容量非常有限,只能破解非常简单的一些密码。而小白使用的密码为11111111,是一个非常简单的弱密码,因此使用手机软件就破解成功了,对此小黑也感到非常庆幸。
其实,原本小黑还准备了一台笔记本电脑,安装了Ubuntu系统和Minidwep-gtk和aircrack-ng等软件。这台才是破解Wi-Fi密码的“重型装备”。使用这个软件,可以不间断地发起连接申请,尝试不同的密码组合。由于这次小白设置的密码过于简单,都没有轮到它出场的机会。
【防范支招】
1、强大的密码是Wi-Fi安全最重要的基石
所谓强密码,是指同时包含了大小写字母、数字和符号的8位数以上复杂密码,如Gt/eB7@2。只要对Wi-Fi采用WPA/WPA2加密,并且设置强密码,就几乎不可能被攻破。
密码是黑客攻防中很重要的一环。相关的原理较为复杂,涉及高深的数学知识,甚至有专门研究加密解密的学科。不过,生活中其实存在不少简单的实例,比如常用的U盾,就是基于RSA加密算法。其原理是基于两个大素数相乘生成的动态密钥,而即使以当今最先进的计算机来分解出这两个素数,也需要相当长的时间。要知道,U盾上动态密钥的更新速度一般是1分钟。想在短短的1分钟内将这个大素数的乘机分解开来是不可能的,因此这个加密方法相对是非常安全的。
Wi-Fi加密的原理与U盾非常类似。前面提到过,WPA也是采用动态加密传输的,因此如同RSA算法,只能采用枚举法来进行暴力破解。但是只要密码的强度能够保证,暴力破解需要花费相当长的时间。即使以Minidwep来破解,一个密码一般至少需要使用3秒钟来尝试,如果是一个同时包含了大小写字母,数字和符号的8位的强密码,理论上需要破解的时间大约是5亿年,可见其强度已经足够。如果个人用户每隔几个月更改一次密码,那想要破解这个Wi-Fi密码就有如大海捞针了。对于这样拥有良好安全习惯的用户,往往不会成为黑客的目标。
2、隐藏SSID
隐藏SSID就是指在路由器管理界面进行相关的设置,使得无线网络的SSID不再广播出来,成为一个“隐形网络”,这样同样可以大大降低被黑客攻击的概率。
目前主流的系统,包含Windows XP / Vista / 7 / 8,还有Mac OS,各个发行版的Linux系统,如Ubuntu,Redhat。主流的智能手机操作系统,如iOS,Android,Windows Phone都对隐藏SSID的Wi-Fi网络连接提供了很好的支持,只需要第一次连接网络时手工添加网络的SSID,后续系统便能自动记住这个无线网络连接的相关信息,进行自动连接。
你可能会问,既然我已经隐身了,那是否能够保证绝对的安全呢?答案是否定的。因为只要你的无线网络存在路由器和客户端之间的通讯,SSID仍然是可以被嗅探到的,只不过这样的操作会增加黑客操作的复杂度,考虑到时间成本,黑客往往会绕过这样的对象。
3、MAC绑定
MAC绑定是指在路由器中进行相关的设置,开启MAC地址黑名单或白名单功能。当然,此处更建议使用的是白名单的方式。用户只需将需要连接到网络的设备的物理地址(MAC Address)添加到白名单列表中,那么只有这些添加过的设备可以连接到这个无线网络。
你可能会好奇,既然我已经设置过滤了,那么是否不再可能会被其他机器入侵呢?答案仍然是否定的。因为只要黑客成功破解了你的无线网络密码,并且此时有活动的客户端在网络中,黑客同样可以设法通过抓取网络中传输的封包,来获得那台进入白名单的客户端的MAC地址。接下来,黑客要做的就是将自己的设备的MAC地址修改为和被攻击者的设备相同的MAC地址,这样黑客的设备就可以成功地连接到无线网络中了。
如同隐藏SSID的方法一样,MAC绑定同样可以大大增加黑客破解网络的困难度,额外增加的操作复杂度会让大部分黑客知难而退。
4、关闭无线路由器的QSS、WDS功能
QSS/WDS功能会大大降低无线路由器的安全性,因此如非必须,应将这两个功能关闭。
注意:第2条和第3条防护措施建议同时使用,可以大大强化Wi-Fi的安全性。但是非常偶发的情况是,对于一些设备,例如在一些Linux发行版中,某些无线网卡的驱动对于隐藏SSID的网络的支持并不完善,可能造成无法连接到无线网络。也发现过一些基于ARM平台的电视盒子的自带系统对于MAC绑定的支持不完善,会造成打开MAC白名单功能后无法连接。此时,用户考虑自身使用的便利性,可以只选择其中一种,或者不得已的情况下也可以只采用第1条防护措施。毕竟一个强大的密码才是重中之重,第2条和第3条措施只不过是进一步加强防护的辅助措施而已。
第二步 获取路由器管理权
【攻击过程】
实现“蹭网”的初级目标后,小黑并没有就此罢手,而是尝试进行进一步的深入攻击:攻陷路由器,获得路由器的管理权。
他首先尝试通过浏览器,进入了小白使用的腾达路由器的后台管理界面地址:192.168.0.1。
不料小白竟然很机智地修改了默认的密码。不过,这怎么可能会难倒小黑呢?小黑早已知道了关于路由器的一些秘密:其实,不少国内路由器厂家,为了后期维护管理方便,都在管理固件中留下了后门。这虽然方便了管理,却留下了安全隐患。这不有国外安全专家总结了一下,在这里可以找到:http://routerpwn.com/
通过路由器厂家自己留的后门,小黑顺利地进入了路由器的管理界面。
但是在这个界面下,需要输入指令进行操作,毕竟是不太方便的。于是,小黑尝试着用Wi-Fi连接密码直接输入到管理界面中,发现后台管理界面的密码竟然和Wi-Fi密码是同一个!这真是:踏破铁鞋无觅处,得来全不费功夫!
进入路由器管理界面后,小白使用的电信上网账号和口令瞬间暴露在小黑的面前:
那么,攻陷路由器后,小黑可以进行哪些操作呢?首先,小黑可以获知小白的上网账号和密码。接着,他还可以偷偷地限制小白的上网速度,将大部分速度空出来让给自己使用。小黑甚至可以将小白的设备加入MAC黑名单,使其不能再上网,并且继续修改路由器后台管理界面的密码,使得小白无法用任何设备进入路由器管理界面。最终小白不得不硬件重设路由器,才能恢复上网。当然,如果这样操作的话,小白势必会重新设定新的Wi-Fi密码,小黑之前第一步的行动也就白费了。
其实,从攻击的角度来说,第二步攻陷路由器并不是必须的,但却也是非常重要的一步。
为何说不必须呢?因为即使没有拿到路由器的管理权限,仍然不妨碍后续对路由器和客户端的封包进行嗅探和攻击的操作。
那为何说很重要呢?首先,获得路由管理界面之后,可以非常方便地看到路由器开机之后,每一个曾经联网过的设备,以及这些设备的实时网速,这对于进一步的攻击能够提供一些非常重要的信息。其次,在路由器管理界面中监控客户端的实时流量等数据,对于小白等被攻击者来说,是完全无法感觉到。而如果直接采取嗅探或劫持的操作,被攻击者会察觉到网速明显变慢。因此攻陷路由器后,对小黑来说,更有利于下一步的操作。
路由器管理界面中可以反映每个设备的实时网速:
路由器管理界面中可以查看连接过的设备,以小白的设备为例:
从主机名就可以大致地判断,小白有一只iPhone,一台安装了Windows 7或以上操作系统的x86计算机。另有一个没有主机名的设备,这个还待确认。至于最下方的Android设备,则是入侵者小黑的手机。
另外,在获得路由器管理权限之后,想要进行DNS劫持就变得非常容易了:
进行DNS劫持后,被劫持者的上网记录和登陆过的账号以及明文传输的密码都很容易获得。当然,现在很多社交工具的密码已经不再通过明文传输,而且自行搭建DNS服务器的操作较为复杂,因此小黑并没有进行这步操作,而是考虑下一步直接进行会话劫持。
【防范支招】
1.从防范的源头下手,不要购买存在已知漏洞的路由器。
2.将路由器的固件更新到最新版本,尽量修复已知的漏洞。
3.修改路由器的后台管理密码,并且不要和Wi-Fi密码相同,建议同样使用8位以上,同时含大小写字母和数字符号的高强度密码,如pU$oT8*3。如果可以修改用户名和路由器的管理界面登陆地址,建议一并修改,做到万无一失。
4.检查路由器的DNS选项,看一下是否为空,如果不是空的,说明已经被DNS劫持,应立刻清空DNS设置。同时修改Wi-Fi登陆密码和路由器后台管理密码。
第三步 进行简易嗅探与会话劫持
【攻击过程】
作为一个“有追求”的黑客,小黑又岂会在此时就收手呢?如同很多“菜鸟黑客”一样,小黑想要挖掘出小白更多的秘密。
这时,他使用了一款强大的网络渗透软件:dSploit。dSploit是一款基于Android系统的功能十分全面强大的网络渗透工具,可以提供给网络安全工作人员检查网络的安全性。小黑这次主要使用了其中的“简易嗅探”“会话劫持”“脚本注入”这三个功能。
连接进入网络之后,使用dSploit扫描到的设备列表与路由器管理界面中的一模一样:
前面提到过,在路由器管理界面中,可以大致判断出设备的生产商和类型。而采用dSploit来进行“简易嗅探”之后,可以进一步判明设备的类型和使用的操作系统和浏览器版本。
所谓“简易嗅探”,就是指dSploit这个软件可以嗅探到被监控的设备收到和发出的所有网络封包,并将封包以pcap格式保存到Android手机中。这样,后续只需要用文本编辑器查看这些pcap文件,就能得到相关的信息。
比如上图中,小黑用于入侵的安卓手机,IP地址为192.168.0.103。MAC地址前三位是:90:18:7C。
IP地址为192.168.0.100的设备是小白的iPhone5,系统版本号iOS 7.0.6。
IP地址为192.168.0.101的设备显然是小白的台式机了,操作系统版本号为NT6.1,即Windows 7系统:
之前在路由器管理界面中,没有主机号,无法确认的一台设备的IP地址为192.168.0.104。dSploit显示这台设备的Wi-Fi模块的制造商是太阳诱电(Taiyo Yuden CO.)。而我们通过在IEEE网站上搜索MAC地址前三位的OUI(OUI即为Organizationally Unique Identifier,是MAC地址的前三位,代表厂家编码,可以在MAC地址的分发机构国际电气工程师IEEE的网站查到相应的厂商名称),也可以确认这个设备来自太阳诱电:
太阳诱电是一家知名的日本被动电子元件制造商,其产品一般用于日本本土品牌的设备中。经过数据抓包分析,终于确定了设备是采用3.01版系统的台版PS Vita:
确定设备之后,就可以依据路由器管理界面上的实时流量数据,对当时正在进行通讯的设备进行目的明确的“简易嗅探”操作了。
经过对台式电脑的“简易嗅探”,小黑很轻松地得到了小白的QQ号:
既然得到了QQ号,也就很轻松地依据QQ号,搜索到了小白的微信号。
通过“简易嗅探”这个功能,小黑不仅掌握了小白的很多社交网站的账号,并且熟悉了小白经常浏览的一些网站,对于其使用电脑的习惯有了一个大致的轮廓:小白是一名沉迷于大菠萝3等网游中的单身青年,如同中国绝大多数网民一样,小白使用腾讯的社交软件和360的安全软件。偶尔喜欢用淘宝和京东购物,喜欢购买各种手办和模型,最近希望给自己添置一台笔记本电脑。并且由于小白是单身,因此频繁浏览某相亲网站,积极寻找对象。
经过几天的观察,小黑发现小白会在回家后先在台式机上处理当天的邮件,于是他尝试使用了dSploit另一个异常强大的功能模块:会话劫持。对小白的邮箱进行了劫持:
“会话劫持”功能,顾名思义,就是可以将小白电脑上正在进行的操作劫持到自己的设备中,使得小黑在自己的手机上远程控制着小黑的台式机上的应用,而小白对这一切毫不知情。以邮箱为例,小黑可以在小白的邮箱中做任意的操作,如收发邮件等等。而且,由于小白的邮箱中存有之前找工作时投递的简历,因此小白的姓名,住址,生日,职业,手机号,身份证号,银行卡号,收入等敏感信息也都尽收小黑眼底了。
同样的道理,小白登陆过的微博、人人、淘宝等帐号也都全部可以劫持,通过劫持后的帐号又能看到许多表面看不到的东西。
如果要进一步攻击,小黑完全可以在小白电脑中再植入一个木马,通过键盘记录,可以很轻松地得到小白的很多账号密码甚至网银信息。不过,此时的小黑异常冷静,他知道自己的攻击目标已经达成,因此决定金盆洗手,并且决定通过一个善意的提醒,建议小白修改Wi-Fi密码,给这次渗透攻击的行动,划上一个完美的句号。
这是通过dSploit的 “脚本注入”功能来实现的:小黑将事先编辑好的一段文字,通过Java脚本的形式,推送到小白的台式电脑上:
此时的小白,正在淘宝上兴致勃勃地翻看手办模型,当他正准备打开一张商品大图详细观摩时,突然发现了这段文字:
小白看到后,觉得很是奇怪,误以为是常见的网页弹窗广告。没有予以理会。小黑一看小白不为所动,于是灵机一动,他想到把小白简历上的照片推送给了他:
当小白看到这个之后,才认识到问题的严重性,按照提示迅速修改了密码。大大强化了Wi-Fi的安全性。由于小白这次修改的密码达到了10位以上,并且是同时包含了大小写字母和数字符号的异常强大的密码,以至于小黑也无法再次攻破了,此时的小黑露出了欣慰的笑容。
【防范支招】
1、尽量不要将自己的设备连接进公共的Wi-Fi。即使连入公共Wi-Fi,不要使用涉及到个人隐私的应用,如邮箱,微信,微博,淘宝等。值得注意的是,小黑的一系列操作都是在一台root过的Android手机上完成的,试想,如果小黑带着这只手机进入星巴克进行操作,那么同网段的收发的数据对于小黑来说是尽收眼底的。
2、不要以为杀毒软件或个人防火墙能够阻止被劫持。劫持是基于cookies,即使是登陆时
经过了二次验证(例如新浪微博的微盾动态密码),仍然可以劫持。
3、一旦感觉到网络明显变慢,就很有可能是遭遇了会话劫持。此时应该马上注销退出账号,清除cookies,并立即修改Wi-Fi密码。
4、邮箱和其他社交应用的私信中不要留存重要的信息,应及时删除,并备份到可信的位置。
5、社交应用与手机之间绑定不要过于集中。同时如非必要,头像也可以考虑不要使用本人头像。
6、为进一步保证安全性,可以选择使用加密的网络,比如支持“HTTPS”的网站。另外,如果条件允许,可以考虑使用带动态密码验证的VPN,或对传输的文件进行加密。