DNS重绑定攻击原理与防御
字数 1302 2025-11-17 09:45:27

DNS重绑定攻击原理与防御

描述
DNS重绑定攻击是一种利用DNS解析机制绕过同源策略(SOP)的网络攻击技术。攻击者通过控制域名解析过程,使同一域名在短时间内指向不同的IP地址(如首次解析指向攻击者控制的合法地址,后续解析指向目标内网地址),从而诱骗用户浏览器访问内部系统或执行未授权操作。该攻击常被用于绕过防火墙、扫描内网服务或直接攻击物联网(IoT)设备。

核心知识点拆解

  1. 同源策略(SOP)的限制:浏览器禁止页面脚本访问不同源(协议、域名、端口均需一致)的资源。
  2. DNS解析机制:域名解析结果存在缓存时间(TTL),但攻击者可设置极短的TTL或利用浏览器特性强制刷新解析。
  3. 攻击前提:用户访问恶意页面后,页面中的脚本需在域名重新解析前保持运行状态。

攻击步骤详解

  1. 攻击准备阶段

    • 攻击者注册一个域名(如 evil.com),并配置其DNS权威服务器:
      • 设置TTL极短(如1秒),确保解析结果可快速更新。
      • 首次解析时返回攻击者控制的公网IP(如 1.2.3.4),用于托管恶意页面。
    • 1.2.3.4 上部署恶意网页,包含用于攻击的JavaScript代码。
  2. 诱骗用户访问

    • 用户通过钓鱼邮件或链接访问 http://evil.com/malicious.html
    • 浏览器首次解析 evil.com 获得IP 1.2.3.4,加载恶意页面并执行脚本。
  3. DNS重绑定触发

    • 恶意脚本通过异步请求(如 XMLHttpRequest)访问 http://evil.com:8080/(目标内网服务端口)。
    • 此时由于首次解析的TTL已过期,浏览器重新查询 evil.com 的IP。
    • 攻击者的DNS服务器此次返回内网IP(如 192.168.1.100,路由器或IoT设备地址)。
  4. 绕过同源策略

    • 浏览器认为 evil.com 与当前页面同源(域名相同),允许脚本读取响应内容。
    • 恶意脚本可进一步扫描内网(如尝试访问 192.168.1.1:80)或直接攻击设备(如向路由器提交修改配置的请求)。

防御措施

  1. 客户端防御

    • 浏览器安全策略:现代浏览器通过DNS pinning(解析结果绑定)或检测异常IP跳转(如公网IP切换到私有IP)拦截请求。
    • 用户行为:避免访问不可信链接,使用网络分段隔离敏感设备。
  2. 服务端与网络防御

    • 内网服务认证:对关键服务强制要求身份验证,禁止匿名访问。
    • 防火墙规则:禁止内网设备主动向外网DNS服务器查询,仅允许使用可信DNS。
    • 主机安全配置:关闭设备非必要端口,禁用默认密码。
  3. 开发侧防护

    • 设置 Host 头验证:服务端校验请求的 Host 头是否属于合法域名。
    • 使用CSRF令牌:内网Web界面需包含随机令牌,防止恶意请求伪造。

实际案例
2018年,攻击者通过DNS重绑定攻击劫持家用路由器,修改DNS设置指向恶意服务器,导致用户流量被劫持。防御方案包括升级路由器固件(修复未授权访问漏洞)并启用管理员密码验证。

通过理解DNS重绑定的链式利用(DNS机制→SOP绕过→内网渗透),可更全面地部署纵深防御策略。

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 获得IP 1.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绕过→内网渗透),可更全面地部署纵深防御策略。