网络-DNS域名系统详解与DNS攻击

目录

简介

互联网域名结构

顶级域名

二级域名

域名服务器

根域名服务器

顶级域名服务器

权限域名服务器

本地域名服务器

DNS查询

报文格式

查询

DNS攻击实战

域名劫持

DNS欺骗

DNS防范

参考


简介

DNS(Domain Name System,域名系统)是互联网使用的命名系统,是一个分布式数据库,用来把域名转换为IP地址。DNS使用UDP协议来传输。

互联网域名结构

互利网采用层次树状结构的命名方法,下图为域名命名空间形成的树结构:

网络-DNS域名系统详解与DNS攻击_第1张图片 域名命名空间

从语法来看,每个域名都是由标号序列构成,标号由英文字母(不区分大小写)和数字构成,不能超过63个字符(为记忆方便,一般不超过12个),标号之间使用"."来连接,完整域名不超过255个字符。

例如,mp.csdn.net,net是顶级域名,csdn是自己注册的二级域名,mp是自己注册的三级域名。

顶级域名

顶级域名由ICANN进行管理,2012年统计,顶级域名TLD(Top Level Domain)有236个,分为三大类:

(1) 国家顶级域名n TLD:采用ISO 3166的规定。如:cn表示中国, us表示美国, uk表示英国, 等等.国家顶级域名又常记为ccTLD(cc表示国家代码country-code) , 到2012年5月为止,国家顶级域名总数已达296个。

(2) 通用顶级域名gTLD:到2006年12月为止, 通用顶级域名的总数已经达到20个。最先确定的通用顶级域名有7个,即:com(公司企业) , net(网络服务机构) , org(非营利性组织) , int(国际组织) , edu(美国专用的教育机构) , gov(美国的政府部门) , mil表示(美国的军事部门) 。以后又陆续增加了13个通用顶级域名:acro(航空运输企业) , asia(亚太地区) , biz(公司和企业) , cat(使用加泰隆人的语言和文化团体) , coop(合作团体) , info(各种情况) , jobs(人力资源管理者) , mobi(移动产品与服务的用户和提供者) , museum(博物馆) , name(个人) , pro(有证书的专业人员) , tel(Tel nic股份有限公司) ,travel(旅游业) 。

(3) 基础结构域名(infrastructure domain) :这种顶级域名只有一个, 即arpa,用于反向域名解析(地址到名字),因此又称为反向域名。

2011年ICANN批准新顶级域名,任何公司、机构都可以申请(当然,不一定通过),到2016年在ICANN注册的中文顶级域名已有60个。

二级域名

    我国把二级域名划分为“类别域名”和“行政区域名”两大类。
    “类别域名”共7个,分别为:ac(科研机构),com(工、商、金融等企业),edu(中国的教育机构),gov(中国的政府机构),mil(中国的国防机构),net(提供互联网络服务的机构),org(非营利性的组织)。
    “行政区域名”共34个,适用于我国的各省、自治区、直辖市。例如:bj(北京市),js(江苏省),等等。
    关于我国的互联网络发展现状以及各种规定(如申请域名的手续),均可在中国互联网网络信息中心CNNIC的网址上找到。

域名服务器

上面讲的域名体系是抽象的。而实际上,域名服务器是按区分的,每个区设置相应的权限域名服务器(authoritative name server),用来保存该区中的所有主机的域名到IP地址的映射

网络-DNS域名系统详解与DNS攻击_第2张图片 树状域名服务器

根域名服务器

所有的根域名服务器都知道所有的顶级域名服务器的域名和IP地址。本地域名服务器无法解析时,就要询问根域名服务器。到2016年2月,全世界已经有588个地点安装了根域名服务器。每一个地点的根域名服务器都往往由多台机器组成,为了方便,人们使用A...M的一个英文字母来表示某域名服务器。根域名服务器分配很不均匀,在北美,每375万个网民可分摊到一个根域名服务器,而在亚洲超过2000万网民才能分配到一个根域名服务器,所以上网速度慢。更多内容可查看RFC2870。

顶级域名服务器

负责管理在该顶级域名服务器注册的所有二级域名。

权限域名服务器

这就是前面已经讲过的负责一个区的域名服务器。当一个权限域名服务器还不能给出最后的查询回答时,就会告诉发出查询请求的DNS客户,下一步应当找哪一个权限域名服务器。例如在上图中,区abc.com和区y.abc.com各设有一个权限域名服务器。

本地域名服务器

本地域名服务器并不属于树状域名服务器层次结构,但它对域名系统非常重要。当一台主机发出DNS查询请求时,这个查询请求报文就发送给本地域名服务器。每一个互联网服务提供者(ISP)、一个大学,甚至一个大学里的系,都可以拥有一个本地域名服务器,这种域名服务器有时也称为默认域名服务器。当计算机使用Windows7操作系统时,打开“控制面板”,然后依次选择“网络和Internet”→“网络和共享中心”一“查看网络状态和任务”→“无线网络连接”(假定采用家庭网络)→“属性”→“Internet协议版本4”→“属性”等项目,就可以看见首选DNS服务器和备用DNS服务器的IP地址。这里的DNS服务器指的就是本地域名服务器。本地域名服务器离用户较近,一般不超过几个路由器的距离。当所要查询的主机也属于同一个本地ISP时,该本地域名服务器立即就能将所查询的主机名转换为它的IP地址,而不需要再去询问其他的域名服务器。
为了提高域名服务器的可靠性,DNS域名服务器都把数据复制到几个域名服务器来保存,其中的一个是主域名服务器(master name server),其他的是辅助域名服务器(secondaryname server)。当主域名服务器出故障时,辅助域名服务器可以保证DNS的查询工作不会中断。主域名服务器定期把数据复制到辅助域名服务器中,而更改数据只能在主域名服务器中进行。这样就保证了数据的一致性。

DNS查询

报文格式

网络-DNS域名系统详解与DNS攻击_第3张图片 DNS报文格式

本文不会抓包分析,故不再解释各个字段的具体含义,可查看《TCP/IP详解I》

查询

网络-DNS域名系统详解与DNS攻击_第4张图片 DNS查询

递归查询:a询问b,b给a回复信息(b可能会问其他的)。

迭代查询:a询问b,b让a找c,a询问c,c让a找d,...,a询问n,n告知a所需信息。

DNS攻击实战

域名劫持

黑客控制了域名管理密码和域名管理邮箱,然后将该域名的DNS纪录指向到黑客可以控制的DNS服务器,然后通过在该DNS服务器上添加相应域名纪录,从而使网民访问该域名时,进入了黑客所指向的内容。这显然是DNS服务提供商的责任,用户束手无策。

公共DNS服务器IP
名称 DNS 服务器 IP 地址
114 DNS 114.114.114.114 114.114.115.115
阿里AliDNS 223.5.5.5 223.6.6.6
百度 BaiduDNS 180.76.76.76
DNSPod DNS+ 119.29.29.29 119.29.29.29
CNNIC SDNS 1.2.4.8 210.2.4.8
oneDNS 117.50.11.11 52.80.66.66
DNS 派
电信/移动/铁通
101.226.4.6 218.30.118.6
DNS 派 联通 123.125.81.6 140.207.198.6
Google DNS 8.8.8.8 8.8.4.4
IBM Quad9 9.9.9.9
OpenDNS 208.67.222.222 208.67.220.220
V2EX DNS 199.91.73.222 178.79.131.110

博主一般配置DNS使用8.8.8.8或114.114.114.114。

DNS欺骗

通过浏览器访问网站的流程概述

  1. 解析URL,找到域名
  2. 查询浏览器DNS缓存
  3. 查询本地hosts文件
  4. 查询本地域名服务器
  5. 等待本地域名服务器返回即可(可以看“查询”这一节的图)

靶机(主机)

操作系统:Windows 10

浏览器:火狐(后改为IE)

攻击机(虚拟机)

操作系统:kali

攻击软件:ettercap v0.8.3

靶机操作

ping百度,查看ip

网络-DNS域名系统详解与DNS攻击_第5张图片 ping百度
网络-DNS域名系统详解与DNS攻击_第6张图片 CMD清空DNS缓存

打开phpstudy,网站主页是XSS平台。按道理,攻击机应该把钓鱼网站的ip匹配到百度域名,但是博主没有写又懒得再开个虚拟机,就让靶机的ip也当成了钓鱼网站的ip了。反正就是学习一下原理,不是真正的攻击。

攻击机操作

修改配置文件,填写攻击后的ip。使用命令

locate etter.dns

查找文件路径

寻找文件
网络-DNS域名系统详解与DNS攻击_第7张图片 修改文件

使用命令

ettercap -G

启动图形化界面,点击对勾。

网络-DNS域名系统详解与DNS攻击_第8张图片 ettercap

扫描主机,打开主机列表,添加攻击目标

网络-DNS域名系统详解与DNS攻击_第9张图片 添加目标

 选择插件dns_spoof

网络-DNS域名系统详解与DNS攻击_第10张图片 选择插件

靶机结果

靶机IE

使用火狐浏览器失败了,后改为IE,可能火狐浏览器有DNS缓存吧,IE从买完电脑后就没用过。

DNS防范

  • 在客户端直接使用IP Address访问重要的站点,从而避免DNS欺骗;
  • 限制动态更新;
  • 对DNS Server和Client的数据流进行加密;

参考

《TCP/IP详解I》第十四章

《计算机网络(谢希仁)第七版》6.1

RFC 1034

RFC 1035

RFC2870

更多内容查看:网络安全-自学笔记

喜欢本文的请动动小手点个赞,收藏一下,有问题请下方评论,转载请注明出处,并附有原文链接,谢谢!如有侵权,请及时联系。如果您感觉有所收获,自愿打赏,可选择支付宝18833895206(小于),您的支持是我不断更新的动力。

你可能感兴趣的:(网络安全,网络,DNS)