1、了解域名的结构
2、DNS查询过程
3、Windwos server部署DNS服务器
4、分析流量 实施DNS欺骗 再分析
一、DNS域名系统
1、DNS简介
DNS(Domain Name system)域名系统,作为将域名的IP地址的相互映射关系存放在一个分布式的数据库,DNS使用的是UDP的53号端口。
域名:由ICNNN机构统一管理
www.baidu.com www.a.shifen.com www.sina.com httpd.apache.org
DNS欺骗:正产访问一个域名,比如我访问的是www.baidu .com,正常会将www.baidu.com解析成百度的IP地址,攻击主机使得你访问百度的时候解析到另一个IP地址上面去,如果解析到的这个IP地址上面有对应的网站,那么当你访问百度的时候就跳转到其他网站上面去了。那么我们就需要多方面去查看,如使用nslookup www.biadu.com看下解析出来的IP地址到底是不是百度,如果不是百度的IP地址是另外一个IP地址,那么你可能就被钓鱼了。相当于你访问的是正规的域名但是它给你跳转到其他的页面了。钓鱼还有了另外一个场景:攻击者伪造一个和官方很像的域名,里面的网站也和官方的一模一样。
2、域名空间
- 根域:全世界只有13台根域服务器
- 顶级域:主要用于区分域名的用途
- 二级域:woniu.com 网站www.woniu.com 邮件mail.woniu.com
- 组织类
- .com 商业
- .edu 教育
- .org 社会非营利性组织
- 国家/地区域名
- .cn 中国
- .us 美国
- .uk 英国
- FQDN(完全限定域名)同时带主机头和域名的名称。主机名.DNS后缀(主机名)
在很多应用场景中需要输入对应的域名,就需要输入一个比较合格的域名就是所谓的完全限定域名,即在域名空间内不会冲突的域名。
就比如:在内网中随便写域名无所谓,但是在公网上面不能随便写一个域名,说不定你随便写的域名就是别人正在使用的,还有就是你写的这个域名到底是不是通过合法的途径注册的,注册域名需要备案,域名和IP是有对应关系的,别人的域名是解析不到你的服务器上面的。
- 一个IP可以绑定多个域名,如在一台服务器上搭建了网站和邮件服务系统,绑定不同的域名,解析到的IP都是同一个IP,但是用的端口号是不一样的
- 一般用不同的主机头来区分不同的服务
二、DNS的查询
1、查询过程
客户机想要访问www.baidu.com,根据TCP/IP参数,向自己的首选DNS服务器发送DNS请求
首选DNS收到客户机的请求后,会去查询自己的区域文件,找不到www.baidu.com的IP地址信息(将请求转发到根域服务器,需要配置根提示);直接可以找到www.baidu.com的IP地址信息(直接响应给客户机)。
根域服务器收到请求后,由于根域服务器只维护顶级域服务器信息,会响应顶级域服务器IP,首选DNS根据根域服务器响应的信息将请求转发到com顶级域。
com顶级域服务器收到请求,由于com顶级域只维护二级域信息,会响应二级域服务器的IP(baidu.com),首选DNS根据顶级域响应的信息将请求转发到baidu.com二级域。
baidu.com二级域收到请求,baidu.com的DNS服务器里面维护的是baidu.com区域的所有主机信息,包含了www.baidu.com的信息,直接将www.baidu.com的IP地址响应给首选DNS。
首选DNS再响应给客户机。
2、查询方式
- 递归查询
当客户机请求自己的首选DNS服务器,首选DNS上有域名记录信息,直接响应给客户机(根据上图所示,第1步和第8步是递归查询)
- 迭代查询
首选DNS服务器没有域名信息,通过一级一级去请求根域服务器、顶级域服务器、二级域服务器的过程称为迭代查询。(根据上图所示,第2~7步是迭代查询)
3、查询内容
- 正向查询:通过域名查IP
- 反向查询:通过IP查域名
三、部署DNS服务器
1、DNS 服务器分类
- 主要名称服务器:存放区域(二级区域)中相关的设置,存放的区域文件的正本数据
- 辅助名称服务器:存放的副本数据,是从主要名称服务器复制过来的,不能修改
- 主控名称服务器:提供数据复制(可以简单的理解成是DNS服务器中的某一个角色)
- 缓存(cache-only)域名服务器:里面没有区域文件,需要配置转发器
2、正向解析
使用windows部署DNS服务器,使用linux部署DNS服务器(bind服务).
(1)添加DNS服务
Windows Server虚拟机选择Vmnet2网络并设置静态IP地址。
首选DNS指向自己,因为自己本身就是DNS服务器
服务器管理器->添加角色和功能->下一步->……->DNS服务器,直接下一步下一步下一步安装。
(2)配置DNS主机记录
a、新建主要名称服务器
右击正向查找区域”->新建正向区域->主要区域
新建区域名称,会自动创建区域文件。
保持默认不允许动态更新。
下一步完成,正向区域创建好了,默认有SOA记录和名称服务器NS。
b、添加DNS主机记录
主要用到的有主机记录、别名记录、邮件交换机记录
新建主机记录,形成主机IP地址和域名的映射,这里的创建相关的指针(PTR)记录,是反向指针记录。默认不勾选。
二级域名是woniu.com ,主机名是www,也就是192.168.30.50对应的域名是www.woniu.com
c、DNS域名解析
打开一台客户机,设置成和DNS Server一样的Vmnet2网络、
配置TCP/IP 参数,首选DNS指向DNS Server
这个时候就能直接解析了,解析之前打开winshark。
d、winshark分析流量
根据winshark抓到的数据流量,
winsahrk查找字符串www.woniu.com会自动锁定到这里,可以看到88.20在请求88.100
下面就是DNS的报文 ,Queries这里有个请求,www.woniuxy.com请求是A记录。
在服务器这边就找到了对应的A记录并做了响应,后面是DNS记录中主机记录对应的IP地址
(3)配置DNS别名记录
新建别名记录,这里目标主机的完全合格的域名是指你要为哪个域名创建别名
这个时候就相当于给www命名了一个别名hahaha了
在另一条Windows上面用nsllokup命令解析一下,这里就有一个Aliases别名了。
(4)DNS添加子域
每一个域下面可以新建子域,也可以新建三级域名的区域。子域可以使得它的业务更具层次性。
比如百度业务很广,它划分的子域很细,比如某一块业务划分到一个子域当中,可能这一块业务下面还会有多个主机,所以说它就分的很细 。一般只有大业务才会出现子域,就类似于文件夹目录结构。
在www.woniuxy.com下面还可以新建域cc,它是基于woniuxy.com的。
然后在cc这个域下面新建主机记录
子域解析
3、反向解析
(1)主域名主机的反向解析
反向:通过IP解析域名
会自动创建反向区域的名字
下一步下一步完成
现在就能通过IP地址反向解析域名了
(2)二级域名主机的反向解析
如果没有新建反向区域就不能解析IP地址,给cc下面这台主机创建一个反向指针
因此,为了方便新建一个192.168.的反向区域
这里只固定了IP地址的前面两个数,此时再新建PTR指针的时候就可以写了
同样我可以新建192.168.22.10的反向PTR指针
nslookup解析看看
这就是所谓的反向指针 。
4、区域传送
区域传送
- 将主要名称服务器的文件传送到辅助名称服务器上
- 区域传送使用的是TCP协议
(1)正向区域传送
另外开一台windows server ,设置Vmnet2,然后配置TCP/IP 参数,首选DNS服务器指向192.168.88.100;在windows server装上DNS服务,安装成功后,新建辅助区域。
区域名称要和前面的一样,不然传不过来
这里要添加主服务器的IP
下一步,完成
回到主DNS Server上把192.168.88.200添加进区域传送
这里有个区域传送没有配置到,它默认选的是是只有在名称服务器选项卡列出的服务器
名称服务器选项卡列出的服务器 没有列出我们这台主机192.168.88.200
回到辅助DNS服务器正向查找区域那儿右击刷新一下,主DNS服务器上面的正向区域的DNS就传过来了。
这边的数据是不能改的。
抓包流量分析
在区域传送的时候就是TCP的53号端口,但是在客户机请求服务器的时候用的是UDP的53号端口
192.168.88.100向DNS Server192.168.88.200的53号端口发起TCP请求
DNS区域传送使用的是TCP的53号端口
响应的就是区域的内容,类型是SOA
区域文件传完之后是TCP的四次挥手释放连接
之后66.200向66.100发送反向的PTR指针记录,此时就用的是UDP再传,可以看到这里是UDP报文
(2)反向区域传送
在辅助DNS服务器上新建反向查找区域
在主DNS服务器上设置反向DNS服务器的区域传送
区域传送,在允许区域传送中添加辅助DNS的IP,应用并确认。
下一步下一步完成
然后辅助的DNS服务器这边瞬间就同步过来了
winsahrk抓包
5、DNS记录类型
- A 记录:主机记录,域名和IP地址的映射关系
- CNAME:别名记录,针对现有域名起一个别名
- SOA:权威名称服务器
- NS:名称服务器
- MX:邮件交换记录。主要是像邮件交换主机提供路由的。一般有邮件服务器时使用。
- SRV:正在提供特定服务的服务器
- PTR:反向指针记录。