主页 > 网络知识 > 我们身边的“潜伏者”?揭开DNS的真实面目!

我们身边的“潜伏者”?揭开DNS的真实面目!

DNS 是我们日常网络访问中不可或缺的服务之一,因为域名的存在,使得我们访问网络目标时不用再记忆复杂而无规律的 IP 地址。

然而几乎我们每天都在频繁使用的服务,可能正在被恶意的利用来牟利。

我们平时浏览网页时

是不是经常在右下角携带各种广告?

是否还记得

2010 年百度被伊朗黑客 DNS 劫持的事件

登录百度却打开了伊朗黑客的网站

以上这些事件都是由于 DNS 劫持而实现的。

那么到底什么是 DNS,什么又是 DNS 劫持,今天就对此做一个详解。

DNS 特征详解

DNS

(Domain Name System,域名系统)

互联网上作为域名和 IP 地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的 IP 数串。

通过域名,最终得到该域名对应的 IP 地址的过程叫做域名解析(或主机名解析)。DNS 工作在 TCP 53 端口和 UDP 53 端口。TCP 53 端口用于 DNS 区域传送,UDP 53 端口用于 DNS 查询和应答。

01

DNS 记录类型

A(A 记录):记录一个域名对应的 IP 地址,DNS 中最重要的记录类型

CNAME(别名):记录了一个标准域名对应的别名

MX(邮件交换器):记录了域中负责收发邮件的服务器名称

NS(名称服务器):记录了某个区域中负责域名解析的授权服务器名称

02

域名查询请求流程

1.判断域名是否为本机

2.查询本地 DNS 缓存

ipconfig /displaydns //查询本机 DNS 缓存

ipconfig /flushdns //清空本机 DNS 缓存

3.查询本地 hosts 文件

Windows 下 hosts 文件位置:

C:\windows\system32\drivers\etc\hosts

Linux 下 hosts 文件位置:

/etc/hosts

4.向 DNS 服务器发起查询请求

03

DNS 其他协议特征

DNS 报文只使用一个序列号来进行有效性鉴别,序列号由客户程序设置并由服务器返回结果,客户程序通过它来确定响应与查询是否匹配,这就引入了序列号攻击的危险

在 DNS 应答报文中可以附加信息,该信息可以和所请求的信息没有直接关系,这样,攻击者就可以在应答中随意添加某些信息,指示某域的权威域名服务器的域名及 IP,导致在被影响的域名服务器上查询该域的请求都会被转向攻击者所指定的域名服务器上去,从而对网络的完整性构成威胁。

DNS 的高速缓存机制,当一个域名服务器收到有关域名和 IP 的映射信息时,它会将该信息存放在高速缓存中,当再次遇到对此域名的查询请求时就直接使用缓存中的结果而无需重新查询。

DNS 劫持原理

DNS劫持又称域名劫持

是指通过相关手段使被害人主机解析域名时,获取一个错误的 IP 地址,借此来实现数据监听、钓鱼等攻击。由于域名解析有多种途径可实现,所以 DNS 劫持的手段也有很多。

01

DNS 缓存污染

通过伪造 DNS 查询响应,让受害人主机在 DNS 缓存中记录一个虚假的 IP。

由于 DNS 协议本身并不具备识别解析结果真伪的能力,所以只要缓存中存在虚假的记录,基于域名解析的流程,受害人主机并不会去询问 DNS 服务器真实的 IP。

02

hosts 文件篡改

黑客通过篡改受害人主机 hosts 文件,让受害人主机在 hosts 文件中记录一个虚假的 IP。

由于 DNS 协议本身并不具备识别解析结果真伪的能力,所以只要 hosts 文件中存在虚假的记录,基于域名解析的流程,受害人主机并不会去询问 DNS 服务器真实的 IP。

大多数流氓软件和恶意程序都非常喜欢篡改主机的 hosts 文件,把受害人主机访问安全相关站点(如卡巴斯基、360 等)的域名对应为本机 127.0.0.1 或一个虚假的 IP,使受害人主机无法访问安全站点来获取帮助。

03

序列号攻击

DNS 协议格式中定义了序列号 ID 是用来匹配请求数据包和响应数据报,客户端首先以特定的 ID 向 DNS 服务器发送域名查询数据包,在 DNS 服务器查询之后以相同的 ID 号给客户端发送域名响应数据包。

这时客户端会将收到的 DNS 响应数据包的 ID 和自己发送的查询数据包 ID 相比较,如果匹配则表明接收到的正是自己等待的数据报,如果不匹配则丢弃。

利用序列号进行 DNS 欺骗的关键是伪装 DNS 服务器向客户端发送 DNS 响应数据包,并在 DNS 服务器发送的真实 DNS 响应数据报之前到达客户端,从而使客户端 DNS 缓存中查询域名所对应的 IP 就是攻击者伪造的 IP,因此将客户端带到攻击者所希望的网站。

所以这种攻击方式,欺骗的前提条件是攻击者发送的 DNS 响应数据包 ID 必须匹配客户的 DNS 查询数据包 ID。一般需要先通过嗅探或 ARP 欺骗来获取相应的 ID。

04

DNS 服务器控制

攻击者在非法或合法地控制一台 DNS 服务器后,可以直接操作域名数据库,修改指定域名所对应的 IP 为自己所控制的主机 IP。于是,当客户发出对指定域名的查询请求后,将得到伪造的 IP 地址。

2010 年百度被 DNS 劫持,就是因为伊朗的黑客组织控制了 DNS 服务器导致用户访问百度域名时,被解析到了伪造的 IP 地址。

某些运营商为了牟利,也会在自己的 DNS 服务器上做流量劫持,把目标域名的 IP 指向为自己内部的缓存服务器,当然这些缓存服务器里的内容已经被植入了各种广告了。

DNS 劫持防护

防护方法

1.使用IP登录当然可以有效防御 DNS 欺骗,这种方法虽然有效,但是不现实。

2.对高速缓存加以限制。

3.加密所有对外的数据流。使用 SSL 之类的加密技术,即使被攻击,难度也会加大。

4.使用安全的浏览器,能够通过云识别技术,来判断访问的网站真伪,防止使用 DNS 劫持进行钓鱼。

DNS是我们上网不可缺少的服务,恶意利用使它成为了我们身边具有危险性的“潜伏者”

但看了今天的文章,了解了DNS的劫持原理和防护方法后,相信大家对DNS一定不会再觉得陌生,也可以帮助大家更好地使用这项服务~

说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!