DNS重绑定攻击原理与防御
字数 1302 2025-11-17 09:45:27
DNS重绑定攻击原理与防御
描述
DNS重绑定攻击是一种利用DNS解析机制绕过同源策略(SOP)的网络攻击技术。攻击者通过控制域名解析过程,使同一域名在短时间内指向不同的IP地址(如首次解析指向攻击者控制的合法地址,后续解析指向目标内网地址),从而诱骗用户浏览器访问内部系统或执行未授权操作。该攻击常被用于绕过防火墙、扫描内网服务或直接攻击物联网(IoT)设备。
核心知识点拆解
- 同源策略(SOP)的限制:浏览器禁止页面脚本访问不同源(协议、域名、端口均需一致)的资源。
- DNS解析机制:域名解析结果存在缓存时间(TTL),但攻击者可设置极短的TTL或利用浏览器特性强制刷新解析。
- 攻击前提:用户访问恶意页面后,页面中的脚本需在域名重新解析前保持运行状态。
攻击步骤详解
-
攻击准备阶段
- 攻击者注册一个域名(如
evil.com),并配置其DNS权威服务器:- 设置TTL极短(如1秒),确保解析结果可快速更新。
- 首次解析时返回攻击者控制的公网IP(如
1.2.3.4),用于托管恶意页面。
- 在
1.2.3.4上部署恶意网页,包含用于攻击的JavaScript代码。
- 攻击者注册一个域名(如
-
诱骗用户访问
- 用户通过钓鱼邮件或链接访问
http://evil.com/malicious.html。 - 浏览器首次解析
evil.com获得IP1.2.3.4,加载恶意页面并执行脚本。
- 用户通过钓鱼邮件或链接访问
-
DNS重绑定触发
- 恶意脚本通过异步请求(如
XMLHttpRequest)访问http://evil.com:8080/(目标内网服务端口)。 - 此时由于首次解析的TTL已过期,浏览器重新查询
evil.com的IP。 - 攻击者的DNS服务器此次返回内网IP(如
192.168.1.100,路由器或IoT设备地址)。
- 恶意脚本通过异步请求(如
-
绕过同源策略
- 浏览器认为
evil.com与当前页面同源(域名相同),允许脚本读取响应内容。 - 恶意脚本可进一步扫描内网(如尝试访问
192.168.1.1:80)或直接攻击设备(如向路由器提交修改配置的请求)。
- 浏览器认为
防御措施
-
客户端防御
- 浏览器安全策略:现代浏览器通过DNS pinning(解析结果绑定)或检测异常IP跳转(如公网IP切换到私有IP)拦截请求。
- 用户行为:避免访问不可信链接,使用网络分段隔离敏感设备。
-
服务端与网络防御
- 内网服务认证:对关键服务强制要求身份验证,禁止匿名访问。
- 防火墙规则:禁止内网设备主动向外网DNS服务器查询,仅允许使用可信DNS。
- 主机安全配置:关闭设备非必要端口,禁用默认密码。
-
开发侧防护
- 设置
Host头验证:服务端校验请求的Host头是否属于合法域名。 - 使用CSRF令牌:内网Web界面需包含随机令牌,防止恶意请求伪造。
- 设置
实际案例
2018年,攻击者通过DNS重绑定攻击劫持家用路由器,修改DNS设置指向恶意服务器,导致用户流量被劫持。防御方案包括升级路由器固件(修复未授权访问漏洞)并启用管理员密码验证。
通过理解DNS重绑定的链式利用(DNS机制→SOP绕过→内网渗透),可更全面地部署纵深防御策略。