Domain/Subdomain takeover
Last updated
Last updated
学习和实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE) 学习和实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)
使用 Trickest 轻松构建和 自动化工作流程,由世界上 最先进 的社区工具提供支持。 今天就获取访问权限:
如果你发现某个域名 (domain.tld) 被某个服务使用在范围内,但 公司 已经 失去 了对它的 所有权,你可以尝试 注册 它(如果价格足够便宜)并通知公司。如果这个域名接收一些 敏感信息,比如通过 GET 参数或 Referer 头部的会话 cookie,这肯定是一个 漏洞。
公司的一个子域名指向一个 未注册名称的第三方服务。如果你可以在这个 第三方服务 中 创建 一个 账户 并 注册 正在使用的 名称,你可以执行子域名接管。
有几个工具带有字典来检查可能的接管:
当在一个域名中使用 DNS 通配符时,任何请求的该域名的子域名,如果没有明确指向不同的地址,将会 解析为相同的信息。这可以是 A IP 地址,CNAME...
例如,如果 *.testing.com
被通配符指向 1.1.1.1
。那么,not-existent.testing.com
将指向 1.1.1.1
。
然而,如果系统管理员不是指向一个 IP 地址,而是通过 CNAME 指向一个 第三方服务,比如一个 Github 子域名(例如 sohomdatta1.github.io
)。攻击者可以 创建他自己的第三方页面(在这种情况下是在 Gihub 上)并声称 something.testing.com
指向那里。因为,CNAME 通配符 将同意攻击者能够 为受害者的域名生成任意子域名指向他的页面。
你可以在 CTF 文章中找到这个漏洞的例子:https://ctf.zeyu2001.com/2022/nitectf-2022/undocumented-js-api
子域名接管本质上是针对特定域名的 DNS 欺骗,允许攻击者为一个域名设置 A 记录,使浏览器显示来自攻击者服务器的内容。这种浏览器中的 透明性 使域名容易受到网络钓鱼攻击。攻击者可能会使用 typosquatting 或 Doppelganger domains 来实现这一目的。特别容易受到攻击的是那些在网络钓鱼邮件中看似合法的 URL,欺骗用户并由于域名的固有信任而逃避垃圾邮件过滤器。
查看这篇 文章以获取更多细节
如果攻击者通过像 Let's Encrypt 这样的服务生成 SSL 证书,会增加这些假域名的合法性,使网络钓鱼攻击更具说服力。
浏览器透明性还扩展到 cookie 安全性,受 同源策略 的管理。Cookie 通常用于管理会话和存储登录令牌,可以通过子域名接管进行利用。攻击者可以 收集会话 cookie,只需将用户引导到一个被攻陷的子域名,危及用户数据和隐私。
子域名接管的另一个方面涉及电子邮件服务。攻击者可以操纵 MX 记录 从合法子域名接收或发送电子邮件,从而增强网络钓鱼攻击的有效性。
进一步的风险包括 NS 记录接管。如果攻击者控制了一个域名的 NS 记录,他们可以将一部分流量引导到他们控制的服务器。如果攻击者为 DNS 记录设置了较高的 TTL(生存时间),则会加大攻击的持续时间。
攻击者可能会利用指向不再使用或已停用的外部服务的未声明 CNAME 记录。这使他们能够在受信任的域名下创建一个页面,进一步促进网络钓鱼或恶意软件传播。
缓解策略包括:
删除易受攻击的 DNS 记录 - 如果子域名不再需要,这种方法有效。
声明域名 - 在相应的云服务提供商处注册资源或重新购买过期域名。
定期监控漏洞 - 像 aquatone 这样的工具可以帮助识别易受攻击的域名。组织还应修订其基础设施管理流程,确保 DNS 记录的创建是资源创建的最后一步,而资源销毁的第一步。
对于云服务提供商,验证域名所有权对于防止子域名接管至关重要。一些服务提供商,如 GitLab,已经认识到这个问题并实施了域名验证机制。
使用 Trickest 轻松构建和 自动化工作流程,由世界上 最先进 的社区工具提供支持。 今天就获取访问权限:
学习和实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE) 学习和实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)