信息安全之DNS欺骗详解

  现在的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根本就不存在!

时间: 2024-09-27 06:37:13

信息安全之DNS欺骗详解的相关文章

Ubuntu DNS解析详解

资源记录是用于答复DNS客户端请求的DNS数据库记录,每一个http://www.aliyun.com/zixun/aggregation/33842.html">DNS服务器包含了它所管理的DNS命名空间的所有资源记录.资源记录包含和特定主机有关的信息,如IP地址.提供服务的类型等等. 下面详解的讲解一下在Ubuntu系统中DNS常用的命令操作: DNS解析 root@ubuntu:~# cat /etc/resolv.confnameserver 202.101.172.35names

详解Liunx下配置DNS服务器_Linux

当Ping 主机名时可以映射出该主机的IP地址,反之亦然.配置并指定DNS服务器可以快速部署集群,不需要每台主机都去修改HOSTS文件即可实现IP与主机名的相互解析.而在Linux下的DNS是用bind来实现的. 环境: 机器IP               机器名称            用途 10.190.60.5    hadoop01.ftgov   -- DNS主机 10.190.60.6    hadoop02.ftgov   -- DNS客户机 10.190.60.7    had

Web 缓存欺骗攻击技术详解

本文讲的是Web 缓存欺骗攻击技术详解,Omer Gil早在今年年初就在他的博客上发表了有关于Web缓存欺骗攻击技术的博文,随后他在BlackHat USA 2017 和BSides Tel-Aviv 2017 上对这种攻击技术进行了演示,并做了更深入的研究. 在他发布的"Web 缓存欺骗技术白皮书"中,详细的介绍了这种攻击技术.这份白皮书大致包含了如下内容: ·攻击原理概述 ·实施攻击的方法 ·攻击所需的条件 ·已知的几个主流的Web 框架及缓存机制 ·缓解措施 Web缓存欺骗这种攻

App域名劫持之DNS高可用 - 开源版HttpDNS方案详解(转)

  http://mp.weixin.qq.com/s?__biz=MzAwMDU1MTE1OQ==&mid=209805123&idx=1&sn=ced8d67c3e2cc3ca38ef722949fa21f8&3rd=MzA3MDU4NTYzMw==&scene=6#rd 主题 开源 本文根据冯磊和赵星宇在"高可用架构"微信群所做的HttpDNS智能缓存库原理整理而成,转发请注明来自微信公众号ArchNotes. 冯磊,目前主要从事手机应用平

DNS解析过程详解

DNS解析过程详解   目录(?)[+] 先说一下DNS的几个基本概念: 一. 根域 就是所谓的".",其实我们的网址www.baidu.com在配置当中应该是www.baidu.com.(最后有一点),一般我们在浏览器里输入时会省略后面的点,而这也已经成为了习惯. 根域服务器我们知道有13台,但是这是错误的观点. 根域服务器只是具有13个IP地址,但机器数量却不是13台,因为这些IP地址借助了任播的技术,所以我们可以在全球设立这些IP的镜像站点,你访问到的这个IP并不是唯一的那台主机

Linux下DNS服务器搭建详解

Linux下DNS服务器搭建详解 简介: DNS服务器的作用就是就好比生活中的电话簿.114查号台一样,为各种网络程序找到对应目标主机的IP地址或对应的主机域名. DNS系统的作用: 正向解析:根据主机名称(域名)查找对应的IP地址(实际应用中最多的) 反向解析:根据IP地址查找对应的主机域名(不常用,一般用于搭建邮件服务器时.) 根据服务器与所提供域名解析记录的关系,将DNS服务器分为不同的角色: 缓存域名服务器 也称为 唯高速缓存服务器 通过向其他域名服务器查询获得域名->IP地址记录 将域

DNS解析过程详解【转】

转自:http://blog.chinaunix.net/uid-28216282-id-3757849.html 先说一下DNS的几个基本概念: 一. 根域 就是所谓的".",其实我们的网址www.baidu.com在配置当中应该是www.baidu.com.(最后有一点),一般我们在浏览器里输入时会省略后面的点,而这也已经成为了习惯. 根域服务器我们知道有13台,但是这是错误的观点. 根域服务器只是具有13个IP地址,但机器数量却不是13台,因为这些IP地址借助了任播的技术,所以我

openvpn配置文件详解

openvpn的配置文件主要有三个:vars.server.conf.client.conf,下面我们对这三个配置文件进行一一的详解. 一.vars配置文件 vars配置文件的主要内容如下: cat vars |grep -vE "^#|^$" KEY_DIR定义key生成的目录. KEY_SIZE定义生成私钥的大小,一般为1024或2048,默认为2048位.这个就是我们在执行build-dh命令生成dh2048文件的依据. CA_EXPIRE定义CA证书的有效期,默认是3650天,

WSUS MITM远程攻击实战全过程详解

本文讲的是WSUS MITM远程攻击实战全过程详解,网络攻击(WPAD注入,HTTP / WSUS 中间人攻击,SMBRelay攻击等)是一个非常有用的攻击向量,攻击者可以使用此类攻击尝试以半定向的方式横向扩散,收集证书或升级特权.目前已知的攻击者使用此攻击向量可以深入到网络中去,许多威胁/恶意软件报告都引用了具有允许攻击者以远程方式执行这些攻击的功能的工具.Duqu 2.0是一个很好的例子,可以在野外发现这样的攻击,而这个报道也是一个很好的案例研究. 感谢每天和我一起工作的Jeff Dimmo