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 欺骗
上一篇
下一篇