4.2.10-测试子域接管

子域接管测试

ID
WSTG-CONF-10

总结

成功利用此类漏洞允许攻击者声明并控制受害者的子域。此攻击依赖于以下内容:

  1. 受害者的外部 DNS 服务器子域记录配置为指向不存在或非活动资源/外部服务/终结点。XaaS(任何即服务)产品和公共云服务的激增提供了许多需要考虑的潜在目标。
  2. 托管资源/外部服务/终结点的服务提供商未正确处理子域所有权验证。

如果子域接管成功,则可能会发生各种攻击(提供恶意内容、网络钓鱼、窃取用户会话 Cookie、凭据等)。此漏洞可被利用用于各种 DNS 资源记录,包括:A, CNAME, MX, NS, TXT 等。就攻击严重性而言,NS 子域接管(尽管可能性较小)的影响最大,因为成功的攻击可能导致对整个 DNS 区域和受害者域的完全控制。

GitHub

  1. 受害者 (victim.com) 使用 GitHub 进行开发,并配置 DNS 记录 (coderepo.victim.com) 来访问它。
  2. 受害者决定将其代码存储库从 GitHub 迁移到商业平台,coderepo.victim.com 并且不会从其 DNS 服务器中删除。
    3.攻击者发现coderepo.victim.com托管在 GitHub 上,并使用 GitHub 页面使用他们的 GitHub 帐户进行声明。

过期域名

  1. 受害者 (victim.com) 拥有另一个域 (victimotherdomain.com),并使用 CNAME 记录 (www) 引用另一个域 (www.victim.com --> victimotherdomain.com)
  2. 在某些时候,victimotherdomain.com 会过期,任何人都可以注册。由于 CNAME 记录不会从 victim.com DNS 区域中删除,因此在 DNS 记录存在 www.victim.com 之前,注册 victimotherdomain.com 的任何人都可以完全控制。

测试目标

  • 枚举所有可能的域(以前的和当前的)。
  • 识别忘记或配置错误的域。

如何测试

黑盒测试

第一步是枚举受害者 DNS 服务器和资源记录。有多种方法可以完成此任务,例如使用常见子域字典列表、DNS 暴力破解或使用 Web 搜索引擎和其他 OSINT 数据源进行 DNS 枚举。

使用 dig 命令,测试人员查找以下需要进一步调查的 DNS 服务器响应消息:

  • NXDOMAIN
  • SERVFAIL
  • REFUSED
  • no servers could be reached.
测试 DNS A、CNAME 记录子域接管

使用dnsrecon以下方法对受害者的域(victim.com) 执行基本的 DNS 枚举:

$ ./dnsrecon.py -d victim.com
[*] Performing General Enumeration of Domain: victim.com
...
[-] DNSSEC is not configured for victim.com
[*]      A subdomain.victim.com 192.30.252.153
[*]      CNAME subdomain1.victim.com fictioussubdomain.victim.com
...

确定哪些 DNS 资源记录已失效,并指向非活动/未使用的服务。CNAME对记录使用 dig 命令:

$ dig CNAME fictioussubdomain.victim.com
; <<>> DiG 9.10.3-P4-Ubuntu <<>> ns victim.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 42950
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

以下 DNS 响应需要进一步调查: NXDOMAIN.

为了测试记录 A ,测试人员执行 whois 数据库查找并将 GitHub 标识为服务提供商

$ whois 192.30.252.153 | grep "OrgName"
OrgName: GitHub, Inc.

测试人员访问 subdomain.victim.com 或发出 HTTP GET 请求,该请求返回“404 - 找不到文件”响应,这清楚地表明存在漏洞。

在这里插入图片描述

Figure 4.2.10-1: GitHub 404 File Not Found response

测试人员使用 GitHub 页面声明域:

在这里插入图片描述

Figure 4.2.10-2: GitHub claim domain

测试 NS 记录子域接管

标识范围内域的所有名称服务器:

$ dig ns victim.com +short
ns1.victim.com
nameserver.expireddomain.com

在这个虚构的示例中,测试人员通过域注册商搜索检查域 expireddomain.com是否处于活动状态。如果该域可供购买,则子域易受攻击。
以下 DNS 响应需要进一步调查: SERVFAILREFUSED

灰盒测试

测试人员具有可用的 DNS 区域文件,这意味着不需要 DNS 枚举。测试方法是相同的。

修复

为了降低子域接管的风险,应从 DNS 区域中删除易受攻击的 DNS 资源记录。建议将持续监控和定期检查作为最佳实践。

工具

引用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值