移动安全 安全管理 应用案例 网络威胁 系统安全应用安全 数据安全 云安全
当前位置: 主页 > 信息安全 > 应用安全 >

揭秘黑客劫持的攻击手段与防御方法 (一)

时间:2014-06-12 16:36来源:TuZhiJiaMi企业信息安全专家 点击:
异次元 流量劫持是一种古老的网络攻击手段,在沉寂了一大段时间后,最近又开始闹的沸沸扬扬。众多知名品牌的路由器相继爆出存在安全漏洞,引来国内媒体纷纷报道。只要用户没改默认密
Tags应用安全(1006)黑客攻防(516)网络流量劫持(1)  

  异次元

  流量劫持是一种古老的网络攻击手段,在沉寂了一大段时间后,最近又开始闹的沸沸扬扬。众多知名品牌的路由器相继爆出存在安全漏洞,引来国内媒体纷纷报道。只要用户没改默认密码,打开一个网页甚至帖子,路由器配置就会被暗中修改,互联网一夜间似乎变得岌岌可危。

  攻击还是那几种攻击,报道仍是那千篇一律的砖家安全提醒,以至于大家都麻木了。早已见惯运营商的各种劫持,频繁的广告弹窗,大家也无可奈何。这么多年也没出现过什么损失,也就睁只眼闭只眼。

  事实上,仅仅被运营商劫持算是比较幸运了。相比隐匿在暗中的神秘黑客,运营商作为公众企业还是得守法的,弹窗广告劫持虽无节操但还是有底线的。这不,能让你看见广告了,也算是在提醒你,当前网络存在被劫持的风险,得留点神;相反,一切看似风平浪静毫无异常,或许已有一个天大的间谍潜伏在网络里,随时等你上钩 —— 这可不是弹广告那样简单,而是要谋财盗号了!

  黑客

  我会被劫持吗?

  不少人存在这样的观点:只有那些安全意识薄弱的才会被入侵。只要装了各种专业得牛逼闪闪的防火墙,系统补丁及时更新升级,所有的密码都设置得很复杂,被入侵的肯定是轮不到我了。

  的确,安全意识强的自然不容易被入侵,但那只对传统的病毒木马而已。而在流量劫持面前,几乎是人人平等的。网络安全与传统的电脑操作系统安全不同,网络是各种硬件设备组合的整体,木桶效应尤为明显。即使有神一样的系统,但遇到猪一样的设备,你的安全等级瞬间就被拉低了。现在越来越流行便宜的小路由,它们可是承载着各种网银、支付宝等等真金白银的交易流量,你能放心使用吗?

  即使你相信系统和路由器设备等都绝对可靠,就能高枕无忧了吗?事实上有问题的设备并不多,但出问题的事却不少,难道其中还存在什么缺陷?没错,还遗漏了最重要的一点:网络环境。

  如果网络环境里有黑客潜伏着,即使有足够专业的技术,是在所难逃了,敌暗我明,稍不留神就会落入圈套。当然,苍蝇不叮无缝的蛋。有哪些隐患导致你的网络环境出现了裂缝?太多了,从古到今流行过的攻击方式数不胜数。甚至可以根据实际环境,自己创造一种。现在回忆下尝试过的劫持案例。

  上古时代:

  Hub 嗅探

  MAC 欺骗

  MAC 冲刷

  ARP 攻击

  DHCP 钓鱼

  DNS 劫持

  CDN 入侵

  中世纪:

  路由器弱口令

  路由器 CSRF

  PPPoE 钓鱼

  mi-guan代{过}{滤}理

  工业时代:

  WiFi 弱口令

  WiFi 伪热点

  WiFi 强制断线

  WLAN 基站钓鱼

  Hub 嗅探

  集线器(Hub)这种设备如今早已销声匿迹了,即使在十年前也少有人用。作为早期的网络设备,它唯一的功能就是广播数据包:把一个接口的收到的数据包群发到所有接口上。且不吐槽那小得惊人的带宽,光是这转发规则就是多么的不合理。任何人能收到整个网络环境的数据,隐私安全可想而知。

  Hub 集线器

  嗅探器成了那个时代的神器,只要配置好过滤器,不久就能捕捉到各种明文数据,用户却没有任何防御对策。

  防范措施:还在用的赶紧扔了吧。

  这种设备目前唯一可用之处就是旁路嗅探。利用其广播的特性,可以非常方便用于分析其他设备的通信,例如抓取机顶盒的数据包而不影响正常通信。

  MAC 物理地址欺骗

  交换机的出现逐渐淘汰了集线器。交换机会绑定 MAC 地址和接口,数据包最终只发往一个终端。因此只要事先配置好 MAC 对应的接口,理论上非常安全了。

  交换机

  不过,很少有人会那么做,大多为了偷懒,直接使用了设备默认的模式 —— 自动学习。设备根据某个接口发出的包,自动关联该包的源地址到此接口。然而这种学习并不智能,甚至太过死板,任何一个道听途说都会当作真理。用户发送一个自定义源 MAC 地址的包是非常容易的,因此交换机成了非常容易被忽悠的对象。只要伪造一个源地址,就能将这个地址关联到自己的接口上,以此获得受害者的流量。

  交换机

  不过,受害者接着再发出一个包,绑定关系又恢复原先正常的。因此只要比谁发的频繁,谁就能竞争到这个 MAC 地址的接收权。如果伪造的是网关地址,交换机就误以为网关电缆插到你接口上,网络环境里的出站流量瞬间都到了你这里。

  当然,除非你有其他出站渠道,可以将窃取的数据代{过}{滤}理出去;否则就别想再转发给被你打垮的真网关了,被劫持的用户也就没法上外网。所以这招危害性不是很大,但破坏性很强,可以瞬间集体断网。

  防范措施:机器固定的网络尽量绑定 MAC 和接口吧。貌似大多数网吧都绑定了 MAC 和接口,极大增强了链路层的安全性。同时,独立的子网段尽可能划分 VLAN,避免过大的广播环境。

  大学里见过千人以上还不划分 VLAN 的,用一根短路网线就可以毁掉整个网络。

  MAC 冲刷

  之前说了集线器和交换机的转发区别。如果交换机发现一个暂时还未学习到的 MAC 地址,将会把数据包送往何处呢?为了不丢包,只能是广播到所有接口。

  MAC 冲刷

  如果能让交换机的学习功能失效,那就退化成一个集线器了。由于交换机的硬件配置有限,显然不可能无限多的记录地址对应条目。我们不停伪造不重复的源地址,交换机里的记录表很快就会填满,甚至覆盖原有的学习记录,用户的数据包无法正常转发,只能广播到所有接口上了。

  MAC 冲刷

  防范措施:还是 MAC 和接口绑定。一旦绑定,该接口只允许固定的源地址,伪造的自然就失效了。当然,好一点的交换机都有些策略,不会让一个接口关联过多的 MAC 地址。

  曾经在家试过一次,捕捉到小区内用户上网的流量。不过伪造包发的太快,~15万包/秒,更致命的是发错目标地址,发到城域网准入服务器上,导致工作人员切断了整个小区半天的网络... 所以必须得选一个 VLAN 内的、并且实际存在的地址做为目标 MAC,以免产生大量的数据风暴。

  ARP 攻击

  这种攻击大家几乎都听出老茧了,即使不懂电脑的人也知道装个 ARP 防火墙 保平安,其危害之大可想而知。简单的说,ARP 就是广播查询某个 IP 对应的 MAC 地址,在用这个 IP 的人回个声。知道这个 IP 对应的 MAC 地址,就可以链路通信了(链路层只能通过MAC地址通信)。

  ARP请求

  如果有人冒充回复,并抢在正常人之前,伪造的答案也就先入为主。IP 被解析到错误的地址上,之后所有的通信都被劫持了。

  ARP 劫持

  事实上,早期的系统还有个更严重的BUG:直接给用户发送一个 ARP 回复包,即使对方从没请求过,系统也会接受这个回复,并提前保存里面的记录。这种基于缓存的投毒,让劫持成功率更上一层楼。

  ARP回复

  防范措施:由于这种攻击太过泛滥,以至大部分路由器都带了防 ARP 攻击的功能。客户端的 ARP 防火墙也数不胜数,似乎成了安全软件的标配。当然,系统也支持强制绑定 IP 与 MAC 的对应,必要时可以使用。

  很多教程都是用 Wireshark 来演示,事实上当年有一款叫 Iris 的软件非常好用,可以修改封包再次发送,用它可以很容易搞明白各种攻击的原理。不过N年没更新了还不支持64位的。

  DHCP 钓鱼

  现实中,并不是每个人都会配置网络参数,或者出于方便,让网络系统自动配置,自动分配IP地址设置DNS等。出于这个目的,DHCP 服务诞生了。

  由于没有配置IP地址、网关、DNS 等,在网络上是寸步难行的,因此首先需要从 DHCP 那获得这些信息。然而,既然连 IP 地址都没有,那又是如何通信的?显然,只能发到广播地址(255.255.255.255)上,而自己则暂时使用无效的IP地址(0.0.0.0)。(事实上,链路层的通信只要有 MAC 地址就行,IP 地址已属于网络层了,但 DHCP 由于某些特殊需要使用的是 UDP 协议)

  因为是发往广播,内网环境里的所有用户都能听到。如果存在多个DHCP服务器,则分别予以回复;用户则选择最先收到的。由于规则是如此简单,以至于用户没有选择的余地。

  DHCP 广播

  尚若黑客也在内网里也开启了 DHCP 服务,用户收到的回复包很可能就是黑客发出的,这时用户的网络配置完全听天由命了,不想被劫持都难了。

  DHCP劫持

  防范措施:如果是用网线上网的话,最好还是手动的配置。当然,管理员应该严格控制 DHCP 回复的权限,只允许交换机特定的接口才有资格发送回复包。

  只要是这类提问/抢答模式的,都面临被冒充回答的风险。很多原理都类似。

  DNS 劫持

  如同 ARP 将 IP 解析成 MAC 地址 一样,DNS 负责将域名解析成 IP 地址。作为网络层的服务,面对的用户更广泛,当然面临的风险也大的多。一旦遭到入侵,所有用户都倒霉了。近些年的重大网络事故无不和 DNS 有关。

  DNS 服务一旦被黑客控制,用户发起的各种域名解析,都将被暗中操控。将正常网站解析成黑客服务器的 IP,并事先开启了 HTTP 代{过}{滤}理,用户还是能正常上网,并且几乎看不出任何破绽;只不过所有流量都是经由黑客的代{过}{滤}理服务器收发的,因而黑客可以轻易获取各种明文传输的密码,比如各种网站账号信息都将一览无余。

  DNS 劫持

  由于 DNS 服务器的重要性,现实中通常有着较高的安全防护,想入侵它系统不是件易事。但实际未必如此兴师动众,一些 DNS 程序本身就存在着设计缺陷,导致黑客能控制某些域名的指向。其中最恶名昭彰的当属 DNS 缓存投毒。

  大家或许已发现,域名->IP->MAC->接口,只要是动态查询的就会多一个环节,风险自然增加。灵活性与安全性始终是不可兼得。

  防范措施:手动设置一些权威的 DNS 服务器,例如谷歌的 8.8.8.8,4.4.4.4 会靠谱的多。

  公网上的 DNS 劫持很少发生,但家用路由器的 DNS 劫持已泛滥成灾了。开头报道的路由器漏洞,最终的利用方式也就是修改了 DNS 地址。

  CDN 入侵

  CDN 能加速大家都知道,但其中原理不少人都不清楚。其实,CDN 本身就是一种 DNS 劫持,只不过是良性的。不同于黑客强制 DNS 把域名解析到自己的钓鱼 IP 上,CDN 则是让 DNS 主动配合,把域名解析到临近的服务器上。这台服务器同样也开启了 HTTP 代{过}{滤}理,让用户感觉不到 CDN 的存在。

  不过 CDN 不像黑客那样贪心,劫持用户所有流量,它只『劫持』用户的静态资源访问,对于之前用户访问过的资源,CDN 将直接从本地缓存里反馈给用户,因此速度有了很大的提升。然而,只要是有缓存的地方,都是大有可为的。一旦 CDN 服务器遭受入侵,硬盘上的缓存文件就岌岌可危了,网页被注入脚本,可执行文件被感染,一大波僵尸即将出现。

  CDN 入侵

  防范措施:感觉运营商不靠谱的话,换个第三方不带加速的 DNS,或许就不会解析到 CDN 服务器上了。

  不少 CDN 黑白通吃,为了省流量不按套路出牌,超过了缓存时间也不更新,甚至还有忽略 URL 问号后面的,导致程序猿们在资源更新的问题上头疼不已。

  路由器弱口令

  当电脑价格一再下降,到了大家打算买第二台的时候,路由器市场也随之火热起来。但由于繁琐的配置,差劲的用户体验,至今仍有相当部分的用户不明白如何配置路由器。192.168.1.1 和 admin/admin 几乎成了国内路由器的常量。多少回,用这毫无技术含量的方法进入网吧或图书馆的路由器后台。

  如果有人恶搞重启路由,或者给他人限速,你得感谢他的仁慈,这都算不严重。要是把路由器的DNS给改了,那就相当严重了!公网的 DNS 劫持一般不会持续太久,但路由器的 DNS 劫持也许长年累月都不会觉察到。

  事实上,不乏一些安全意识强的用户也使用默认密码。理由很简单,目前的路由器有两道门槛:一个 WiFi 连接密码,另一个才是管理密码。很多人设置了复杂的 WiFi 密码就高枕无忧了,心想都连不到我的网络里怎么可能进的了后台?

  之前我也有过这观念,但总觉不对劲:万一家里其他电脑或手机中毒了,自动尝试用弱口令爆进路由器后台怎么办。城门都被占领了,城墙再牢固又有何用。

  路由器弱口令

  事实上,黑客除了修改 DNS 配置外,还有更恐怖的行为:升级路由器的固件 —— 替换成一个看似完全相同但植入了恶意程序的固件!尽管这目前还尚未普及,然而一旦流行,大批路由器将成为潘多拉魔盒。

  防范措施:千万别轻视路由器的密码,其实它比你所有账号都重要。

  不改默认密码的用户,神都保佑不了你~

  路由器 CSRF

  回到本文开始所说的,为什么有那么多路由器会出现这个漏洞呢?也许是路由器的开发人员太高估用户了,认为绝大多数用户都会去修改了默认密码,因此 CSRF 几乎难以产生。事实上,国内网民的安全意识远超他们的想象。加上刚才说的,只设置了 WiFi 密码而忽略了管理密码,导致一个恶意程序就能悄悄进入路由器后台。没想到现在这种病毒还真出现了,而且居然还是 Web 版的!

  路由器 CSRF

  CSRF 漏洞让病毒木马都用不着了。用户直接访问一个网页,甚至是一帖子,浏览器就会自动向路由器发起修改配置的请求。由于国产路由器的网页开发是如此的差劲,登录基本都是用既不安全又丑陋的 HTTP 401 弹框。这种登录只需在 URL 里填上『用户名:密码@』即可自动通过,即使登录失败也不会有什么提示。

  防范措施:绝对要看管好路由器密码,并且定期去检查配置是否被篡改。

  看过路由器页面源代码会发现,那简直是惨不忍睹,甚至还是 IE5 时代的风格。路由器芯片都是采购的,内核也有开源的,所谓的『自主研发』就是做了那几个页面?

  PPPoE 钓鱼

  好了,不吐槽路由器了,下面说说再高级的路由器也无法避免的事。除了一些大公司或学校,用的是固定的专线接入上网,个人或者小组织很少会使用这种土豪级套餐,只能老老实实的拨号上网 —— 无论是电信,还是网通铁通各种通。

  不少人都存在误区,认为拨号是物理信号的建立过程,在没有拨上之前,点对点是不通的。如果真是这样,那么拨号时账号密码是如何传过去的呢?显然不可能。事实上,终端之间时刻都是畅通的,只不过不拨号就无法得到IP、网关、会话等参数,即使强制把包发给网关,人家虽能收到,但没有认证的会话是不予理睬的,你自然没法上网。

  PPPoE,大家经常在拨号时看到这词。Point-Point Protocol over Ethernet,故名思议,就是点对点的协议:用户发送账号密码认证给终端(BRAS),并得到上网 IP、网关地址、会话等。而且协议是基于以太网的,哪怕线路不是,也得想办法把数据封装进去。

  传统的 ADSL 是通过电话线上网的,于是需要一个『猫』来把以太网数据调制成电话信号,最终通过电信交换机传输。这种设备保障每家每户都是独立的,以免电话信号被窃听。

  然而,后来兴起的各种通就不一定了。不少打着的『千兆到楼,百兆到家』的宽带,就是建了N个小区局域网,然后合并到一个大的城域网(MAN)里。所谓的『百兆』,无非就是拖进你家的那根网线插在楼下一个 100Mbps 的交换机上而已。

  用过网通的都知道,百兆带宽并没有快到哪里,甚至在一些南方地区网速慢如蜗牛。但在下载的时候,却能轻松飙到数兆每秒。这时局域网的作用就发挥出来了,如果附近有多个人在看同样的视频,P2P 就直接在内网里共享流量了,大幅减轻了节点的压力。

  但是,整个小区成了一个局域网,是多么的不安全。有时甚至不合理的 VLAN 划分,导致多个小区成一内网。要是有人开启 DHCP 服务,其他用户插上网线就能上网了,连拨号都不用,难道天上掉馅饼了?如果敢吃,那可能就落入黑客的陷阱了。

  当然,现在直接插网线的并不多,基本通过路由器自动拨号了。但他们的协议都是一样的 —— PPPoE,一种极不安全的协议。

  类似 DHCP 协议,PPPoE 也是通过广播来探寻有哪些可用的终端,意味着整个小区的内网用户都能收到;同时探寻包一直往上冒泡,直到被城域网的终端们收到,然后开始纷纷回应。

  PPPoe广播

  如果小区里有人私自开启一个 PPPoE 终端服务,显然是最先被收到的。真正的回应包还在大街小巷里传递着,用户和黑客已经开始协商认证了。

  PPPOE钓鱼

  不过或许你会说,这必须有人拨号才能上钩,现在都用路由器,长年累月不会断开。如果不想耐心等,也有很简单的方法:来一次集体掉线。刚刚说过,可以用短路的网线,引发一场广播风暴。不过这太过暴力了,甚至会引起流量异常的报警。我们可以使用更简单有效的方法:MAC 欺骗,不停伪造终端服务器的 MAC 地址,就可以将小区用户的数据包统统吸过来了。

  PPPoE 使用的是一种隧道方式,将任何数据都封装在其栈下,因此捕捉到用户任意一个包,即可得到 PPPoE 栈上的会话 ID。然后冒充终端,向用户发送一个『断开连接』的指令,用户就乖乖下线了。使用这种方法,分分钟就能让整个小区的用户重新拨一次号,于是可以快速钓鱼了。

  还有更糟的是,PPPoE 绝大多数时候都是明文传输用户名和密码的,因此还能额外获得用户发来的认证账号。

  前面吐槽了大学寝室楼 1000 多机器还不划 VLAN 的,于是写一个简单的 PPPoE 模拟器,就能轻松抓到整个网络环境里的上网账号。(还支持一键全都拨上,集体下线的恶作剧功能~)

  盗上网账号

  防范措施:由于 PPPoE 的安全严重依赖物理层,所以尽量不要装以太网接入的宽带。当然,管理员们应该严格限制 PPPoE 搜寻回复包,就像 DHCP 那样只允许特定接口出现。事实上小区内部是不可能出现 BRAS 服务器的,因此只允许交换机的 WAN 口出现回复包,那样就不容易被钓鱼了。

  PPPoE 还有个更严重 BUG,会话 ID 只有 2 字节,最多 65536 种可能。事先构造个『拨号断开』的请求包,接着把会话 ID 依次遍历一下,就能让某个终端服务器的所有用户下线。如果事先收集好所有终端服务器地址,可以发起一次全城断网- -

  这个 BUG 应该早已经修复了,只需绑定 <会话 ID,用户 MAC,小区 VLAN-ID> 关系即可。而且一个小脚本就能断开全城各县市的网络,说明终端部署不能太过集中。

  mi-guan代{过}{滤}理

  由于众所周知的原因,某国对代{过}{滤}理的需求居高不下。不管黑的白的,透明的还是高匿的,只要能翻出去就是好的。VPN 需要用户名密码以及各种认证,中途被劫持几乎是不可能的。黑客抓住了人们的纯真的心里,将目光转到代{过}{滤}理上面。的确,加密后的数据中途确实难以劫持,但最终仍要在服务端还原出真实内容吧。如果一时大意,连接了某个免费的 VPN,或许就登上了黑客的贼船了。

  相比 HTTP 代{过}{滤}理只影响部分功能,VPN 将整个系统的流量都通过穿越过去了。而这一切应用程序并不知晓,仍然将一些重要的数据往外发送,最终被黑客所劫持。

  mi-guan代{过}{滤}理

  防范措施:不要贪图小利,用那些打着免费幌子的代{过}{滤}理。天下没有免费的午餐。

  很多mi-guan代{过}{滤}理未必是黑客布下的,而是你懂的。

  WiFi 弱口令

  当互联网延伸到移动设备时,网线成了最大的累赘,无线网络逐渐进入人们视野。如今,由于无线的廉价和便利,几乎应用到所有的便捷设备。一切都不再受限制,人们可以随时随地上网,这是过去难以想象的;黑客也可以随时随地发起攻击,这是过去梦寐以求的。

  但无论上网方式如何变化,以太网始终是网络的核心。如同刚才说的 ADSL,尽管载体是电话线路,但最终解调出来的仍是以太网数据。WiFi 也一样,无论电波怎样传播,最终只有还原出标准的以太网封包才能被路由。

  无线网络形同一个看不见的巨大集线器,无需任何物理传播介质,附近所有人都可以收听数据信号,专业设备甚至能在更远处直接捕获。如果没有一种强有力的加密方式把数据封装起来,那么就毫无隐私可言了。

  在经历了各种加密被攻破后,WPA2 如今成为无线网络标准加密算法。如果企图通过传统爆后台那样,一次次的尝试弱口令去连接,那效率将是何其的低下。

  和拨号不同,WiFi 用户首先需『关联』热点,以建立起物理通道。类似 PPPoE 那样,WiFi 在认证之前也是可以通信的,并且是明文数据 —— 不过,这仅仅是认证数据包明文而已,真正密码显然不会出现在其中。毕竟它和拨号的目的完全不同:一个是为了加密之后所有的流量,而后者仅仅识别下你有没有上网的权限。

  通过传统的嗅探工具,可以方便获取这些握手通信包。尽管找不出密码,但里面保存着密钥初始化相关的数据。通过专业的 WPA2 破解工具,加上丰富的密码字典,有相当一部分的无线网络,能在可接受的时间里被破解。

  WiFi 弱口令

  对于不少人来说,无线密码是他第一道也是唯一一道防线。连上之后,不出意外即可轻易进入路由器后台,然后就可以控制他整个内网的流量了。

  防范措施:最简单也是最有效的方法:给密码加些特殊符号。

  如果给他的路由器刷一个固件,能自动破解其他的无线网络,破解之后自动进后台,自动给它升级自己的固件。。。排山倒海的路由器木马爆发了。

  WiFi 热点钓鱼

  上面简单的说了无线密码的破解。但若本来就知道密码的情况下,又如何发起入侵呢?这种场合很常见,在一些商场、餐厅、旅馆等地方,无线网络即使有密码,大家一般也能在墙上或卡片上找到,处于半公开的状态。或者是破解了邻居的无线密码,但无法进入路由器后台,又该如何继续?

  如今越来越智能的无线设备,已能很好的防御诸如 MAC 欺骗以及 ARP 攻击这类原始入侵了,因此需要一个更先进和隐蔽的方式,能绕过网络设备,直接发起点对点的进攻。

  在大公司或大商场上过无线网的用户会发现,在室内无论走到哪里网络都存在,即使从一层到五层信号照样满格,而在自己家中信号隔墙就下降不少。难道是开了信号特别强大的热点吗?但在建筑外面却收不到。事实上,不难发现每层楼天花板上,都吸附着不少盘子似的东西。没错,正是这些分布在各处的设备,覆盖了整栋楼的无线网络,让信号死角变得更少。

  但是同时存在那么多热点,搜索列表里显示的却没有几个。因为他们都有着同样的热点名(SSID),客户端通常会将同名热点合并成一个。至于连接时,系统会选择信号最好的那个。如果这些热点的认证方式也是相同的,无论连哪个都没问题。

  WiFi 热点钓鱼

  仔细揣摩这条特征,不难发现其中大有文章可做 —— 这不天生就为我们钓鱼准备的!我们再开一个同名同认证的伪热点,只要在信号上压倒对方,钓上附近的鱼儿那是妥妥的。

  WiFi 钓鱼

  目前几乎还没有哪个客户端对此有防御,无论是商场还是咖啡店,甚至是一些大公司里,对此也束手无策。原因很简单,问题既不出在设备、也不是部署上,更不能归咎与用户。这是整个协议栈的弱点。

  发起此攻击的唯一材料,就是一个超大功率的热点,以此来压倒正常的,争做用户『最信赖』的信号源。其实,每个热点都时时刻刻广播着一种叫 Beacon 的数据包,里面带有热点名等相关的信息。用户网卡收集之后进过筛选分析,即可得知附近有哪些热点,各自信号如何。功率大的热点,用户接收时的信号强度(RSSI)自然也会高一些。

  当然,过高的信号源可能会引起一些监控的警觉,自己也被置于巨大的辐射之中。如果仅仅是对某个方位片杀,使用定向天线会有更好的效果。不过,光有发射能力还是不够的。即使能把 Beacon 推送到数十公里外,让全城都能看见你的热点名,但前来连接的设备可没有那么强劲信号。因此没有一个高灵敏的接收系统,再强的信号也只是一厢情愿罢了。

  防范措施:因为是底层的缺陷,这种劫持通常很难防护。从理论上说,热点通常是固定着的,因此可以事先记录下每个热点的3D坐标,然后根据 WiFi 定位时刻监控热点位置,如果某个热点信号出现在远离事先的地方,很可能是钓鱼热点发出的假信号。

  但在现实中,要同时追踪那么多设备并不容易。除非所有的无线设备,都自带监控附近热点的功能,那样可以节省大量追踪成本。不过在安全性高的场合,还是使用『接入认证』,连接时要求输入用户名和密码来准入。

  用户成功连上 WiFi 后,导致网络状态发生改变,一些系统会尝试请求某个特定的 URL,如果返回的是 HTTP 302,会自动弹出重定向后的网页。目的是为了方便打开网页版的准入,有时连上 CMCC 会自动弹出一个登录网页就是如此。iOS,Android,WP 都支持,MacOS 最新版弹出的网页不会执行脚本了。利用这个废功能来弹广告应该很不错~

  WiFi 强制断线

  不得不说 WiFi 的另一个缺陷 —— 被下线。类似 PPPoE 主动或被动断开拨号时都有一个注销包,WiFi 也一样。之前提到,遍历 PPPoE 的会话ID,冒充所有用户发出注销请求,可以断开全城的网络。WiFi 也有类似的缺陷,只不过正好反过来:冒充热点,向所有用户广播注销包,于是所有连着该热点的用户都下线了。

  WIFI 强制断线

  不过,WiFi 的被下线仅仅是认证被注销,用户和热点仍是关联着的。用户接着重新发起认证,因此又给黑客一个获取握手数据的机会。如果广播持续不断,用户也就一直没法上网,屏幕上会不停的闪烁着『连接中... / 已断开』。对方可能会尝试重启路由,但发现问题仍在,而且所有设备都是这情况,会认为路由器出问题了,于是尝试恢复出厂设置 —— 这一刻,危险降临了!

  照国产路由器的风格,出厂时 WiFi 是没有密码的,而且后台基本是弱口令。因此有个非常短暂的安全缝隙,能钻入这台设备并拿下他的网络!如果事先写好脚本,一旦发现有开放的热点,立即连上并且爆入后台,更是可以直接秒杀!对方刚恢复完路由器,还没回到电脑前就已被劫持了,这是无论如何也想不到的。。。

  当然,为了防止他之后进入路由器改密码,你必须立即隐藏 SSID,让 Beacon 不再发出,这样大家都看不见这台设备了,只能通过 BSSID(路由器 MAC 地址)来连接。但是人家会有疑问,刚恢复好的路由器怎么看不见?这时得事先建立一个用于钓鱼的假热点,名字和那被隐藏的 SSID 一样,将对方引诱到自己的mi-guan上。

  在这个mi-guan里开启一个和路由器页面差不多的站点(可以直接反向代{过}{滤}理他路由器的页面),拖住用户,让你有充足的时间来操作那台被隐藏的真设备。甚至可以换掉他固件了!当然,有些设备不让轻易更新固件,需要输入路由器上的某个号码,或者按一个键才能开始。这时得发挥mi-guan站点的作用了,你可以在页面上画个文本框,提示他输入路由器上的那号码,或者直接让他去按那按钮。由于路由器后台太过专业,很少会有人质疑它的权威性,几乎都是按部就班。

  路由器mi-guan

  事实上,你的mi-guan一直开着,对方肯定会在里面配置 WiFi 密码和管理密码,以及 PPPoE 账号。于是他的一切上网秘密都被掌控!即使不改他路由器也无所谓了,以后可以随时进入。

  防范措施:不要轻易恢复路由器的出厂设置。真有必要请务必留神,尽快改掉默认密码。即使周围没有黑客,一些中毒的设备随时可能来连上并爆进后台窜乱。

  软硬兼施,这招是不是太阴了?稍微用一点心理学或是社会工程学,原本不怎么严重的漏洞可以扩大很多倍。

  WLAN 基站钓鱼

  前面说的热点钓鱼,只能在特定的场合下进行。劫持 KFC 的用户,只能在 KFC 附近;入侵小区的路由,只能在家完成。这极大的限制了攻击范围,完全没有发挥出无线网络的灵活性。然而有一种网络,无论走到哪都能收到。打开手机,总能看见 CMCC 这类热点如同幽灵一般存在。如今,WLAN 业务已遍地开花,几乎覆盖了全国各地。它支持更高的频段,并向下兼容 WiFi,设备遍布全城,试图打造一个无线城域网。唯一的遗憾是收费的,而且信号也一般,远不如 3G 实用。

  有时我们并没有连接这些热点,系统却自动连上了。原因很简单,之前某个时候手贱,去连过它们。而系统会保存主动连过的热点,再次出现时就自动上了。事实上,去连过这些热点的人不在少数。不用说,你也想到开热点钓鱼了。并且用户几乎都是用 WiFi 来连接,也就没有必要使用 WLAN 设备。使用之前的大功率热点,取个 CMCC 的名字,放在阳台上对着大街,不一会就连上一堆用户了。要是支持虚 AP 的话,把 CMCC-AUTO,ChinaNet 等等这些名字全部用上,前来光临的就更多了。

  上面提到了,不少设备连上 WiFi 后能自动弹网页,利用这个特性,钓鱼就更容易了。大多手机系统为了节省流量,当 WiFi 和 3G 同时可用时,会优先使用 WiFi,于是用户的流量不知不觉流到黑客那里。

  WLAN 钓鱼

  事实上,我们还可以把整套钓鱼方案集成到 Android 设备里。利用手机创建的热点吸引附近的用户,捕捉到的流量还可以通过自己的 3G 网络代{过}{滤}理出去。使用 Linux 内核强大的转发机制,我们可以轻易的控制用户的各种流量。以后可别嘲笑街上低头玩手机的人,人家说不定正在劫持你呢。不过,在一些地方例如地铁上面,3G 信号很差,难以将热点收到的数据转发出去,因此只能钓鱼无法劫持。这种单机模式是否仍能入侵呢?下篇文章将叙述,如何发起离线钓鱼。

  防范措施:WiFi 不用就应及时关闭,以免自动连上不安全的热点。对于一些长期不用的连接记录,不如趁早删了吧。

  安卓热点默认只支持 10 个用户,在街上开个叫 CMCC 的热点,会发现瞬间就连满了。所以还是把笔记本藏书包里,配几个好点的无线网卡,既隐蔽效果也好。大功率天线虽然很过瘾,但不能过度使用,说不定哪天就被查水表了~

------分隔线----------------------------

推荐内容