其他
当子域名的 CNAME/NS/MX 记录指向已废弃云资源时…
通过 DNS 记录与提供商指纹匹配,发现并接管指向已下线云服务或过期第三方服务的子域名。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 49/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 85/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 59/100 ×0.15
适用场景
当子域名的 CNAME/NS/MX 记录通用
解决思路
- 收集子域名(amass、subfinder、assetfinder、crt.sh、SecurityTrails),对每个子域名执行 dig CNAME sub.target.com +short 解析 DNS,检查 CNAME 目标是否返回 NXDOMAIN 或提供商错误,并将错误响应与指纹表匹配。
- 识别关键信号:CNAME 指向 xxx.s3.amazonaws.com 且 HTTP 404 返回 NoSuchBucket 表示 S3 桶已删除可认领;指向 xxx.herokuapp.com 且返回 No such app 表示 Heroku 应用已删除;指向 xxx.github.io 且 404 返回 There isn't a GitHub Pages site here 表示 GitHub Pages 未认领;CNAME 目标域本身 NXDOMAIN 表示目标域已过期或从未存在;CNAME 指向提供商但 HTTP 200 返回默认停放页需进一步验证是否可认领。
- 使用自动化工具:subjack 自动检查 CNAME 接管,nuclei -t takeovers/ 使用 Nuclei 接管检测模板,参考 GitHub 上的 can-i-take-over-xyz 了解哪些服务易受攻击,dnsreaper 多提供商接管扫描器,subzy 快速子域名接管验证。
- 按提供商指纹表匹配:AWS S3(*.s3.amazonaws.com / *.s3-website-*.amazonaws.com,NoSuchBucket 404,可认领,创建同名桶)、GitHub Pages(*.github.io,There isn't a GitHub Pages site here 404,可认领,创建仓库并启用 Pages)、Heroku(*.herokuapp.com / *.herokudns.com,No such app,可认领,创建同名应用)、Azure(*.azurewebsites.net / *.cloudapp.azure.com / *.trafficmanager.net,各种默认页或 NXDOMAIN,可认领,注册匹配资源)、Shopify(*.myshopify.com,Sorry, this shop is currently unavailable,可认领,创建店铺并添加自定义域名)、Fastly(CNAME 到 Fastly 边缘,Fastly error: unknown domain,可认领,将域名添加到 Fastly 服务)、Pantheon(*.pantheonsite.io,404 Site Not Found 带 Pantheon 品牌,可认领)、Tumblr(*.tumblr.com 自定义域名 CNAME,There's nothing here / Whatever you were looking for doesn't exist,可认领)、WordPress.com(CNAME 到 *.wordpress.com,Do you want to register,可认领,在 WP.com 认领域名)、Zendesk(*.zendesk.com,Help Center Closed / Zendesk 品牌错误页,可认领,创建匹配子域名)、Unbounce(*.unbouncepages.com,The requested URL was not found,可认领)、Ghost(*.ghost.io,404 Not Found Ghost 错误,可认领)、Surge.sh(*.surge.sh,project not found,可认领)、Fly.io(CNAME 到 *.fly.dev,Fly.io 默认 404,可认领)。
- AWS S3 接管流程:用 curl -s http://sub.target.com 确认返回 NoSuchBucket,从 CNAME 提取桶名(如 sub.target.com.s3.amazonaws.com → 桶名 = sub.target.com),执行 aws s3 mb s3://sub.target.com --region <region>,上传 index.html 证明控制权,启用静态网站托管。
- GitHub Pages 接管流程:用 curl -s https://sub.target.com 确认返回 There isn't a GitHub Pages site here,创建 GitHub 仓库(任意名称),添加包含 sub.target.com 的 CNAME 文件,在仓库设置中启用 GitHub Pages,等待 DNS 传播(GitHub 验证 CNAME 匹配)。
- Heroku 接管流程:用 curl -s http://sub.target.com 确认返回 No such app,执行 heroku create <app-name-from-cname>,执行 heroku domains:add sub.target.com,部署概念验证页面。
- NS 接管(高严重性):枚举 NS 记录 dig NS target.com +short,对每个 NS 域执行 whois ns1.example.com 检查域名是否过期或可注册,执行 dig A ns1.example.com 检查是否 NXDOMAIN/SERVFAIL,检查子委派区域 sub.target.com 的 NS 记录;若 NS 域过期可注册,则注册后控制该区域所有 DNS 解析(A、MX、TXT 等全部记录),可签发 DV 证书、修改 SPF/DKIM/DMARC 发送认证邮件。
- MX 接管(邮件拦截):当 MX 记录指向已废弃邮件服务(如 target.com MX → mail.deadservice.com 且服务已停止),若攻击者可认领 mail.deadservice.com 或邮件租户,则可接收密码重置邮件、拦截敏感通信、重置使用邮箱认证的账户;常见场景是过期的 Google Workspace / Microsoft 365 租户,MX 仍指向 Google/Microsoft,攻击者创建新租户并认领该域名。
- 通配符 DNS 风险检测:执行 dig A random1234567.target.com,若解析成功则存在通配符;若 *.target.com 有通配符 CNAME 指向可认领服务,则每个未定义子域名都易受攻击,anything.target.com 都可被接管,大幅增加攻击面。
- 按决策树执行:解析 DNS 记录后,若有 CNAME 指向外部服务且 HTTP 响应匹配已知指纹,则尝试在提供商处认领,成功即确认接管,被阻止(名称保留、区域锁定)则记录并尝试变体;若 CNAME 目标 NXDOMAIN,目标为可注册域则注册获得完全控制,目标为活跃提供商的子域名则检查提供商认领流程;若有 NS 记录指向外部域名服务器,NS 域过期/可注册则注册获得完整区域接管;若有 MX 指向外部邮件服务,邮件服务已废弃/可认领则认领租户进行邮件拦截;若有 A 记录指向 IP,IP 属于弹性云(AWS EIP、Azure、GCP)且未分配则认领 IP 提供内容,已分配给其他客户则无法接管,属于专用服务器则无法接管。
- 接管后评估影响:是否与父域共享 Cookie(会话劫持)、CORS 是否信任 *.target.com(跨域数据窃取)、CSP 是否白名单 *.target.com(通过被接管子域名进行 XSS)、OAuth redirect_uri 是否允许 sub.target.com(令牌窃取)、能否为 sub.target.com 签发 TLS 证书(完全中间人攻击)。
- 防御与修复:下线云资源时移除 DNS 记录(关键)、监控 CNAME 目标的 NXDOMAIN 响应(高)、使用 DNS 监控工具如 SecurityTrails、DNSHistory(高)、删除 DNS 记录前认领/保留资源名称(高)、审计 NS 委派确保 NS 域已拥有并续费(关键)、避免将通配符 CNAME 指向第三方服务(中)、实施证书透明度监控(中)。
- 注意 AI 模型常犯错误:CNAME ≠ 接管,指向 S3 返回 403(桶存在但私有)不易受攻击,只有 NoSuchBucket(404)才是;S3 区域很重要,桶名全局唯一但网站端点按区域划分,尝试匹配 CNAME 中的区域;GitHub Pages 增加了域名验证,组织验证的域名无法被他人认领,检查目标是否使用;某些提供商(如 Cloudfront)需要特定分发配置而非仅认领域名;二阶接管需完整跟踪链 sub.target.com CNAME → other.target.com CNAME → dead-service.com;SPF 子域名接管:若 SPF 包含 include:sub.target.com 且你接管了 sub.target.com,可修改其 SPF TXT 记录授权你的邮件服务器,从而以 target.com 发送伪造邮件。
适用边界 · 注意事项
- 当 CNAME 指向的云资源仍然存在且活跃(如 S3 桶返回 403 而非 404)时,不构成接管漏洞。
- 当目标提供商已实施域名验证机制(如 GitHub Pages 组织验证域名)且目标已启用时,无法认领。
- 当 DNS 记录指向专用服务器或已分配给其他客户的弹性 IP 时,无法接管。