Domain/Subdomain takeover
最后更新于
最后更新于
使用Trickest可以轻松构建和自动化工作流程,使用世界上最先进的社区工具。 立即获取访问权限:
如果您发现某个域名(domain.tld)被某个服务在范围内使用,但公司已经失去了对其的所有权,您可以尝试注册它(如果便宜的话),并通知公司。如果该域名通过GET参数或Referer标头接收到一些敏感信息,比如会话cookie,那么这肯定是一个漏洞。
公司的一个子域指向一个未注册名称的第三方服务。如果您可以在这个第三方服务中创建一个帐户并注册正在使用的名称,则可以执行子域接管。
有几种带有字典的工具可用于检查可能的接管:
BBOT的默认子域枚举中包含子域接管检查。签名直接从https://github.com/EdOverflow/can-i-take-over-xyz获取。
当在一个域中使用DNS通配符时,该域的任何请求的子域,如果没有明确指定不同的地址,将被解析为相同的信息。这可以是一个A ip地址,一个CNAME...
例如,如果*.testing.com
被通配到1.1.1.1
。那么,not-existent.testing.com
将指向1.1.1.1
。
然而,如果管理员将其指向第三方服务通过CNAME,比如一个github子域,例如(sohomdatta1.github.io
)。攻击者可以创建自己的第三方页面(在这种情况下是Github),并表示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可以轻松构建和自动化工作流程,使用全球最先进的社区工具。 立即获取访问权限: