Leaky Bucket:针对 Yandex Cloud 公共 S3 兼容存储桶的完整攻击链

发布: (2025年12月10日 GMT+8 22:03)
6 min read
原文: Dev.to

Source: Dev.to

Cover image for Leaky Bucket: Full Attack Chain Against Public S3-Compatible Buckets in Yandex Cloud

🛑 Disclosure: A lightweight proof‑of‑concept (PoC) tool was developed by hackteam.red for internal red‑team and authorized penetration testing. The PoC will not be released publicly, but it is actively used to assess Yandex Cloud Object Storage configurations for clients who explicitly permit such testing.

概览

Yandex Cloud 提供兼容 S3 的 Object Storage 服务,允许客户通过公共端点托管静态网站,例如:

http://<bucket>.website.yandexcloud.net

虽然使用方便,但配置错误可能导致敏感文档、内部架构细节、源代码或配置文件意外公开。与 AWS S3 桶不同,Yandex Cloud 桶历史上受到的自动化扫描较少,因而成为侦察和利用的热门目标。

完整攻击链

1. 通过 Google Dorks 初始发现

基本的 Google 搜索可以揭示公开可访问的桶:

allinurl:.website.yandexcloud.net

发现的示例

  • 1cgencode.website.yandexcloud.net – “1C 开发者工具”
  • devops-pilot-competencies.website.yandexcloud.net – Yandex Cloud 培训材料
  • b3-website.website.yandexcloud.net – 废物管理 SaaS 平台
  • transrussia.ru.website.yandexcloud.net – TRANSeuropa 物流展

这些结果确认了桶的存在并提供了业务背景。

2. 使用 httpx 自动枚举

过滤出返回 HTTP 200 的发现名称:

cat buckets.txt | httpx -silent -status-code -mc 200 -o live-buckets.txt

仅保留真正公开的桶以进行后续测试。

3. 词表扩展 & 使用 ffuf 暴力枚举

创建一个结合上下文的词表,包括:

  • 俄罗斯大型公司(sberbankozon1cbitrix24
  • DevOps 相关词(prodstagingbackuptfstateconfig
  • 观察到的模式(mittkartasafelist

执行针对性暴力扫描:

ffuf -w expanded-wordlist.txt \
     -u "http://FUZZ.website.yandexcloud.net" \
     -mc 200 -t 10 -p 0.8

这通常能发现 Google 未索引的额外桶。

4. 敏感路径模糊测试

对每个确认的桶,模糊测试高风险路径,例如:

/.git/HEAD
/.env
/backup.zip
/terraform.tfstate
/config.js
/id_rsa
/aws-keys.txt
/yc-keys.txt
/robots.txt
/sitemap.xml

使用 ffuf 或自定义脚本并限速,以避免 IP 被封。返回 200 OK 表示可能的数据泄露。

示例robots.txt 可能泄露内部路径:

Disallow: /ru/exhibit/conference-zal/
Disallow: /ru/media/news/.../registraciya-posetitelej-otkryta-transrussia

这些路径揭示了隐藏功能和活动结构。

5. JS/HTML 秘密搜索

搜索公开的 JavaScript 与 HTML 文件中的秘密:

curl -s http://bucket.website.yandexcloud.net/ | \
  grep -E "(yc|aws|key|token|secret|accessId)"

虽然我们的扫描未发现活跃的秘密,但经常能看到硬编码的端点和内部服务名称,丰富了目标映射。

6. 利用场景

发现项影响
.git/HEAD通过 git-dumper 完整恢复源代码
terraform.tfstate完整基础设施状态,包括 IAM 密钥
yc-keys.txt直接访问 Yandex Cloud API
backup.zip历史快照、凭证、个人信息
来自 robots.txt 的内部路径扩大攻击面

即使未直接获取秘密,收集到的情报也可用于:

  • 制作有针对性的钓鱼诱饵
  • 绘制内部架构图
  • 规划云环境横向移动

建议

对 Yandex Cloud 用户

  • 绝不要.gitterraform.tfstate.env 或备份文件上传到公共桶。
  • 为构建产物和日志使用 单独的私有桶
  • 在启用 静态网站托管 前审查所有文件。
  • 考虑使用限制性 robots.txt,禁止所有非必要路径。

对 Yandex Cloud 平台

  • 启用对象存储桶的自动扫描,检测敏感模式(密钥、.gittfstate)。
  • 在桶启用 “静态网站” 时添加警告。
  • 在账户层面强制 “阻止公共访问”(类似 AWS)。
  • 阻止已知敏感文件(例如 .git)上传到公开可访问的桶。

DSPM(数据安全姿态管理)是强大的工具——确保它被应用于 公开可访问的桶

结论

Yandex Cloud 的对象存储功能强大且对开发者友好,但安全是共同责任。低成本的侦察与针对性模糊测试即可发现有价值的组织情报,在配置错误的环境中甚至导致系统完全被 compromise。本研究严格在授权渗透测试范围内进行。我们的内部 leaky-bucket 扫描器保持 闭源,仅在获得明确客户许可的情况下使用。

参考资料

📢 注意:如果您是 Yandex Cloud 客户并希望测试桶的暴露情况,请联系认证的渗透测试提供商 — 未经授权请勿扫描

Back to Blog

相关文章

阅读更多 »