编码与开发

云SaaS暴露面发现

组织级云和供应链攻击面发现:通过观察到的名称挖掘(CNAME/cert-SAN/Wayback)和有限的两类排列(对受信任令牌的6个前缀×15个后缀,对子域名词干的有限目标扩展)发现S3/GCS/Azure Blob存储桶,通过HEAD/GET确认存在性与公开列表,将对象键分类为9个价值层级(数据库转储、凭据、IaC状态、kubeconfig、VCS目录、配置、归档、PII、日志),检测悬空CNAME存储桶接管,以及所有权限制的严重性模型,防止无法归属的公开存储桶被误判为严重;完全离线的AWS账户ID恢复,从泄露的AKIA/ASIA/AROA访问密钥(base32解码,可运行的stdlib Python,规范测试向量,AWS文档示例ID筛选);npm/PyPI的依赖混淆确认(内部信号分类器——私有注册表绑定与组织命名空间匹配——配合只读公共注册表404检查,以及公共搜索API遗漏的npm范围可声明性细节);以及被动的云原生/容器/Kubernetes/CI控制平面指纹识别(Lambda URL、API Gateway、Cloud Run、App Service、kubelet/etcd/K...)

查看 GitHub 仓库 ↗ ⭐ 2,250 Stars

📌 Skill基础信息

Skill名称:cloud-saas-exposure

简称:云存储与SaaS暴露面探测

来源:社区第三方 (elementalsouls)

运行宿主:Claude-OSINT Agent

核心定位:面向企业级云安全和供应链攻击面的被动发现工具,专注于云存储桶枚举、AWS账户ID离线恢复、依赖混淆验证和云原生基础设施指纹识别,适用于授权的安全评估和外部侦察。

🧩 内部核心组成

子Agent集合

  • 存储桶发现Agent:负责S3/GCS/Azure Blob存储桶的候选生成和验证
  • AWS账户恢复Agent:处理AKIA/ASIA/AROA密钥的离线解码
  • 依赖混淆验证Agent:执行npm/PyPI包的供应链风险确认
  • 云原生指纹Agent:识别云原生/K8s/CI控制平面暴露面

核心功能模块

功能模块主要能力
存储桶枚举基于可信令牌和子域词干的智能候选生成
存在性验证通过HTTP GET验证桶存在性和可列出状态
所有权验证基于CNAME/SAN/Wayback的归属确认机制
AWS账户恢复从访问密钥离线解码AWS账户ID
依赖混淆检测内部包名与公共注册表的状态比对
指纹识别云原生/K8s/CI控制平面的被动识别

目录结构

  • /permutation/ - 存储桶名称生成规则
  • /validation/ - 存在性和所有权验证逻辑
  • /decoding/ - AWS账户ID离线解码算法
  • /fingerprinting/ - 基础设施指纹模式库

🛠 安装与启用方式

安装命令

skills install --user elementalsouls/Claude-OSINT

前置依赖

  • Claude-OSINT Agent运行环境
  • Python标准库(无需额外依赖)

API/工具要求

  • 无外部API密钥要求
  • 支持HTTP/HTTPS网络请求

启动方式

通过Claude-OSINT Agent的skill调用机制激活,使用预定义的触发词启动相应功能模块。

📋 标准工作流

  1. 输入解析:用户输入目标域名或特定指令
  2. 候选生成

- 基于可信令牌的完整前缀×后缀扩展(6前缀×15后缀)

- 基于子域词干的有界目标绑定排列

- 从CNAME/SAN/Wayback中挖掘观察到的名称

  1. 存在性验证

- 对每个候选桶执行HTTP GET请求

- 区分存在但私有(403)与可公开列出(200)状态

  1. 所有权确认

- 应用基于归属信号的严重性门控模型

- 避免将无法归属的公共桶误报为关键风险

  1. 证据收集

- 记录URL、时间戳、响应哈希值

- 采样对象键名但不获取对象内容

  1. 输出生成:生成标准化格式的安全发现报告

⚠️ 关键限制、缺陷、注意事项

平台限制

  • 仅支持AWS S3、Google Cloud Storage、Azure Blob存储
  • 不支持其他云厂商的对象存储服务

Token消耗

  • 每个存储桶候选需要1次HTTP请求
  • 大规模目标可能产生大量网络请求

适用项目

  • 授权的企业安全评估
  • 外部侦察和攻击面映射
  • 供应链安全审计

不适用场景

  • 未经授权的安全测试
  • 生产环境实时监控
  • 需要主动利用验证的场景

已知坑点

  • 早期版本存在171个误报的存储桶洪水问题
  • 无法归属的公共桶不应标记为关键严重性
  • 依赖混淆检测结果具有时间敏感性

生产环境适用性

  • 仅适用于评估环境
  • 不建议用于生产环境监控
  • 需要严格的授权控制

✅ 适用场景 & ❌ 不适合场景

✅ 适用场景

  • 企业安全团队进行授权的云存储暴露面评估
  • 从泄露的AWS访问密钥恢复账户ID(离线操作)
  • 验证内部包名是否存在依赖混淆风险
  • 为外部侦察任务指纹识别云原生基础设施

❌ 不适合场景

  • 未经授权的渗透测试或黑盒评估
  • 需要主动利用或凭证提交的操作
  • 生产环境的实时安全监控
  • 简单的存储桶名称生成(应使用offensive-osint原始词表)
  • 需要获取对象内容的深度分析

如何安装

skills install --user elementalsouls/Claude-OSINT

通用安装教程:在哪里输入上面的命令

上面的命令本质是在「终端 / 命令行」中调用技能管理器,把该 Skill 下载并注册到你的 AI 工具。各主流工具打开终端的位置不同,按下面操作即可:

  1. 打开工具自带的终端面板,或系统终端(macOS「终端」、Windows「PowerShell」、Linux「Terminal」)。
  2. 把上面的安装命令复制进去,回车运行,等待下载与注册完成。
  3. 重启或重新加载 AI 工具,让新安装的 Skill 被识别。
  4. 新建对话并触发:直接描述用途,或通过该工具的技能 / 斜杠菜单选中此 Skill。
Claude 桌面版(macOS / Windows)

桌面版没有内置命令行,Skill 需通过 Claude Code CLI 安装。打开系统终端,先执行 npm install -g @anthropic-ai/claude-code,再运行上面的安装命令;完成后完全退出并重新打开 Claude。

Claude Code(终端 CLI)

直接在项目目录的终端里运行上面的命令即可。也可先输入 claude 启动交互界面,再在对话中引用该 Skill(/ 斜杠菜单或直接描述用途)。

VS Code(含 GitHub Copilot)

打开终端面板:菜单「终端 → 新建终端」,或快捷键 Ctrl+`(macOS 为 ⌃+`)。在终端里运行上面的命令;装完后执行「重新加载窗口」(Ctrl+Shift+P → Reload Window),让 Copilot 等扩展识别新技能。

Cursor

底部「终端」面板(Ctrl+`)即是内置终端。粘贴运行上面的命令,完成后在命令面板执行「Reload Window」刷新,再开始对话。

Windsurf

底部「终端」面板运行命令;也可直接使用其内置 Agent 终端,在对话侧执行安装。

其他工具(ChatGPT、本地脚本等)

不支持本地终端的产品,可先在本机终端完成安装,再在对话中描述该 Skill 的能力让其调用;不同工具的命令格式请以其官方文档为准。

风险提示

⚠️ 中风险:需留意隐私

本 Skill 涉及读取隐私 / 敏感信息(如密钥、环境变量、凭据)。安装前请确认其用途是否必要。

检测到隐私/敏感信息读取(预设模式 #1)
检测到隐私/敏感信息读取(预设模式 #3)
检测到隐私/敏感信息读取(预设模式 #5)

命中检测项

  • privacy_collect

相似 Skill 推荐

ECC 智能体系统
affaan-m/ECC
低风险

这是一个智能体性能优化系统,为Claude Code、Codex、Opencode、Cursor等提供技能、直觉、记忆、安全性和以研究为先的开发能力。

cc-switch 全能助手
farion1231/cc-switch
低风险

一款跨平台的桌面全能助手,适用于 Claude Code、Codex、OpenCode、OpenClaw、Grok Build 和 Hermes Agent。唯一官方网站:ccswitch.io

Ruflo
ruvnet/ruflo
低风险

Ruflo是一个多智能体编排平台,专为AI编码代理(如Claude Code、Cursor、Codex、Copilot、Gemini、Amp等12个以上)设计。当用户需要以下操作时使用此技能:(1)在项目中安装/初始化R

营销技能
coreyhaines31/marketingskills
低风险

为Claude Code和AI代理提供的营销技能,涵盖转化率优化(CRO)、文案撰写、搜索引擎优化(SEO)、数据分析和增长工程。