目录
一、前言
二、什么是DNS?
三、DNS原理
1.DNS工作原理
2.DNS服务器
3.本地DNS
4.域名的层级
5.根域名服务器
四、DNS劫持
1.什么是DNS劫持
2.DNS劫持的方法
五、历史著名DNS劫持案例
参考文献:
DNS(Domain Name Server 或 Domain Name System):域名解析服务器;
IP地址(Internet Protocol Address):互联网协议地址,例如:221.194.147.226(今日头条IP地址);
域名(Domain Name):是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置),例如:https://www.toutiao.com/ .
在网络中,机器之间只认识IP地址,机器之间最终都要通过IP来互相访问。但是为了方便记忆,可以为IP地址设置一个对应的域名,通过访问域名,就可以找到对应IP地址的网站。
比如,我们访问今日头条官网的时候,在浏览器地址栏输入头条地址:
https://www.toutiao.com/
看似我们访问的是域名,而实际上是通过IP地址访问的今日头条官网。
在终端命令窗口ping 今日头条官网域名,就可以看到该域名对应的IP地址:
从 www.toutiao.com 到 221.194.147.226 的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,DNS就是进行域名解析的服务器。
(注:直接使用 221.194.147.226 是无法访问今日头条官网的,这是因为今日头条的服务器做了设置,限制IP访问。)
一般的网站会选择放在虚拟主机,且在主机上放置了很多个网站,而每个网站绑定1个或以上域名、虚拟主机上。例如Apache主机的配置会将对应的ip解析到对应的网站目录的,实现一台服务器上配置多个站点;一般用户在访问的时候,会产生一个http请求报文,上面的host信息可以提供给服务器,告诉服务器要访问的域名,从而实现一台主机绑定一个IP,即使有多个网站,也不会相互干扰。但使用IP访问,主机不知道用户访问的具体目录,请求便会出现错误。
简单来说,DNS 就像是一个电话本,其作用就是根据域名查出 IP 地址。
DNS 查询时,会先在本地缓存中尝试查找,如果不存在或是记录过期,就继续向 DNS 服务器发起递归查询,这里的 DNS 服务器一般就是运营商的 DNS 服务器。
第一步:
客户机提出域名解析请求,并将该请求发送给本地的域名服务器。
第二步:
当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果(域名对应的IP地址)返回。
第三步:
如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域) 的主域名服务器的地址。
第四步:
本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的域名服务器的地址。
第五步:
重复第四步,直到找到正确的纪录。
第六步:
本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户机。
以今日头条为例,本机访问域名 https://www.toutiao.com/ 想要得到其 IP地址 ,首先,本机一定要知道DNS服务器的IP地址,否则上不了网。通过DNS服务器,才能知道某个域名的IP地址到底是什么。
DNS服务器的IP地址,有可能是动态的,每次上网时由网关分配,这叫做DHCP机制;也有可能是事先指定的固定地址。Linux系统里面,DNS服务器的IP地址保存在/etc/resolv.conf文件。
上例的DNS服务器是192.168.1.253,这是一个内网地址。有一些公网的DNS服务器,也可以使用,其中最有名的就是Google的8.8.8.8和Level 3的4.2.2.2。本机只向自己的DNS服务器(本地DNS)查询。
本地DNS一般是指你电脑上网时IPv4或者IPv6设置中填写的那个 DNS(如上图)。这个有可能是手工指定的或者是DHCP 自动分配的。如果你的电脑是直连运营商网络,一般默认设置情况下 DNS 为 DHCP 分配到的运营商的服务器地址。如果你的电脑和运营商之间还加了无线或者有线路由,那极有可能路由器本身还内置了一个 DNS 转发器,它的作用是将发往他所有的 DNS 请求转发到上层 DNS。此时由于路由器本身也接管了下挂电脑的 DHCP 服务,所以它分配给下面电脑的 DNS 地址就是它自身,所以你能看到电脑的 DNS 分配到的可能是192.168.1.1,实际上就是路由器自身,而路由器的 DNS 转发器将请求转发到上层 ISP 的 DNS。所以这里说 DNS 是局域网或者是运营商的都可以(因为最终都是转发到运营商,小细节不用纠结)。
权威服务器是特殊的DNS服务器,所谓的权威是针对特定域名来说的。所以一般会说某某域名的权威DNS是谁,不能单纯的抛离域名问权威DNS是谁。是域名商在管理,负责解析在他这里购买的域名的权威解析(当然也存在此处购买域名挂靠别处权威的情况)。
DNS服务器怎么会知道每个域名的IP地址呢?答案是分级查询。
(待补充......)
参考链接:DNS根服务器、根服务器、全球13台根域名服务器、详细介绍
DNS劫持就是通过劫持了DNS服务器,通过某些手段取得某域名的解析记录控制权,进而修改此域名的解析结果,导致对该域名的访问由原IP地址转入到修改后的指定IP,其结果就是对特定的网址不能访问或访问的是假网址,从而实现窃取资料或者破坏原有正常服务的目的。DNS劫持通过篡改DNS服务器上的数据返回给用户一个错误的查询结果来实现的。
DNS劫持症状:在某些地区的用户在成功连接宽带后,首次打开任何页面都指向ISP提供的“电信互联星空”、“网通黄页广告”等内容页面。还有就是曾经出现过用户访问Google域名的时候出现了百度的网站。这些都属于DNS劫持。
再说简单点,当你输入google.com这个网址的时候,你看到的网站却是百度的首页。
1、利用DNS服务器进行DDOS攻击
正常的DNS服务器递归查询过程可能被利用成DDOS攻击。假设攻击者已知被攻击机器的IP地址,然后攻击者使用该地址作为发送解析命令的源地址。这样当使用DNS服务器递归查询后,DNS服务器响应给最初用户,而这个用户正是被攻击者。那么如果攻击者控制了足够多的肉鸡,反复的进行如上操作,那么被攻击者就会受到来自于DNS服务器的响应信息DDOS攻击。
如果攻击者拥有着足够多的肉鸡群,那么就可以使被攻击者的网络被拖垮至发生中断。利用DNS服务器攻击的重要挑战是,攻击者由于没有直接与被攻击主机进行通讯,隐匿了自己行踪,让受害者难以追查原始的攻击来。
2、DNS缓存感染
攻击者使用DNS请求,将数据放入一个具有漏洞的的DNS服务器的缓存当中。这些缓存信息会在客户进行DNS访问时返回给用户,从而把用户客户对正常域名的访问引导到入侵者所设置挂马、钓鱼等页面上,或者通过伪造的邮件和其他的server服务获取用户口令信息,导致客户遭遇进一步的侵害。
3、DNS信息劫持
TCP/IP体系通过序列号等多种方式避免仿冒数据的插入,但入侵者如果通过监听客户端和DNS服务器的对话,就可以猜测服务器响应给客户端的DNS查询ID。每个DNS报文包括一个相关联的16位ID号,DNS服务器根据这个ID号获取请求源位置。攻击者在DNS服务器之前将虚假的响应交给用户,从而欺骗客户端去访问恶意的网站。假设当提交给某个域名服务器的域名解析请求的DNS报文包数据被截获,然后按截获者的意图将一个虚假的IP地址作为应答信息返回给请求者。原始请求者就会把这个虚假的IP地址作为它所要请求的域名而进行访问,这样他就被欺骗到了别处而无法连接想要访问的那个域名。
4、DNS重定向
攻击者将DNS名称查询重定向到恶意DNS服务器上,被劫持域名的解析就完全在攻击者的控制之下。
5、ARP欺骗
ARP攻击就是通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞,攻击者只要持续不断的发出伪造的ARP响应包就能更改目标主机ARP缓存中的IP-MAC条目,造成网络中断或中间人攻击。ARP攻击主要是存在于局域网网络中,局域网中若有一台计算机感染ARP病毒,则感染该ARP病毒的系统将会试图通过”ARP欺骗”手段截获所在网络内其它计算机的通信信息,并因此造成网内其它计算机的通信故障。
ARP欺骗通常是在用户局域网中,造成用户访问域名的错误指向。如果IDC机房也被ARP病毒入侵后,则也可能出现攻击者采用ARP包压制正常主机、或者压制DNS服务器,以使访问导向错误指向的情况。
6、本机劫持
本机的计算机系统被木马或流氓软件感染后,也可能会出现部分域名的访问异常。如访问挂马或者钓鱼站点、无法访问等情况。本机DNS劫持方式包括hosts文件篡改、本机DNS劫持、SPI链注入、BHO插件等方式。
1.黑客技术?没你想象的那么难!——dns劫持篇
2.DNS根服务器、根服务器、全球13台根域名服务器、详细介绍
3.再次确认!中国将从零实现全球第二:设立自己的域名根服务器