概述
-
域名系统(英文: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
- Windows:
-
基于域名服务器实现域名解析;
域名空间结构
-
比如:
www.woniuxy.com
根域
- 全球一个13台根域服务器
- 根域服务器中存储了顶级域服务器信息
顶级域
-
顶级域服务器存储了二级域服务器信息
-
组织域:
- edu:教育
- com:商业
- org:非营利性组织
- gov:政府
-
国家/区域:
- cn:中国
- hk:香港
- us:美国
- uk:英国
二级域
- 一般由个人或企业组织进行申请;
- 二级域服务器存储了主机名信息
主机名
- 主机名称表明主机服务性质,比如:
www、ftp、mail
环境搭建
环境
- 配置静态IP
netsh interface ip set address "网卡名称" static IP地址 子网掩码 默认网关netsh interface ip set address "Ethernet0" static 192.168.126.133 255.255.255.0 192.168.126.2
- 配置静态DNS服务器地址
netsh interface ip set dnsservers "网卡名称" static DNS服务器IPnetsh interface ip set dnsservers "Ethernet0" static 192.168.126.2
- 安装DNS服务器软件
- 实现DNS服务器配置
- 客户端设置DNS服务器为winServerIP
netsh interface ip set dnsservers "网卡名称" static DNS服务器IP
- 客户端请求进行
www.woniuxy.com域名解析
nslookup www.woniuxy.com
DNS解析过程
案例
- 解析
www.woniuxy.com
递归查询
- 客户端请求首选DNS服务器进行域名解析,首选DNS服务器查询当前服务器是否存在目标域名主机信息,如果存在,则将该主机信息响应给客户端;
迭代查询
- 递归查询:
- 首选DNS服务器查询当前服务不存在目标域名主机信息,首选DNS服务器向
根域服务器发送域名解析请求,获取顶级域服务器信息; - 根域服务器收到域名解析请求后,会响应
com顶级域服务器信息给首选DNS服务器;
- 首选DNS服务器请求
com顶级域服务器,com顶级域服务器响应woniuxy二级域服务器信息;
- 首选DNS服务器请求
woniuxy二级域服务器,woniuxy二级域服务器响应www主机名信息;
- 首选DNS服务器收到主机名信息(包含解析结果IP),将信息发送给客户端;
命令
- 查看IP配置信息(DNS服务器信息)
ipconfig /all
- 查看DNS解析缓存
ipconfig /displaydns
- 清空DNS缓存
ipconfig /flushdns
- 设置静态DNS服务器地址
netsh interface ip set dnsservers "网卡名称" static DNS服务器IP
服务器域
- SOA:起始授权机构,存储当前域名解析的权威服务器。
- NS:名称服务器,存储当前域名解析的服务器。
- 新建主机:A表示域名与IPv4映射关系,AAAA表示域名与IPv6映射关系;
- 新建别名(CNAME):别名映射到已有域名解析记录;
- 新建邮件交换器:邮件交换记录,配置邮件服务器域名映射;
- 新建指针PTR:建立IP地址与域名映射关系;
域名解析分类
方向分类
- 正向查找:根据域名查询IP
- 反向查找:根据IP查询域名
查询方式
- 递归查询:客户端请求首选DNS服务器进行域名解析,首选DNS服务器查询到结果,直接响应给客户端的过程;
- 迭代查询:客户端请求首选DNS服务器进行域名解析,首选DNS服务器请求根域服务器、顶级域服务器、二级域服务器的过程;
主与从服务器
概述
- 主服务器:保存域名的数据原本,可以修改;
- 从服务器:保存主服务器域名数据副本,不可以修改;
环境搭建
- 安装DNS服务器软件,操作与主服务器一致
- 从服务器配置
- 主服务器配置
数据字段
Transaction ID: 0x0004 事务编号,用于区分不同会话Flags: 0x0100 Standard query 标志位0... .... .... .... = Response: Message is a query 消息类型,0表示请求,1表示响应.000 0... .... .... = Opcode: Standard query (0)操作类型,0表示标准查询,1表示反向查询,2表示请求服务器状态.... ..0. .... .... = Truncated: Message is not truncated数据包是否被截断.... ...1 .... .... = Recursion desired: Do query recursively 是否是递归查询.... .... .0.. .... = Z: reserved (0) 保留位Questions: 1 问题记录条数Answer RRs: 0 回答的记录条数Authority RRs: 0 授权记录数Additional RRs: 0 附加记录数Queries 查询请求内容Name: mail.woniuxy.com 域名空间地址(全限定域名)Type: A (Host Address) (1)类型,一般值为A表示IPv4地址Class: IN (0x0001)协议组类型,一般值为1表示TCP/IP协议组
DNS欺骗
概述
- 客户端要进行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中
echo "www.woniuxy.com A 111.111.111.111" >> /etc/ettercap/etter.dns
- 启动
ettercap工具
- 扫描网络环境
- 列出网络嗅探结果
- 确定ARP欺骗主机信息(靶机和伪造的主机)
- 发起ARP欺骗
- 查看客户端MAC表,ARP欺骗是否成功
-
发起DNS欺骗
- 客户端请求域名解析,查看是否欺骗成功
DNS欺骗防御
- 将DNS服务器IP的MAC静态化