作为《DNS攻击防范科普系列》的最后一篇,今天我们来好好聊聊DNS劫持 。先回顾一下DNS劫持的概念?DNS劫持即通过某种技术手段,篡改正确域名和IP地址的映射关系,使得域名映射到了错误的IP地址,因此可以认为DNS劫持是一种DNS重定向攻击 。DNS劫持通常可被用作域名欺诈,如在用户访问网页时显示额外的信息来赚取收入等;也可被用作网络钓鱼,如显示用户访问的虚假网站版本并非法窃取用户的个人信息 。
那DNS劫持到底有多大的危害呢?我们来看两个真实的大事件:
DNS劫持大事记事件1、《AWS route53 BGP路由泄漏事件》
? 事件危害:据不完全统计,DNS劫持导致两个小时内有多个用户的以太坊钱包被转账清空,共计至少13000美元的资产被黑客盗取 。
? 事件还原: 事件发生在2018年4月24日 。黑客针对四段分配给AWS,本应作为AWS route53 DNS服务器服务地址的IP空间(205.251.192.0/23, 205.251.194.0/23, 205.251.196.0/23, 205.251.198.0/23)发布了虚假的BGP路由,导致在BGP泄漏的两个小时期间,本应该AWS route53 DNS服务器的DNS查询都被重定向到了黑客的恶意DNS服务器 。且黑客DNS劫持的目标十分明确,恶意DNS服务器只响应对myetherwallet.com的查询,其他域名的查询均返回SERVFAIL 。一旦用户没有注意“网站不安全”的提示而访问myetherwallet.com登录自己的以太坊钱包,黑客就可以轻易获取用户的私钥进而窃取用户的数字货币资产 。正常情况的DNS,和劫持后的DNS的情况,请参考如下攻击示意图(来自cloudflare博客):
正常情况:
文章插图
BGP泄漏后:
文章插图
事件2、《巴西银行钓鱼事件》
? 事件危害:黑客诱导原本想访问正常银行网站的受害者访问到钓鱼网站,并恶意窃取受害者的银行账目密码信息 。
? 事件还原:事件发生在2018年 。黑客利用D-Link路由器的漏洞,入侵了至少500个家用路由器 。黑客入侵后更改受害者路由器上的DNS配置,将受害者的DNS请求重定向到黑客自己搭建的恶意DNS服务器上 。黑客入侵后更改受害者路由器上的DNS配置,将受害者的DNS请求重定向到黑客自己搭建的恶意DNS服务器上,最终诱导原本想访问正常银行网站的受害者访问到钓鱼网站,并恶意窃取受害者的银行账目密码信息 。
文章插图
上面两个案例都是触目惊心啊 。接下来我们来介绍一下黑客们是怎么做到DNS劫持的?
DNS解析原理介绍劫持原理前,你需要先了解典型的DNS解析流程 。
文章插图
客户端发起递归DNS请求,本地递归DNS(大多数情况下为运营商DNS)或者公共DNS通过迭代查询请求多级的DNS权威服务器,并最终将查询结果返回给客户端 。可以看到,一次完整的DNS查询:
• 链路长 。查询过程包含多次,多级的网络通信 。
• 参与角色多 。查询过程涉及客户端,DNS递归服务器,权威服务器等角色 。在一次完整DNS查询链路的各个环节,其实都有可能被DNS劫持,下面的章节会逐一分析各种类型的DNS劫持 。
DNS劫持分类我们按照客户端侧--递归DNS服务器--权威DNS服务器的路径,将DNS劫持做如下分类:
【一、本地DNS劫持】
客户端侧发生的DNS劫持统称为本地DNS劫持 。本地DNS劫持可能是:
- 黑客通过木马病毒或者恶意程序入侵PC,篡改DNS配置(hosts文件,DNS服务器地址,DNS缓存等) 。
- 黑客利用路由器漏洞或者破击路由器管理账号入侵路由器并且篡改DNS配置 。
- 一些企业代理设备(如Cisco Umbrella intelligent proxy)针对企业内部场景对一些特定的域名做DNS劫持解析为指定的结果 。
DNS解析过程中发生在客户端和DNS服务器网络通信时的DNS劫持统一归类为DNS解析路径劫持 。通过对DNS解析报文在查询阶段的劫持路径进行划分,又可以将DNS解析路径劫持划分为如下三类:
• DNS请求转发
通过技术手段(中间盒子,软件等)将DNS流量重定向到其他DNS服务器 。
案例:
文章插图
图片来自《巫俊峰, 沈瀚. 基于旁路抢答机制的异网DNS管控实践. 电信技术[J]》
• DNS请求复制
推荐阅读
- 通过监控DNS记录,来保护网站的几种方式?你需要了解
- 晚上找女孩聊天开头话 深夜找女生聊天开场白
- 地球的空气从哪里来?聊聊你不知道的空气史
- 微信聊天“潜规则”:不要上来就问“在吗”
- 通过DNS重绑定实施SSRF攻击
- 聊一聊山东名茶日照绿茶
- 梦见老奶奶跟我说话 梦到和健在的奶奶聊天
- CentOS 8 清除 DNS 缓存的方法
- php老司机和你聊聊学习底层源码的一些感悟
- 聊聊sql优化的15个小技巧,太赞了