如何使用Domain-Protect保护你的网站抵御子域名接管攻击

时间:2022-06-01 19:13:31

如何使用Domain-Protect保护你的网站抵御子域名接管攻击

关于Domain-Protect

Domain-Protect是一款功能强大的子域名安全保护工具,可以帮助广大研究人员更好地保护自己的网站抵御子域名接管攻击。该工具支持实现以下两个目标:

  • 扫描一个AWS组织中的Amazon Route53,并获取存在安全问题的域名记录,然后尝试执行域名接管检测;
  • 可以通过Domain Protect for GCP检测Google Cloud DNS中存在安全问题的域名;

子域名检测功能

扫描Amazon Route53以识别:

  • 缺少S3源的CloudFront发行版的ALIAS记录;
  • 缺少S3源的CloudFront发行版的CNAME记录;
  • 存在接管漏洞的ElasticBeanstalk的ALIAS记录;
  • 缺少托管区域的已注册域名;
  • 易被接管的子域名;
  • 易被接管的S3ALIAS记录;
  • 易被接管的S3CNAME记录;
  • Azure资源中存在安全问题的CNAME记录;
  • 缺少Google云存储Bucket的CNAME记录;

可选的额外检测

这些额外的检测功能默认是关闭的,因为可能在扫描大型组织时会导致Lambda超时,比如说扫描缺少Google云存储Bucket的A记录。如需启用,请在你的tfvars文件或CI/CD管道中 创建下列Terraform变量:

  1. lambdas = ["alias-cloudfront-s3", "alias-eb", "alias-s3", "cname-cloudfront-s3", "cname-eb", "cname-s3", "ns-domain", "ns-subdomain", "cname-azure", "cname-google", "a-storage"]

通知

  • 针对扫描到的每种漏洞类型通过Slack通知 ,枚举出账号名称和漏洞域名;
  • 订阅SNS主题,发送JSON格式的电子邮件通知,其中包含帐户名、帐户ID和存在安全问题的域名;

工具要求

  • 需要AWS组织内的安全审计账号;
  • 在组织中的每个AWS帐户都具有相同名称的安全审核只读角色;
  • 针对Terraform状态文件的Storage Bucket;
  • Terraform 1.0.x;

工具源码获取

广大研究人员可以通过下列命令将该项目源码克隆至本地:

  1. git clone https://github.com/ovotech/domain-protect.git

工具使用

  • 以下列命令形式替换Terraform状态S3 Bucket字段(TERRAFORM_STATE_BUCKET);
  • 针对本地测试,拷贝项目中的tfvars.example,重命名并去掉.example后缀;
  • 输入你组织相关的详情信息;
  • 在你的CI/CD管道中输出Terraform变量;

AWS IAM策略

针对最小特权访问控制,项目提供了AWS IAM策略样例:

  • domain-protect audit policy
  • domain-protect audit trust relationship
  • domain-protect audit trust relationship with External ID
  • domain-protect deploy policy

工具使用截图

部署至安全审计账号:

如何使用Domain-Protect保护你的网站抵御子域名接管攻击

扫描整个AWS组织:

如何使用Domain-Protect保护你的网站抵御子域名接管攻击

通过Slack或电子邮件接收提醒消息:

如何使用Domain-Protect保护你的网站抵御子域名接管攻击

通过笔记本电脑手动执行扫描任务:

如何使用Domain-Protect保护你的网站抵御子域名接管攻击

项目地址

Domain-Protect:【GitHub传送门

原文地址:https://www.freebuf.com/articles/network/305559.html