信息安全之DNS欺骗详解

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介:   现在的Internet上存在的DNS服务器有绝大多数都是用bind来架设的,使用的bind版本主要为bind 4.9.5+P1以前版本和bind 8.2.2-P5以前版本.这些bind有个共同的特点,就是BIND会缓存(Cache)所有已经查询过的结果,这个问题就引起了下面的几个问题的存在.

  现在的Internet上存在的DNS服务器有绝大多数都是用bind来架设的,使用的bind版本主要为bind 4.9.5+P1以前版本和bind 8.2.2-P5以前版本.这些bind有个共同的特点,就是BIND会缓存(Cache)所有已经查询过的结果,这个问题就引起了下面的几个问题的存在.

  1>.DNS欺骗

  在DNS的缓存还没有过期之前,如果在DNS的缓存中已经存在的记录,一旦有客户查询,DNS服务器将会直接返回缓存中的记录.

  下面我们来看一个例子:

  一台运行着unix的Internet主机,并且提供rlogin服务,它的IP地址为123.45.67.89,它使用的DNS服务器(即/etc/resolv.conf中指向的DNS服务器)的IP地址为98.76.54.32,某个客户端(IP地址为38.222.74.2)试图连接到unix主机的rlogin端口,假设unix主机的/etc/hosts.equiv文件中使用的是dns名称来允许目标主机的访问,那么unix主机会向IP为98.76.54.32的DNS服务器发出一个PTR记录的查询:

      123.45.67.89 -> 98.76.54.32 [Query] 
NQY: 1 NAN: 0 NNS: 0 NAD: 0 
QY: 2.74.222.38.in-addr.arpa PTR

  IP为98.76.54.32的DNS服务器中没有这个反向查询域的信息,经过一番查询,这个DNS服务器找到38.222.74.2和38.222.74.10为74.222.38.in-addr.arpa.的权威DNS服务器,所以它会向38.222.74.2发出PTR查询:

      98.76.54.32 -> 38.222.74.2 [Query] 
NQY: 1 NAN: 0 NNS: 0 NAD: 0 
QY: 2.74.222.38.in-addr.arpa PTR

  请注意,38.222.74.2是我们的客户端IP,也就是说这台机子是完全掌握在我们手中的.我们可以更改它的DNS记录,让它返回我们所需要的结果:

      38.222.74.2 -> 98.76.54.32 [Answer] 
NQY: 1 NAN: 2 NNS: 2 NAD: 2 
QY: 2.74.222.38.in-addr.arpa PTR 
AN: 2.74.222.38.in-addr.arpa PTR trusted.host.com 
AN: trusted.host.com A 38.222.74.2 
NS: 74.222.38.in-addr.arpa NS ns.sventech.com 
NS: 74.222.38.in-addr.arpa NS ns1.sventech.com 
AD: ns.sventech.com A 38.222.74.2 
AD: ns1.sventech.com A 38.222.74.10

      当98.76.54.32的DNS服务器收到这个应答后,会把结果转发给123.45.67.98,就是那台有rlogin服务的unix主机,并且98.76.54.32这台DNS服务器会把这次的查询结果缓存起来.

  这时unix主机就认为IP地址为38.222.74.2的主机名为trusted.host.com,然后unix主机查询本地的/etc/hosts.equiv文件,看这台主机是否被允许使用rlogin服务,很显然,我们的欺骗达到了.

  在unix的环境中,有另外一种技术来防止这种欺骗的发生,就是查询PTR记录后,也查询PTR返回的主机名的A记录,然后比较两个IP地址是否相同:

      123.45.67.89 -> 98.76.54.32 [Query] 
NQY: 1 NAN: 0 NNS: 0 NAD: 0 
QY: trusted.host.com A

  很不幸,在98.76.54.32的DNS服务器不会去查询这个记录,而会直接返回在查询2.74.222.38.in-addr.arpa时得到的并且存在缓存中的信息:

      98.76.54.32 -> 123.45.67.89 [Query] 
NQY: 1 NAN: 1 NNS: 2 NAD: 2 
QY: trusted.host.com A 
AN: trusted.host.com A 38.222.74.2 
NS: 74.222.38.in-addr.arpa NS ns.sventech.com 
NS: 74.222.38.in-addr.arpa NS ns1.sventech.com 
AD: ns.sventech.com A 38.222.74.2 
AD: ns1.sventech.com A 38.222.74.10

  那么现在unix主机就认为38.222.74.2就是真正的trusted.host.com了,我们的目的达到了!

  这种IP欺骗的条件是:你必须有一台Internet上的授权的DNS服务器,并且你能控制这台服务器,至少要能修改这台服务器的DNS记录,我们的欺骗才能进行.

  2>.拒绝服务攻击 Denial of service

  还是上面的例子,如果我们更改位于38.222.74.2的记录,然后对位于98.76.54.32的DNS服务器发出2.74.222.38.in-addr.arpa的查询,并使得查询结果如下:

  因为74.222.38.in-addr.arpa完全由我们控制,所以我们能很方便的修改这些信息来实现我们的目的.

      38.222.74.2 -> 98.76.54.32 [Answer] 
NQY: 1 NAN: 2 NNS: 2 NAD: 2 
QY: 2.74.222.38.in-addr.arpa PTR 
AN: 2.74.222.38.in-addr.arpa PTR trusted.host.com 
AN: www.company.com A 0.0.0.1 
NS: 74.222.38.in-addr.arpa NS ns.sventech.com 
NS: 74.222.38.in-addr.arpa NS ns1.sventech.com 
AD: ns.sventech.com A 38.222.74.2 
AD: ns1.sventech.com A 38.222.74.10

  这样一来,使用98.76.54.32这台DNS服务器的用户就不能访问www.company.com了,因为这个IP根本就不存在!

目录
相关文章
|
3月前
|
域名解析 缓存 网络协议
中间人攻击之DNS欺骗
【8月更文挑战第13天】
230 2
|
3月前
|
域名解析 网络协议 安全
中间人攻击之DNS欺骗
【8月更文挑战第12天】
129 1
|
网络协议 安全 Apache
#ettercap的dns欺骗实验
#ettercap的dns欺骗实验
155 0
|
域名解析 缓存 网络协议
探索网络攻击:ARP断网、ARP欺骗和DNS欺骗实验解析
在这篇博客中,我介绍了ARP断网、ARP欺骗和DNS欺骗这几种常见的网络攻击方式。然而,需要明确的是,这些实验仅仅是出于教育和研究目的,并且应以合法和道德的方式进行。
983 0
|
Web App开发 缓存 安全
HTTPS如何防止DNS欺骗?
HTTPS加密可以有效帮助服务器应对DNS欺骗、DNS劫持、ARP攻击等安全威胁。DNS是什么?DNS如何被利用?HTTPS如何防止DNS欺骗?
3167 0
|
安全 网络协议
通过DNS响应欺骗来绕过域控制验证
本文讲的是通过DNS响应欺骗来绕过域控制验证,在用户验证他们有域名控制权后,Detectify才会扫描这个网站。其中一个验证方法是向域添加一个DNS TXT记录,其中包含由Detectify提供的字符串。
2702 0
|
2天前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
14 2

相关产品

  • 云解析DNS
  • 推荐镜像

    更多