子域名接管漏洞是一种常见的安全问题,攻击者可以通过注册未被使用的子域名来控制原本属于其他组织的子域。
漏洞基本原理
-
CNAME记录的存在
子域名(如 sub.example.com)的CNAME记录指向一个外部资源(如 anotherdomain.com)。如果该外部资源失效或到期,但DNS记录未被删除,攻击者就可以利用这一点。
-
资源失效
当指向的外部服务(如SaaS、云存储等)不再存在时,攻击者可以注册该服务并创建同名资源。例如,如果 anotherdomain.com 过期并可供注册,攻击者可以注册它,从而控制 sub.example.com 的内容。
-
控制子域名
一旦攻击者成功注册了过期的域名,DNS记录仍然指向该域名,攻击者就可以完全控制 sub.example.com。这使得他们能够托管恶意内容、钓鱼页面或进行其他恶意活动。
漏洞测试
在挖掘这个漏洞需要提前安装好以下工具:subfinder、httpx、nuclei
https://github.com/projectdiscovery/subfinder
https://github.com/projectdiscovery/httpx
https://github.com/projectdiscovery/nuclei
下载好3个工具,如果是macOS系统把他们放到/usr/local/bin目录下即可。
打开终端执行以下命令:
subfinder -dL targetdomainlist.txt | httpx -silent > subdomains.txt ; nuclei -t /nuclei-templates/http/takeovers -l subdomains.txt
其中:
targetdomainlist.txt是你需要检测的目标域名列表。
/nuclei-templates/http/takeovers是指定nuclei的模版路径,这里指定了HTTP接管漏洞的模板。
这条命令首先通过 subfinder 从指定的目标域名列表中提取子域名,然后使用 httpx 验证这些子域名是否有效,并将结果保存到 subdomains.txt。最后,使用 nuclei 对这些子域名进行接管漏洞扫描,从而帮助安全测试人员识别潜在的安全风险。
漏洞危害
-
数据泄露:通过劫持子域名,攻击者可以收集用户的会话cookie和其他敏感信息,从而实施会话劫持或其他攻击。
-
钓鱼攻击:攻击者可以构造伪造的登录页面,诱骗用户输入敏感信息,如用户名和密码。
-
电子邮件欺诈:通过操控MX记录,攻击者能够接收和发送电子邮件,可能用于网络钓鱼或其他欺诈活动。
防御措施
-
定期审查DNS记录:确保不再使用的子域名及其相关CNAME记录被及时删除。
-
监控过期域名:使用工具定期检查和监控潜在的可劫持子域名。
-
加强域名验证:在云服务提供商处注册资源时,应要求提供域名所有权的验证,例如增加TXT记录等。
原文始发于微信公众号(赛哈文):一条命令批量测试子域名接管漏洞
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论