DNS协议

DNS协议

一、DNS

1. 概念

  • DNS(domain name system)域名系统,作为将域名的IP地址相互映射关系存放在一个分布式的数据库,DNS使用的是UDP的53端口
  • 域名:有ICANN机构统一管理

2. 域名空间

  • 树状结构
    src=http___img-blog.csdnimg.cn_20201209140056910.png_x-oss-process=image_watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl81MTMyNjI0MA==,size_16,color_FFFFFF,t_

    • 根域:(全世界只有13台根域服务器)
    • 顶级域:(主要用于区分域名的用途)
    • 组织类:商业(com) 教育和学校(edu) 社会非盈利性组织(org)
    • 国家/地区域名:中国(cn) 香港(hk) 美国(us) 英国(uk)
    • 二级域名
    • FQDN:完全限定域名

二、DNS查询

image-20220727120114614

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.comDNS服务器里面维护的是baidu.com区域的所有主机信息,包含了www.baidu.com的信息,直接将www.baidu.com的IP地址响应给首选DNS
  • 首选DNS在响应给客户机

2. 递归查询

  • 当客户机请求自己的首选DNS服务器,首选DNS服务器上有域名记录信息,直接响应给客户机(由上图所示,第一步和第八步是递归)

3. 迭代查询

  • 首选DNS服务器没有域名记录信息,通过一步一步去根域服务器,顶级域服务器,二级域服务器,最终找到对应的域名记录信息

4. 查询内容

  • 正向:通过域名查IP
  • 反向:通过IP查域名

三、使用Windows部署DNS服务器

  • 使用Linux配置时使用bind服务

1. DNS服务器分类

  • 主要名称服务器:存放区域(二级区域)中相关的设置,存放的是区域文件的正本数据
  • 辅助名称服务器:存放的是副本数据,是从主要名称服务器复制过来的,不能修改
  • 主控名称服务器:提供数据复制(可以理解为DNS服务器中某一个角色)
  • 缓存(cache-only)域名服务器:里面没有区域文件,需要配置转发器

2. 配置

  • 在server上安装DNS服务器
  • 新建正向查找区域
    • SOA记录
    • NS记录
  • 新建主机(A)记录
  • 新建别名(CNAME)记录

3. DNS记录

  • A:主机记录,域名和IP地址的映射
  • CNAME:别名记录
  • SOA:权威名称服务器
  • NS:名称服务器
  • MX:邮件交换记录,一般有邮件服务器时使用
  • SRV:正在提供特定服务的服务器
  • PTR:反向指针记录

4. 区域传送

  • 将主要名称服务武器的区域文件传送到辅助名称服务器上
  • 区域传送使用的TCP协议

四、分析DNS流量

1. DNS报文字段

  • ID字段
  • flags:标志*
    • 第1位:标识消息类型(0是请求,1是响应)
    • 第2~5位:opcode查询种类
    • 第6位:标识是否是一个权威应答
    • 第7位:一个UDP报文为512字节,指示是否截断超过部分
    • 第8位:是否请求递归
    • 第9位:允许递归的标识
    • 第10~12位:保留位
    • 第13~16:应答码(0没有错误,1格式错误,2服务器错误,3名字错误,4服务器不支持,5拒绝,6~15保留)
  • questions:请求段中问题记录数
  • answer rrs:回答段中的记录数
  • authority rrs:授权段中授权记录数
  • additional rrs:附加段中的附加记录数

五、实施DNS欺骗

  • 在kali上使用ettercap
  • 编辑ettercap文件

    vim /etc/ettercap/etter.dns
  • 先对目标主机和网关进行ARP欺骗
  • 实施DNS欺骗
上一篇
下一篇