关于子域名劫持的一些总结
字数 1368 2025-08-25 22:58:35

子域名劫持技术全面解析与实战指南

0x00 子域名劫持概述

子域名劫持(Subdomain Takeover)是一种利用目标组织废弃子域名未正确清理DNS记录的安全漏洞。当企业停止使用某个子域名服务但未删除相关DNS记录时,攻击者可以注册该服务并将子域名指向自己控制的服务器,从而获得对该子域名的控制权。

0x01 核心概念与技术原理

CNAME记录与CDN工作原理

  1. CNAME记录:DNS别名记录,将域名解析到另一个域名
  2. CDN中的CNAME应用
    • 用户访问域名时,CDN参与后解析流程变为:域名 → CNAME解析
    • 如果CNAME指向的域名配置错误,会导致跳转到错误地址

CloudFront服务特性

  1. AWS CloudFront是内容分发网络(CDN)服务
  2. 关键特性:
    • 允许用户上传SSL证书和私钥到CloudFront发行版
    • 作为SSL代理提供服务
    • 创建服务后会生成随机域名供用户访问
    • 采用多对多映射,无专用IPv4地址

0x02 子域名劫持发生条件

  1. 必要条件

    • 目标组织曾经使用过某子域名服务
    • 停止服务后未删除DNS记录(特别是CNAME记录)
    • 该服务允许新用户注册并配置相同子域名
  2. 典型场景

    • 企业关闭CloudFront服务但保留CNAME记录
    • 攻击者发现后可注册相同子域名指向自己的服务器
    • CloudFront会调用遗留的CNAME记录指向攻击者服务器

0x03 子域名发现技术

1. Google Hacking方法

site:*.target.com
site:*.*.target.com
site:*.*.*.target.com

2. 自动化工具检测

推荐工具:

  • aquatone:综合性子域名发现与接管检测工具
  • JSFinder:从JavaScript文件中提取子域名
  • subfinder:被动子域名枚举工具

3. 其他发现方法

  • 证书透明度日志查询
  • DNS区域传输尝试
  • 暴力破解常见子域名
  • 第三方服务历史记录查询

0x04 劫持可能性验证

  1. 初步检测

    aquatone-takeover --domain example.com
    

    检查输出中"vulnerable"标记的域名

  2. 手动验证

    • 访问疑似废弃子域名
    • 检查是否显示服务不存在或错误页面
    • 常见错误提示:
      • "NoSuchBucket" (AWS S3)
      • "404 Not Found"
      • "未找到网站"
  3. 参考资源

0x05 特殊劫持技术

利用平台自身功能劫持

案例:Intercom服务劫持

  1. 发现Intercom废弃子域名
  2. 创建Intercom试用账户
  3. 在服务设置中添加目标子域名
  4. 发布测试内容
  5. 成功接管子域名的帮助中心

0x06 防御措施

  1. 企业防护建议

    • 下线服务前彻底清理DNS记录
    • 定期审计所有子域名状态
    • 监控子域名解析异常
    • 建立子域名生命周期管理流程
  2. 服务商防护机制

    • 强制域名所有权验证
    • 提供域名释放确认流程
    • 实施域名占用保护期

0x07 实战注意事项

  1. 常见错误

    • 未确认目标使用的CDN平台
    • 忽略CNAME记录的实际指向
    • 对错误页面判断失误
  2. 成功关键

    • 准确识别服务提供商
    • 验证DNS记录类型
    • 确认服务注册可行性

0x08 参考资源

  1. Subdomain Takeover Basics
  2. can-i-take-over-xyz
  3. Subdomain Takeover Principles
  4. AWS and Trailing Dot Domains
子域名劫持技术全面解析与实战指南 0x00 子域名劫持概述 子域名劫持(Subdomain Takeover)是一种利用目标组织废弃子域名未正确清理DNS记录的安全漏洞。当企业停止使用某个子域名服务但未删除相关DNS记录时,攻击者可以注册该服务并将子域名指向自己控制的服务器,从而获得对该子域名的控制权。 0x01 核心概念与技术原理 CNAME记录与CDN工作原理 CNAME记录 :DNS别名记录,将域名解析到另一个域名 CDN中的CNAME应用 : 用户访问域名时,CDN参与后解析流程变为:域名 → CNAME解析 如果CNAME指向的域名配置错误,会导致跳转到错误地址 CloudFront服务特性 AWS CloudFront是内容分发网络(CDN)服务 关键特性: 允许用户上传SSL证书和私钥到CloudFront发行版 作为SSL代理提供服务 创建服务后会生成随机域名供用户访问 采用多对多映射,无专用IPv4地址 0x02 子域名劫持发生条件 必要条件 : 目标组织曾经使用过某子域名服务 停止服务后未删除DNS记录(特别是CNAME记录) 该服务允许新用户注册并配置相同子域名 典型场景 : 企业关闭CloudFront服务但保留CNAME记录 攻击者发现后可注册相同子域名指向自己的服务器 CloudFront会调用遗留的CNAME记录指向攻击者服务器 0x03 子域名发现技术 1. Google Hacking方法 2. 自动化工具检测 推荐工具: aquatone :综合性子域名发现与接管检测工具 JSFinder :从JavaScript文件中提取子域名 subfinder :被动子域名枚举工具 3. 其他发现方法 证书透明度日志查询 DNS区域传输尝试 暴力破解常见子域名 第三方服务历史记录查询 0x04 劫持可能性验证 初步检测 : 检查输出中"vulnerable"标记的域名 手动验证 : 访问疑似废弃子域名 检查是否显示服务不存在或错误页面 常见错误提示: "NoSuchBucket" (AWS S3) "404 Not Found" "未找到网站" 参考资源 : can-i-take-over-xyz :各平台子域名接管可能性汇总 0x05 特殊劫持技术 利用平台自身功能劫持 案例:Intercom服务劫持 发现Intercom废弃子域名 创建Intercom试用账户 在服务设置中添加目标子域名 发布测试内容 成功接管子域名的帮助中心 0x06 防御措施 企业防护建议 : 下线服务前彻底清理DNS记录 定期审计所有子域名状态 监控子域名解析异常 建立子域名生命周期管理流程 服务商防护机制 : 强制域名所有权验证 提供域名释放确认流程 实施域名占用保护期 0x07 实战注意事项 常见错误 : 未确认目标使用的CDN平台 忽略CNAME记录的实际指向 对错误页面判断失误 成功关键 : 准确识别服务提供商 验证DNS记录类型 确认服务注册可行性 0x08 参考资源 Subdomain Takeover Basics can-i-take-over-xyz Subdomain Takeover Principles AWS and Trailing Dot Domains