当前位置:主页>科 研>学术交流>

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

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 模拟器,就能轻松抓到整个网络环境里的上网账号。(还支持一键全都拨上,集体下线的恶作剧功能~)

(责任编辑:安博涛)

分享到:

更多
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
  • 微笑/wx
  • 撇嘴/pz
  • 抓狂/zk
  • 流汗/lh
  • 大兵/db
  • 奋斗/fd
  • 疑问/yw
  • 晕/y
  • 偷笑/wx
  • 可爱/ka
  • 傲慢/am
  • 惊恐/jk
用户名: 验证码:点击我更换图片
资料下载专区
图文资讯

容器是如何让“一切都是代码”成为现实的

容器是如何让“一切都是代码”成为现实的

现代应用的发展在很大程度上要归功于DevOps运动的蓬勃兴起以及该运动所产生的各种自动...[详细]

如何快速掌握一门新技术/语言/框架

如何快速掌握一门新技术/语言/框架

IT行业中的企业特点是都属于知识密集型企业。这种企业的核心竞争力与员工的知识和技能...[详细]

建高效数据中心有径可循

建高效数据中心有径可循

能耗问题一直是各大数据中心的心头之痛。有数据表明,2015年我国数据中心能耗预计将高...[详细]

2015黑帽大会:网络灾难后 重建IT安全

2015黑帽大会:网络灾难后 重建IT安全

在遭遇网络灾难后重建IT安全似乎是不可能完成的任务,但根据安全专家Christina Kubeck...[详细]

面对DNS劫持 企业移动应用该如何防护?

面对DNS劫持 企业移动应用该如何防护?

DNS(Domain Name System)劫持又称域名劫持,是指对正常的域名解析请求加以拦截,转而...[详细]

返回首页 返回顶部