DNS

214 阅读6分钟

概述

  • 域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。

  • 工作在应用层,制定了域名解析的标准(逆向查找:通过IP获取域名,正向查找:通过域名获取IP)。

  • 传输层基于TCP/53和UDP/53端口实现:

    • UDP/53:客户端请求服务器进行域名解析相关数据;
    • TCP/53:主DNS服务器与从DNS服务器进行区间数据传输;

历史

  • 配置hosts文件实现域名解析;

    • Windows:C:\Windows\System32\drivers\etc\hosts
    • Linux:/etc/hosts
  • 基于域名服务器实现域名解析;

域名空间结构

  • 比如:

    • www.woniuxy.com

image-20240311145531561

根域

  • 全球一个13台根域服务器
  • 根域服务器中存储了顶级域服务器信息

顶级域

  • 顶级域服务器存储了二级域服务器信息

  • 组织域:

    • edu:教育
    • com:商业
    • org:非营利性组织
    • gov:政府
  • 国家/区域:

    • cn:中国
    • hk:香港
    • us:美国
    • uk:英国

二级域

  • 一般由个人或企业组织进行申请;
  • 二级域服务器存储了主机名信息

主机名

  • 主机名称表明主机服务性质,比如:wwwftpmail

环境搭建

环境

  • 配置静态IP
  1. netsh interface ip set address "网卡名称" static IP地址 子网掩码 默认网关
  2. netsh interface ip set address "Ethernet0" static 192.168.126.133 255.255.255.0 192.168.126.2
  • 配置静态DNS服务器地址
  1. netsh interface ip set dnsservers "网卡名称" static DNS服务器IP
  2. netsh interface ip set dnsservers "Ethernet0" static 192.168.126.2
  • 安装DNS服务器软件

image-20240311152154447

image-20240311152227361

image-20240311154124221

  • 实现DNS服务器配置

image-20240311154256828

image-20240311154401510

image-20240311154452789

image-20240311154749756

  • 客户端设置DNS服务器为winServerIP
  1. netsh interface ip set dnsservers "网卡名称" static DNS服务器IP
  • 客户端请求进行www.woniuxy.com域名解析
  1. nslookup www.woniuxy.com

DNS解析过程

案例

  • 解析www.woniuxy.com

image-20240311160019511

递归查询

  • 客户端请求首选DNS服务器进行域名解析,首选DNS服务器查询当前服务器是否存在目标域名主机信息,如果存在,则将该主机信息响应给客户端;

image-20240311160658775

迭代查询

  • 递归查询:

image-20240311165614680

  • 首选DNS服务器查询当前服务不存在目标域名主机信息,首选DNS服务器向根域服务器发送域名解析请求,获取顶级域服务器信息;
  • 根域服务器收到域名解析请求后,会响应com顶级域服务器信息给首选DNS服务器;

image-20240311165719580

  • 首选DNS服务器请求com顶级域服务器,com顶级域服务器响应woniuxy二级域服务器信息;

image-20240311165802972

  • 首选DNS服务器请求woniuxy二级域服务器,woniuxy二级域服务器响应www主机名信息;

image-20240311165842318

  • 首选DNS服务器收到主机名信息(包含解析结果IP),将信息发送给客户端;

命令

  • 查看IP配置信息(DNS服务器信息)
  1. ipconfig /all
  • 查看DNS解析缓存
  1. ipconfig /displaydns
  • 清空DNS缓存
  1. ipconfig /flushdns
  • 设置静态DNS服务器地址
  1. netsh interface ip set dnsservers "网卡名称" static DNS服务器IP

服务器域

  • SOA:起始授权机构,存储当前域名解析的权威服务器。
  • NS:名称服务器,存储当前域名解析的服务器。
  • 新建主机:A表示域名与IPv4映射关系,AAAA表示域名与IPv6映射关系;
  • 新建别名(CNAME):别名映射到已有域名解析记录;
  • 新建邮件交换器:邮件交换记录,配置邮件服务器域名映射;
  • 新建指针PTR:建立IP地址与域名映射关系;

域名解析分类

方向分类

  • 正向查找:根据域名查询IP
  • 反向查找:根据IP查询域名

查询方式

  • 递归查询:客户端请求首选DNS服务器进行域名解析,首选DNS服务器查询到结果,直接响应给客户端的过程;
  • 迭代查询:客户端请求首选DNS服务器进行域名解析,首选DNS服务器请求根域服务器、顶级域服务器、二级域服务器的过程;

主与从服务器

概述

  • 主服务器:保存域名的数据原本,可以修改;
  • 从服务器:保存主服务器域名数据副本,不可以修改;

环境搭建

image-20240312103544260

  • 安装DNS服务器软件,操作与主服务器一致
  • 从服务器配置

image-20240312100537006

image-20240312100559367

image-20240312100644494

image-20240312100736076

image-20240312100810522

image-20240312100826706

  • 主服务器配置

image-20240312101029981

image-20240312103129070

image-20240312101333198

数据字段

  1. Transaction ID: 0x0004 事务编号,用于区分不同会话
  2. Flags: 0x0100 Standard query 标志位
  3. 0... .... .... .... = Response: Message is a query 消息类型,0表示请求,1表示响应
  4. .000 0... .... .... = Opcode: Standard query (0)操作类型,0表示标准查询,1表示反向查询,2表示请求服务器状态
  5. .... ..0. .... .... = Truncated: Message is not truncated数据包是否被截断
  6. .... ...1 .... .... = Recursion desired: Do query recursively 是否是递归查询
  7. .... .... .0.. .... = Z: reserved (0) 保留位
  8. Questions: 1 问题记录条数
  9. Answer RRs: 0 回答的记录条数
  10. Authority RRs: 0 授权记录数
  11. Additional RRs: 0 附加记录数
  12. Queries 查询请求内容
  13. Name: mail.woniuxy.com 域名空间地址(全限定域名)
  14. Type: A (Host Address) (1)类型,一般值为A表示IPv4地址
  15. Class: IN (0x0001)协议组类型,一般值为1表示TCP/IP协议组

DNS欺骗

image-20240312115240140

概述

  • 客户端要进行DNS域名解析,会发送ARP请求获取首选DNS服务器IP对应MAC地址;
  • 攻击主机伪造ARP响应,将DNS服务器IP地址对应MAC地址设置为攻击主机的MAC地址;
  • 客户端收到ARP响应,会操作自己的MAC表,覆盖DNS服务器IP地址对应MAC地址(旧地址为真实DNS服务器MAC,新地址为攻击主机MAC地址);
  • 客户端发起域名(www.woniuxy.com)解析请求,该请求会发送到攻击主机;
  • 攻击主机会伪造域名解析结果,向客户端发送域名解析响应数据;
  • 客户端收到域名解析响应数据后,向对应域名主机IP(伪造的IP)发送数据;

实验环境

  • DNS服务器:winServer
  • 攻击主机:kali
  • 客户端(靶机):win10

步骤

  • 将伪造的域名解析结果写入ettercap工具的指定配置文件/etc/ettercap/etter.dns
  1. echo "www.woniuxy.com A 111.111.111.111" >> /etc/ettercap/etter.dns
  • 启动ettercap工具

image-20240312120651809

image-20240312120724586

  • 扫描网络环境

image-20240312120820077

image-20240312120852985

  • 列出网络嗅探结果

image-20240312121002137

  • 确定ARP欺骗主机信息(靶机和伪造的主机)

image-20240312121343269

  • 发起ARP欺骗

image-20240312121501744

image-20240312121520105

  • 查看客户端MAC表,ARP欺骗是否成功

image-20240312121620706

  • 发起DNS欺骗

    image-20240312121747455

    image-20240312121816407

    • 客户端请求域名解析,查看是否欺骗成功

    image-20240312121940803

    image-20240312122003445

DNS欺骗防御

  • 将DNS服务器IP的MAC静态化