流量劫持是如何产生的?
流量劫持,这种古老的攻击沉寂了一段时间后,最近又开始闹的沸沸扬扬。 众多知名品牌的路由器相继爆出存在安全漏洞,引来国内媒体纷纷报道。只要用户没改默认密码,打开一个网页甚至帖子,路由器配置就会被暗中修改。互联网一夜间变得岌岌可危。
攻击还是那几种攻击,报道仍是那千篇一律的砖家提醒,以至于大家都麻木了。早已见惯运营商的各种劫持,频繁的广告弹窗,大家也无可奈何。这么多年也没出现过什么损失,也就睁只眼闭只眼。
事实上,仅仅被运营商劫持算是比较幸运了。相比隐匿在暗中的神秘黑客,运营商作为公众企业还是得守法的,广告劫持虽无节操但还是有底线的。这不,能让你看见广告了,也算是在提醒你,当前网络存在被劫持的风险,得留点神;相反,一切看似风平浪静毫无异常,或许已有一个天大的间谍潜伏在网络里,随时等你上钩 —— 这可不是弹广告那样简单,而是要谋财盗号了!
我会被劫持吗?
不少人存在一个错误的观点:只有那些安全意识薄弱的才会被入侵。只要装了各种专业的防火墙,系统补丁及时更新,所有的密码都很复杂,劫持肯定是轮不到我了。
的确,安全意识强的自然不容易被入侵,但那只对传统的病毒木马而已。而在流量劫持面前,几乎是人人平等的。网络安全与传统的系统安全不同,网络是各种硬件设备组合的整体,木桶效应尤为明显。即使有神一样的系统,但遇到 猪一样的设备,你的安全等级瞬间就被拉低了。现在越来越流行便宜的小路由,它们可是承载着各种网上交易的流量,你能放心使用吗?
即使你相信系统和设备都绝对可靠,就能高枕无忧了吗?事实上有问题的设备并不多,但出问题的事却不少,难道其中还存在什么缺陷?没错,还遗漏了最重要的一点:网络环境。
如果网络环境里有黑客潜伏着,即使有足够专业的技术,是在所难逃了,敌暗我明,稍不留神就会落入圈套。
当然,苍蝇不叮无缝的蛋。有哪些隐患导致你的网络环境出现了裂缝?太多了,从古到今流行过的攻击方式数不胜数。甚至可以根据实际环境,自己创造一种。
现在回忆下尝试过的劫持案例。
上古时代:
- Hub 嗅探
- MAC 欺骗
- MAC 冲刷
- ARP 攻击
- DHCP 钓鱼
- DNS 劫持
- CDN 入侵
中世纪:
- 路由器弱口令
- 路由器 CSRF
- PPPoE 钓鱼
- 蜜罐代理
工业时代:
- WiFi 弱口令
- WiFi 伪热点
- WiFi 强制断线
- WLAN 基站钓鱼
Hub 嗅探
集线器(Hub)这种设备如今早已销声匿迹了,即使在十年前也少有人用。作为早期的网络设备,它唯一的功能就是广播数据包:把一个接口的收到的数据包群发到所有接口上。且不吐槽那小得惊人的带宽,光是这转发规则就是多么的不合理。任何人能收到整个网络环境的数据,隐私安全可想而知。
嗅探器成了那个时代的顶尖利器。只要配置好过滤器,不多久就能捕捉到各种明文数据,用户却没有任何防御对策。
防范措施:还在用的赶紧扔了吧。
这种设备目前唯一可用之处就是旁路嗅探。利用广播的特性,可以非常方便分析其他设备的通信,例如抓取机顶盒的数据包而不影响正常通信。
MAC 欺骗
交换机的出现逐渐淘汰了集线器。交换机会绑定 MAC 地址和接口,数据包最终只发往一个终端。因此只要事先配置好 MAC 对应的接口,理论上非常安全了。
不过,很少有人会那么做,大多为了偷懒,直接使用了设备默认的模式 —— 自动学习。设备根据某个接口发出的包,自动关联该包的源地址到此接口。
然而这种学习并不智能,甚至太过死板,任何一个道听途说都会当作真理。用户发送一个自定义源 MAC 地址的包是非常容易的,因此交换机成了非常容易被忽悠的对象。只要伪造一个源地址,就能将这个地址关联到自己的接口上,以此获得受害者的流量。
不过,受害者接着再发出一个包,绑定关系又恢复原先正常的。因此只要比谁发的频繁,谁就能竞争到这个 MAC 地址的接收权。如果伪造的是网关地址,交换机就误以为网关电缆插到你接口上,网络环境里的出站流量瞬间都到了你这里。
当然,除非你有其他出站渠道,可以将窃取的数据代理出去;否则就别想再转发给被你打垮的真网关了,被劫持的用户也就没法上外网。所以这招危害性不是很大,但破坏性很强,可以瞬间集体断网。
防范措施:机器固定的网络尽量绑定 MAC 和接口吧。貌似大多数网吧都绑定了 MAC 和接口,极大增强了链路层的安全性。同时,独立的子网段尽可能划分 VLAN,避免过大的广播环境。
大学里见过千人以上还不划分 VLAN 的,用一根短路网线就可以毁掉整个网络。
MAC 冲刷
之前说了集线器和交换机的转发区别。如果交换机发现一个暂时还未学习到的 MAC 地址,将会把数据包送往何处呢?为了不丢包,只能是广播到所有接口。
如果能让交换机的学习功能失效,那就退化成一个集线器了。由于交换机的硬件配置有限,显然不可能无限多的记录地址对应条目。我们不停伪造不重复的源地址,交换机里的记录表很快就会填满,甚至覆盖原有的学习记录,用户的数据包无法正常转发,只能广播到所有接口上了。
防范措施:还是 MAC 和接口绑定。一旦绑定,该接口只允许固定的源地址,伪造的自然就失效了。当然,好一点的交换机都有些策略,不会让一个接口关联过多的 MAC 地址。
曾经在家试过一次,捕捉到小区内用户上网的流量。不过伪造包发的太快,~15万包/秒,更致命的是发错目标地址,发到城域网准入服务器上,导致工作人员切断了整个小区半天的网络... 所以必须得选一个 VLAN 内的、并且实际存在的地址做为目标 MAC,以免产生大量的数据风暴。
ARP 攻击
这种攻击大家几乎都听出老茧了,即使不懂电脑的人也知道装个 ARP 防火墙保平安,其危害之大可想而知。
简单的说,ARP 就是广播查询某个 IP 对应的 MAC 地址,在用这个 IP 的人回个声。知道这个 IP 对应的 MAC 地址,就可以链路通信了(链路层只能通过MAC地址通信)。如果有人冒充回复,并抢在正常人之前,伪造的答案也就先入为主。IP 被解析到错误的地址上,之后所有的通信都被劫持了。
事实上,早期的系统还有个更严重的BUG:直接给用户发送一个 ARP 回复包,即使对方从没请求过,系统也会接受这个回复,并提前保存里面的记录。这种基于缓存的投毒,让劫持成功率更上一层楼。
防范措施:由于这种攻击太过泛滥,以至大部分路由器都带了防 ARP 攻击的功能。客户端的 ARP 防火墙也数不胜数,似乎成了安全软件的标配。当然,系统也支持强制绑定 IP 与 MAC 的对应,必要时可以使用。
很多教程都是用 Wireshark 来演示,事实上当年有一款叫 Iris 的软件非常好用,可以修改封包再次发送,用它可以很容易搞明白各种攻击的原理。不过N年没更新了还不支持64位的。
DHCP 钓鱼
现实中,并不是每个人都会配置网络参数,或者出于方便,让网络系统自动配置。出于这个目的,DHCP 服务诞生了。
由于没有配置IP地址、网关、DNS 等,在网络上是寸步难行的,因此首先需要从 DHCP 那获得这些。然而,既然连 IP 地址都没有,那又是如何通信的?显然,只能发到广播地址(255.255.255.255)上,而自己则暂时使用无效的IP地址(0.0.0.0)。(事实上,链路层的通信只要有 MAC 地址就行,IP 地址已属于网络层了,但 DHCP 由于某些特殊需要使用的是 UDP 协议)
因为是发往广播,内网环境里的所有用户都能听到。如果存在多个DHCP服务器,则分别予以回复;用户则选择最先收到的。由于规则是如此简单,以至于用户没有选择的余地。
尚若黑客也在内网里也开启了 DHCP 服务,用户收到的回复包很可能就是黑客发出的,这时用户的网络配置完全听天由命了,不想被劫持都难了。
防范措施:如果是用网线上网的话,最好还是手动的配置。当然,管理员应该严格控制 DHCP 回复的权限,只允许交换机特定的接口才有资格发送回复包。
只要是这类提问/抢答模式的,都面临被冒充回答的风险。很多原理都类似。
DNS 劫持
如同 ARP 将 IP 解析成 MAC 地址 一样,DNS 负责将域名解析成 IP 地址。作为网络层的服务,面对的用户更广泛,当然面临的风险也大的多。一旦遭到入侵,所有用户都倒霉了。近些年的重大网络事故无不和 DNS 有关。
DNS 服务一旦被黑客控制,用户发起的各种域名解析,都将被暗中操控。将正常网站解析成黑客服务器的 IP,并事先开启了 HTTP 代理,用户上网时几乎看不出任何破绽;而黑客则获取到所有访问流量,各种网站账号信息都将一览无余。
由于 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 服务器遭受入侵,硬盘上的缓存文件就岌岌可危了,网页被注入脚本,可执行文件被感染,一大波僵尸即将出现。
防范措施:感觉运营商不靠谱的话,换个第三方不带加速的 DNS,或许就不会解析到 CDN 服务器上了。
不少 CDN 黑白通吃,为了省流量不按套路出牌,超过了缓存时间也不更新,甚至还有忽略 URL 问号后面的,导致程序猿们在资源更新的问题上头疼不已。
路由器弱口令
当电脑价格一再下降,到了大家打算买第二台的时候,路由器市场也随之火热起来。
但由于繁琐的配置,差劲的用户体验,至今仍有相当部分的用户不明白如何配置路由器。192.168.1.1 和 admin/admin 几乎成了国内路由器的常量。多少回,用这毫无技术含量的方法进入网吧或图书馆的路由器后台。
如果有人恶搞重启路由,或者给他人限速,你得感谢他的仁慈,这都算不严重。要是把路由器的DNS给改了,那就相当严重了!公网的 DNS 劫持一般不会持续太久,但路由器的 DNS 劫持也许长年累月都不会觉察到。
事实上,不乏一些安全意识强的用户也使用默认密码。理由很简单,目前的路由器有两道门槛:一个 WiFi 连接密码,另一个才是管理密码。很多人设置了复杂的 WiFi 密码就高枕无忧了,心想都连不到我的网络里怎么可能进的了后台?
之前我也有过这观念,但总觉不对劲:万一家里其他电脑或手机中毒了,自动尝试用弱口令爆进路由器后台怎么办。城门都被占领了,城墙再牢固又有何用。
事实上,黑客除了修改 DNS 配置外,还有更恐怖的行为:升级路由器的固件 —— 替换成一个看似完全相同但植入了恶意程序的固件!尽管这目前还尚未普及,然而一旦流行,大批路由器将成为潘多拉魔盒。
防范措施:千万别轻视路由器的密码,其实它比你所有账号都重要。
不改默认密码的用户,神都保佑不了你~
路由器 CSRF
回到本文开始所说的,为什么有那么多路由器会出现这个漏洞呢?也许是路由器的开发人员太高估用户了,认为绝大多数用户都修改了默认密码,因此 CSRF 几乎难以产生。
事实上,国内网民的安全意识远超他们的想象。加上刚才说的,只设置了 WiFi 密码而忽略了管理密码,导致一个恶意程序就能悄悄进入路由器后台。
没想到现在这种病毒还真出现了,而且居然还是 Web 版的!
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 终端服务,显然是最先被收到的。真正的回应包还在大街小巷里传递着,用户和黑客已经开始协商认证了。
不过或许你会说,这必须有人拨号才能上钩,现在都用路由器,长年累月不会断开。如果不想耐心等,也有很简单的方法:来一次集体掉线。
刚刚说过,可以用短路的网线,引发一场广播风暴。不过这太过暴力了,甚至会引起流量异常的报警。我们可以使用更简单有效的方法: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> 关系即可。而且一个小脚本就能断开全城各县市的网络,说明终端部署不能太过集中。
蜜罐代理
由于众所周知的原因,某国对代理的需求居高不下。不管黑的白的,透明的还是高匿的,只要能翻出去就是好的。
VPN 需要用户名密码以及各种认证,中途被劫持几乎是不可能的。黑客抓住了人们的纯真的心里,将目光转到代理上面。的确,加密后的数据中途确实难以劫持,但最终仍要在服务端还原出真实内容吧。如果一时大意,连接了某个免费的 VPN,或许就登上了黑客的贼船了。
相比 HTTP 代理只影响部分功能,VPN 将整个系统的流量都通过穿越过去了。而这一切应用程序并不知晓,仍然将一些重要的数据往外发送,最终被黑客所劫持。
防范措施:不要贪图小利,用那些打着免费幌子的代理。天下没有免费的午餐。
很多蜜罐代理未必是黑客布下的,而是你懂的。
WiFi 弱口令
当互联网延伸到移动设备时,网线成了最大的累赘,无线网络逐渐进入人们视野。如今,由于无线的廉价和便利,几乎应用到所有的便捷设备。一切都不再受限制,人们可以随时随地上网,这是过去难以想象的;黑客也可以随时随地发起攻击,这是过去梦寐以求的。
但无论上网方式如何变化,以太网始终是网络的核心。如同刚才说的 ADSL,尽管载体是电话线路,但最终解调出来的仍是以太网数据。WiFi 也一样,无论电波怎样传播,最终只有还原出标准的以太网封包才能被路由。
无线网络形同一个看不见的巨大集线器,无需任何物理传播介质,附近所有人都可以收听数据信号,专业设备甚至能在更远处捕获。如果没有一种强有力的加密方式把数据封装起来,那么就毫无隐私可言了。
在经历了各种加密被攻破后,WPA2 如今成为无线网络标准加密算法。如果企图通过传统爆后台那样,一次次的尝试弱口令去连接,那效率将是何其的低下。
和拨号不同,WiFi 用户首先需『关联』热点,以建立起物理通道。类似 PPPoE 那样,WiFi 在认证之前也是可以通信的,并且是明文数据 —— 不过,这仅仅是认证数据包明文而已,真正密码显然不会出现在其中。毕竟它和拨号的目的完全不同:一个是为了加密之后所有的流量,而后者仅仅识别下你有没有上网的权限。
通过传统的嗅探工具,可以方便获取这些握手通信包。尽管找不出密码,但里面保存着密钥初始化相关的数据。通过专业的 WPA2 破解工具,加上丰富的密码字典,有相当一部分的无线网络,能在可接受的时间里被破解。
对于不少人来说,无线密码是他第一道也是唯一一道防线。连上之后,不出意外即可轻易进入路由器后台,然后就可以控制他整个内网的流量了。
防范措施:最简单也是最有效的方法:给密码加些特殊符号。
如果给他的路由器刷一个固件,能自动破解其他的无线网络,破解之后自动进后台,自动给它升级自己的固件。。。排山倒海的路由器木马爆发了。
WiFi 热点钓鱼
上面简单的说了无线密码的破解。但若本来就知道密码的情况下,又如何发起入侵呢?
这种场合很常见,在一些商场、餐厅、旅馆等地方,无线网络即使有密码,大家一般也能在墙上或卡片上找到,处于半公开的状态。或者是破解了邻居的无线密码,但无法进入路由器后台,又该如何继续?
如今越来越智能的无线设备,已能很好的防御诸如 MAC 欺骗以及 ARP 攻击这类原始入侵了,因此需要一个更先进和隐蔽的方式,能绕过网络设备,直接发起点对点的进攻。
在大公司或大商场上过无线网的用户会发现,在室内无论走到哪里网络都存在,即使从一层到五层信号照样满格,而在自己家中信号隔墙就下降不少。难道是开了信号特别强大的热点吗?但在建筑外面却收不到。事实上,不难发现每层楼天花板上,都吸附着不少盘子似的东西。没错,正是这些分布在各处的设备,覆盖了整栋楼的无线网络,让信号死角变得更少。
但是同时存在那么多热点,搜索列表里显示的却没有几个。因为他们都有着同样的热点名(SSID),客户端通常会将同名热点合并成一个。至于连接时,系统会选择信号最好的那个。如果这些热点的认证方式也是相同的,无论连哪个都没问题。
仔细揣摩这条特征,不难发现其中大有文章可做 —— 这不天生就为我们钓鱼准备的!我们再开一个同名同认证的伪热点,只要在信号上压倒对方,钓上附近的鱼儿那是妥妥的。
目前几乎还没有哪个客户端对此有防御,无论是商场还是咖啡店,甚至是一些大公司里,对此也束手无策。原因很简单,问题既不出在设备、也不是部署上,更不能归咎与用户。这是整个协议栈的弱点。
发起此攻击的唯一材料,就是一个超大功率的热点,以此来压倒正常的,争做用户『最信赖』的信号源。
其实,每个热点都时时刻刻广播着一种叫 Beacon 的数据包,里面带有热点名等相关的信息。用户网卡收集之后进过筛选分析,即可得知附近有哪些热点,各自信号如何。功率大的热点,用户接收时的信号强度(RSSI)自然也会高一些。
当然,过高的信号源可能会引起一些监控的警觉,自己也被置于巨大的辐射之中。如果仅仅是对某个方位片杀,使用定向天线会有更好的效果。
不过,光有发射能力还是不够的。即使能把 Beacon 推送到数十公里外,让全城都能看见你的热点名,但前来连接的设备可没有那么强劲信号。因此没有一个高灵敏的接收系统,再强的信号也只是一厢情愿罢了。
防范措施:因为是底层的缺陷,这种劫持通常很难防护。从理论上说,热点通常是固定着的,因此可以事先记录下每个热点的3D坐标,然后根据 WiFi 定位时刻监控热点位置,如果某个热点信号出现在远离事先的地方,很可能是钓鱼热点发出的假信号。
但在现实中,要同时追踪那么多设备并不容易。除非所有的无线设备,都自带监控附近热点的功能,那样可以节省大量追踪成本。
不过在安全性高的场合,还是使用『接入认证』,连接时要求输入用户名和密码来准入。
用户成功连上 WiFi 后,导致网络状态发生改变,一些系统会尝试请求某个特定的 URL,如果返回的是 HTTP 302,会自动弹出重定向后的网页。目的是为了方便打开网页版的准入,有时连上 CMCC 会自动弹出一个登录网页就是如此。iPhone,iPad,WP 都支持,MacOS 最新版弹出的网页不会执行脚本了。利用这个废功能来弹广告应该很不错~
WiFi 强制断线
不得不说 WiFi 的另一个缺陷 —— 被下线。类似 PPPoE 主动或被动断开拨号时都有一个注销包,WiFi 也一样。
之前提到,遍历 PPPoE 的会话ID,冒充所有用户发出注销请求,可以断开全城的网络。WiFi 也有类似的缺陷,只不过正好反过来:冒充热点,向所有用户广播注销包,于是所有连着该热点的用户都下线了。
不过,WiFi 的被下线仅仅是认证被注销,用户和热点仍是关联着的。用户接着重新发起认证,因此又给黑客一个获取握手数据的机会。
如果广播持续不断,用户也就一直没法上网,屏幕上会不停的闪烁着『连接中... / 已断开』。对方可能会尝试重启路由,但发现问题仍在,而且所有设备都是这情况,会认为路由器出问题了,于是尝试恢复出厂设置 —— 这一刻,危险降临了!
照国产路由器的风格,出厂时 WiFi 是没有密码的,而且后台基本是弱口令。因此有个非常短暂的安全缝隙,能钻入这台设备并拿下他的网络!如果事先写好脚本,一旦发现有开放的热点,立即连上并且爆入后台,更是可以直接秒杀!对方刚恢复完路由器,还没回到电脑前就已被劫持了,这是无论如何也想不到的。。。
当然,为了防止他之后进入路由器改密码,你必须立即隐藏 SSID,让 Beacon 不再发出,这样大家都看不见这台设备了,只能通过 BSSID(路由器 MAC 地址)来连接。但是人家会有疑问,刚恢复好的路由器怎么看不见?这时得事先建立一个钓鱼热点,名字和那被隐藏的 SSID 一样,将对方引诱到自己的蜜罐上。
在这个蜜罐里开启一个和路由器页面差不多的站点(可以直接反向代理他路由器的页面),拖住用户,让你有充足的时间来操作那台被隐藏的真设备。甚至可以换掉他固件了!
当然,有些设备不让轻易更新固件,需要输入路由器上的某个号码,或者按一个键才能开始。这时得发挥蜜罐站点的作用了,你可以在页面上画个文本框,提示他输入路由器上的那号码,或者直接让他去按那按钮。由于路由器后台太过专业,很少会有人质疑它的权威性,几乎都是按部就班。
事实上,你的蜜罐一直开着,对方肯定会在里面配置 WiFi 密码和管理密码,以及 PPPoE 账号。于是他的一切上网秘密都被掌控!即使不改他路由器也无所谓了,以后可以随时进入。
防范措施:不要轻易恢复路由器的出厂设置。真有必要请务必留神,尽快改掉默认密码。即使周围没有黑客,一些中毒的设备随时可能来连上并爆进后台窜乱。
软硬兼施,这招是不是太阴了?稍微用一点心理学或是社工,原本不怎么严重的漏洞可以扩大很多倍。
WLAN 基站钓鱼
前面说的热点钓鱼,只能在特定的场合下进行。劫持KFC的用户,只能在KFC附近;入侵小区的路由,只能在家完成。这极大的限制了攻击范围,完全没有发挥出无线网络的灵活性。
然而有一种网络,无论走到哪都能收到。打开手机,总能看见 CMCC 这类热点如同幽灵一般存在。如今,WLAN 业务已遍地开花,几乎覆盖了全国各地。它支持更高的频段,并向下兼容 WiFi,设备遍布全城,试图打造一个无线城域网。唯一的遗憾是收费的,而且信号也一般,远不如 3G 实用。
有时我们并没有连接这些热点,系统却自动连上了。原因很简单,之前某个时候手贱,去连过它们。而系统会保存主动连过的热点,再次出现时就自动上了。事实上,去连过这些热点的人不在少数。
不用说,你也想到开热点钓鱼了。并且用户几乎都是用 WiFi 来连接,也就没有必要使用 WLAN 设备。使用之前的大功率热点,取个 CMCC 的名字,放在阳台上对着大街,不一会就连上一堆用户了。要是支持虚 AP 的话,把 CMCC-AUTO,ChinaNet 等等这些名字全部用上,前来光临的就更多了。
上面提到了,不少设备连上 WiFi 后能自动弹网页,利用这个特性,钓鱼就更容易了。大多手机系统为了节省流量,当 WiFi 和 3G 同时可用时,会优先使用 WiFi,于是用户的流量不知不觉流到黑客那里。
事实上,我们还可以把整套钓鱼方案集成到安卓里。利用手机创建的热点吸引附近的用户,捕捉到的流量还可以通过自己的 3G 网络代理出去。使用 Linux 内核强大的转发机制,我们可以轻易的控制用户的各种流量。以后可别嘲笑街上低头玩手机的人,人家说不定正在劫持你呢。
不过,在一些地方例如地铁上面,3G信号很差,难以将热点收到的数据转发出去,因此只能钓鱼无法劫持。这种单机模式是否仍能入侵呢?下篇文章将叙述,如何发起离线钓鱼。
防范措施:WiFi 不用就应及时关闭,以免自动连上不安全的热点。对于一些长期不用的连接记录,不如趁早删了吧。
安卓热点默认只支持10个用户,在街上开个叫 CMCC 的热点,会发现瞬间就连满了。所以还是把笔记本藏书包里,配几个好点的无线网卡,既隐蔽效果也好。大功率天线虽然很过瘾,但不能过度使用,说不定哪天就被查水表了~
结尾
就谈到这里吧,这些只是之前尝试有效的案例,事实上还有太多的途径,要是再算上系统内部的方式那就无数了。但不论如何变化,流量劫持的最终利用方式几乎是如出一辙的 —— 利用它能做些什么呢?终极危害能有多大? 请听下回分解。