一. DNS(Domain Name System)
-
定义:是一个分布式数据库系统,用于管理域名与IP地址的映射关系。(即里面记录着很多url和其应对ip地址)
-
核心功能:
- 域名解析:将域名(如
www.example.com)转换为IPv4/IPv6地址(如93.184.216.34)。
- 域名解析:将域名(如
-
分层结构:
DNS的分层设计让每个层级只负责自己的一小块,分工明确,速度更快。
-
根域名服务器(Root DNS)
- 职责:管理顶级域(全球有13组根服务器,如
.com、.org、.cn等)。 - 🌰:根服务器相当于“电话总机”,本地DNS问根服务器、“
www.example.com在哪?”,根服务器说:“我不知道,但.com的服务器可能知道,你去问它吧!”
- 职责:管理顶级域(全球有13组根服务器,如
-
顶级域名服务器(TLD DNS)
- 职责:管理特定顶级域下的权威服务器(如
.com下有google.com、facebook.com)。 - 🌰:本地DNS问
.com的服务器:“www.example.com的IP是啥?”,TLD服务器说:“我不知道,但example.com的权威服务器可能知道,你去问它吧!”
- 职责:管理特定顶级域下的权威服务器(如
-
权威域名服务器(Authoritative DNS)
- 职责:存储具体域名的IP地址(如
example.com的权威服务器知道www.example.com的IP)。 - 🌰: 本地DNS问权威服务器:“
www.example.com的IP是啥?”,权威服务器回答:“IP是X.X.X.X!”
- 职责:存储具体域名的IP地址(如
-
递归解析器(本地DNS)
- 职责:由ISP或第三方(如Google DNS)提供,负责向用户返回最终解析结果。(帮用户完成所有查询步骤,最终拿到IP地址。)
- 🌰:你家的路由器或运营商(如电信)提供的DNS服务就是递归解析器,它替你跑腿问路。
二. DNS解析过程
- DNS解析分为两种模式:
- 递归查询:用户向本地DNS服务器发送请求,本地DNS负责完成所有层级的查询并返回最终结果。
- 迭代查询:本地DNS依次向根、TLD、权威服务器发起请求,逐步获取信息。
典型流程:
假设你在浏览器输入 www.example.com,解析过程如下:
步骤1:检查本地缓存(如Hosts文件、浏览器缓存)
- 浏览器先看自己有没有缓存过
www.example.com的IP,如果有就直接用。 - 如果没有,进入下一步。
步骤2:问本地DNS服务器
- 你的电脑会问本地DNS服务器(比如你设置的
8.8.8.8或运营商提供的DNS)。 - 本地DNS的任务:替你把域名查到底,直到拿到IP。
步骤3:本地DNS开始“问路”
-
问根服务器(本地DNS查询根服务器)
- 本地DNS问根服务器:“
www.example.com的IP是啥?” - 根服务器回答:“我不知道,但
.com的服务器地址是A.B.C.D,你去问它!”
- 本地DNS问根服务器:“
-
问TLD服务器(.com的服务器)
- 本地DNS问
.com的服务器:“www.example.com的IP是啥?” - TLD服务器回答:“我不知道,但
example.com的权威服务器地址是X.Y.Z.W,你去问它!”
- 本地DNS问
-
问权威服务器
- 本地DNS问权威服务器:“
www.example.com的IP是啥?” - 权威服务器回答:“IP是
93.184.216.34!”
- 本地DNS问权威服务器:“
步骤4:获取IP后返回结果并缓存
- 本地DNS把
93.184.216.34返回给你的电脑,同时缓存这个结果(下次再查直接给缓存结果)。 - 你的电脑也缓存这个IP,加快后续访问速度。
三. DNS劫持(DNS Hijacking)
-
定义:是一种网络攻击手段,攻击者通过非法手段篡改DNS响应,将用户引导至恶意IP。
-
原理:本质是
干扰DNS解析过程,使合法域名被解析到攻击者控制的IP地址 -
类型:
根据攻击目标和手段,DNS劫持可分为以下类型:
(1) 本地DNS劫持
-
目标:用户设备(如电脑、手机)。
-
手段:
- 恶意软件:感染设备后修改DNS配置,指向恶意DNS服务器。
- Hosts文件篡改:直接修改本地Hosts文件,添加虚假域名-IP映射。
-
影响:仅影响被感染的设备。
(2) 路由器DNS劫持
-
目标:家庭或企业路由器。
-
手段:
- 利用默认密码或漏洞登录路由器管理界面,修改DNS服务器地址,指向恶意服务器。
- 通过恶意固件更新劫持路由器。
-
影响:所有连接该路由器的设备均受影响。
(3) 中间人攻击(MITM)
-
目标:用户与DNS服务器之间的通信链路。
-
手段:
- 在公共Wi-Fi等不安全的网络中监听DNS请求。
- 伪造DNS响应,快速抢在合法响应前返回虚假IP。
-
影响:依赖网络环境,可能影响同一网络内的用户。
(4) 运营商级DNS劫持
-
目标:网络服务提供商(ISP)的DNS服务器。
-
手段:
- ISP主动劫持用户DNS请求,返回广告页面或监控流量。
- 政府或机构实施审查,将特定域名解析到封锁页面。
-
影响:覆盖ISP所有用户,规模庞大。
(5) DNS缓存投毒(Cache Poisoning)
-
目标:递归DNS服务器的缓存。
-
手段:
- 攻击者向递归服务器发送伪造响应,利用事务ID和端口号预测漏洞。
- 一旦服务器缓存虚假记录,后续用户查询均返回错误IP。
-
影响:污染服务器缓存,影响所有依赖该服务器的用户。
-
影响:用户被导向钓鱼网站、恶意软件下载页面,导致数据泄露或服务中断。
-