子域名劫持漏洞高阶利用:从发现到利用完整攻略

admin 2025年1月26日16:06:48评论19 views字数 2362阅读7分52秒阅读模式

子域名劫持是一种严重的安全漏洞,攻击者通过利用 DNS 设置中的错误配置来接管子域名。这类攻击可能导致钓鱼攻击数据泄露恶意跳转,对目标组织的声誉和安全性造成重大影响。对于渗透测试人员和漏洞赏金猎人而言,子域名劫持是一项高价值的技能。本文将通过实用技术、多样工具和真实案例,带你一步步了解如何识别与利用子域名劫持漏洞。

子域名劫持漏洞高阶利用:从发现到利用完整攻略

什么是子域名劫持?

子域名劫持发生在子域名指向外部服务(如 GitHub Pages、AWS S3、Heroku 等)时,但外部服务未正确配置。尽管 DNS 记录仍然存在,但其所指向的资源已被删除或未被占用,从而使子域名暴露在被劫持的风险中。

为什么子域名劫持很危险?

  1. 钓鱼攻击:攻击者可以冒充可信域名,诱骗用户泄露敏感信息。
  2. 网页篡改:攻击者可在受害子域名上托管恶意内容,损害组织声誉。
  3. 子域名信任劫持:由于子域名属于可信域名的一部分,可能绕过安全过滤机制,增加攻击的可信度。

子域名劫持的完整操作指南

第一步:枚举子域名

发现目标的子域名是劫持的第一步。子域名枚举可以帮助我们收集潜在易受攻击的子域名列表。

工具与命令

  1. Subfinder
subfinder -d target.com -o subdomains.txt

Subfinder 是一款优秀的被动子域名枚举工具,从公开数据源中提取子域名。

  1. Amass
amass enum -d target.com -o subdomains_amass.txt

Amass 支持主动与被动枚举,能够生成全面的子域名列表。

解析
Subfinder 和 Amass 能快速收集子域名,特别是那些指向第三方服务的子域名,为漏洞评估提供良好的起点。

第二步:识别易受攻击的子域名

收集子域名后,下一步是检查是否存在可被劫持的子域名。通常,这些子域名指向的云服务(如 AWS、GitHub Pages、Heroku 等)已被删除或未被认领。

工具与命令

  1. HTTP 探测(httprobe)
cat subdomains.txt | httprobe > live_subdomains.txt

检查哪些子域名返回有效的 HTTP 响应,过滤出活跃的子域名。

  1. 查询 CNAME 记录(dig)
dig CNAME subdomain.target.com

CNAME 记录可帮助识别子域名是否指向第三方服务,如 GitHub、AWS 或 Heroku。

判断依据
如果 CNAME 记录指向某服务(例如 github.io),但访问子域名时返回 404 或默认错误页面,则该子域名可能存在劫持风险。

第三步:利用漏洞

一旦确认子域名易受攻击,下一步就是认领资源并进行利用。

常见易受攻击的服务及操作

  1. GitHub Pages
    如果子域名指向 GitHub Pages(如 username.github.io),但对应的仓库不存在,可以创建一个同名仓库并接管该子域名:
git init
git remote add origin https://github.com/username/target-repo.git
echo"Subdomain takeover!" > index.html
git add .
git commit -m "Initial commit"
git push origin master
  1. AWS S3 存储桶
    如果子域名指向 S3 存储桶(如 bucket-name.s3.amazonaws.com),但存储桶未被占用,可以创建一个同名存储桶:
aws s3 mb s3://bucket-name
aws s3 cp takeover.html s3://bucket-name --acl public-read
  1. Heroku
    如果子域名指向 Heroku(如 herokuapp.com),但应用已被删除,可以创建一个同名应用:
heroku create app-name
git push heroku master

通过占用被丢弃或未认领的资源,你可以成功接管目标子域名,并控制其内容。

自动化检测:使用 Subjack 和 Nuclei

为了加速发现和利用子域名劫持漏洞,可以使用自动化工具,如 Subjack 和 Nuclei。

  1. Subjack
subjack -w subdomains.txt -t 100 -ssl -o takeovers.txt

Subjack 可自动检测主流云服务中的 DNS 配置错误,发现潜在的子域名劫持漏洞。 2. Nuclei

 nuclei -l live_subdomains.txt -t takeover-templates/ -o takeovers_report.txt

Nuclei 是一款漏洞扫描工具,支持使用模板检测子域名劫持漏洞。

优势
这些工具大幅提高了检测效率,尤其是在漏洞赏金项目中,可实现大规模测试。

常见易受攻击的服务

以下是一些常见的易受子域名劫持影响的服务:

  • GitHub Pages:如 username.github.io
  • AWS S3 存储桶:如 bucket-name.s3.amazonaws.com
  • Heroku:如 herokuapp.com
  • Shopify:如 shops.myshopify.com
  • Azure Blob Storage:如 accountname.blob.core.windows.net

当这些服务配置错误或被遗弃时,子域名很容易被劫持。了解如何检测这些服务的特定漏洞,将帮助你更高效地发现和利用它们。

总结

子域名劫持是网络安全中一个高风险的漏洞类型,它的危险性在于可以直接影响组织的信任和安全性。通过本文的逐步指南,你可以学习如何枚举子域名、识别漏洞以及利用这些漏洞,同时也可以使用自动化工具提高效率。

注意:本文的所有内容仅供教育目的使用,请勿将其用于非法活动。子域名劫持的最佳解决方案是主动检查并修复 DNS 配置,确保所有子域名的资源都在正常使用中。

原文始发于微信公众号(HW安全之路):子域名劫持漏洞高阶利用:从发现到利用完整攻略

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年1月26日16:06:48
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   子域名劫持漏洞高阶利用:从发现到利用完整攻略https://cn-sec.com/archives/3677651.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息