ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Claude-OSINT 云暴露面侦察指南:完整解读AWS账户ID离线解码、桶所有权门控与依赖混淆确认

Claude-OSINT 云暴露面侦察指南:完整解读AWS账户ID离线解码、桶所有权门控与依赖混淆确认 Claude-OSINT 云暴露面侦察指南完整解读AWS账户ID离线解码、桶所有权门控与依赖混淆确认【免费下载链接】Claude-OSINT8 Claude skills · 100 recon capabilities · 80 secret-regex patterns · 80 dorks · 9 read-only credential validators · 27 attack-path templates · ~10,000 lines of structured tradecraft. Drop-in SKILL.md files that turn Claude into a god-mode external recon operator for authorized red-team and bug-bounty engagements.项目地址: https://gitcode.com/gh_mirrors/cl/Claude-OSINTClaude-OSINT 是一个将 Claude 变成授权红队与漏洞赏金外部侦察操作员external recon operator的技能库内置 8 个 Claude skills 与 100 项侦察能力。其中的cloud-saas-exposure技能专注于云暴露面侦察提供三套可直接落地的核心技巧AWS账户ID离线解码、桶所有权门控ownership-gated severity与依赖混淆确认全程坚持只发现、不利用的被动侦察纪律。一、技能定位不是又一个探测词表而是推理层 cloud-saas-exposure与核心技能offensive-osint是互补关系后者已经携带了桶名排列组合原始词表§16.8、云原生 URL 模式表§16.17–§16.19和包注册表搜索§44等弹药而本技能是在这些弹药之上构建推理层——回答这个命中到底算不算客户自己的风险这类判断问题。它包含四个子系统子系统解决什么问题存储桶发现生成候选桶名并判定可公开列举是否为真实风险AWS账户ID离线解码从已泄露的 Access Key 字符串中还原 12 位账户号零网络请求依赖混淆确认判定内部依赖名是否可被攻击者抢注npm / PyPI云原生 / K8s / CI 指纹把 Lambda URL、kubelet 端口等当作组织归属信号技能定义与完整方法论见 skills/cloud-saas-exposure/SKILL.md概览见 skills/cloud-saas-exposure/README.md。它会在你提到S3 bucket enum、AWS account ID、dependency confusion、K8s exposure等约 55 个触发短语时自动加载。二、桶发现与所有权门控为什么找到公开桶≠ 严重漏洞 这是本技能最核心的纪律。作者披露在加入该门控之前无约束的桶扫描曾产生过171 条误报发现——因为像static-delivery、logs-archive这类通用名字在全网匹配着数千家公司的真实桶。双类候选生成从 9.5 万个候选到几百个A 类可信品牌令牌apex 域名根、域名连字符变体等做完整前缀 × 后缀展开6 前缀 × 15 后缀每令牌最多 90 个候选。B 类子域名词干仅做受限的目标绑定排列如{apex}-{stem}禁止独立展开——这是修复大型目标上约 9.5 万候选候选风暴的关键。观测名挖掘从目标自身 CNAME、证书 SAN、Wayback 归档 URL 中挖出的桶名解析到*.s3.amazonaws.com/*.storage.googleapis.com/*.blob.core.windows.net天然可信直接探测。存在 vs 可列举一次 GET 同时判定两件事每个候选桶对每个云厂商只发一次 GET从响应体直接分类返回ListBucketResult标记 →可公开列举403 → 存在但私有NoSuchBucket404→ 不存在。S3 的 301/307 区域跳转跟随后再定类。所有权门控模型两个独立维度决定结果可达性所有权未验证所有权已验证可公开列举不产生任何发现仅记为资产PUBLIC_BUCKETCRITICALCONFIRMED可公开读但不可列举不产生发现PUBLIC_BUCKETMEDIUMCONFIRMED存在但拒绝访问403/400不产生发现INFO_DISCLOSUREINFOFIRM所有权验证有三条路径名字包含可信品牌令牌name-tied、名字来自目标自身的 CNAME/证书/归档observed、或可列举的桶中至少一个对象键本身带有目标品牌branded object key例如acme-employee-payroll.csv——这一信号能把原本通用的桶名提升为 CRITICAL。 关键设计未验证的命中是硬性归零而不是软性降级为 LOW/INFO——它只进入资产图供后续关联永远不进入发现流。附赠线索——悬空 CNAME 桶接管候选桶返回 404但目标的某个子域名 CNAME 仍指向它这就是可声明的接管点TAKEOVERHIGHCONFIRMED。只检测、不注册因为活着的 CNAME 本身就是所有权证据。三、AWS账户ID离线解码藏在 20 位密钥里的 Base32 谜题 每把 AWS Access Key ID 的字符串里都确定性地编码着所属的 12 位账户号——无需密钥秘密、无需网络调用、无需活的 AWS 凭据。哪怕这把AKIA…/ASIA…/AROA…密钥早已失效或轮换它依然泄露了组织的 AWS 账户号。这是真正意义上的离线 OSINT。解码原理五步字符串转大写取前 20 位前 4 位必须是合法前缀AKIA IAM 用户长期密钥、ASIA STS 临时凭据、AROA IAM 角色等 10 种后 16 位须匹配[A-Z2-7]{16}对后 16 位做 Base32 解码得到 10 个原始字节取前 6 字节按大端解释为整数zaccount (z 0x7FFFFFFFFF80) 7零填充到 12 位结果超过999999999999则判定输入不是密钥。技能的规范测试向量任何重新实现都应先对照它验证ASIAY34FZKBOKMUTVV7A - 609629065308两个防误报细节示例账户号筛查解码结果必须与 14 个 AWS 文档官方示例账户号123456789012为首比对。漏掉这一步一页 Terraform 教程就能铸造出一个假的客户自有 AWS 账户发现。owned vs referenced密钥/ARN 出现在范围内主机上 →MEDIUM/FIRM仅出现在第三方主机上只是引用该账户→INFO/FIRM且永不视为本组织的升级目标。明确的边界账户号一旦公开就值得审视所有引用该号码的跨账户信任策略——这是发现的价值所在。但用解码出的账户号去调用 AWS API如sts:AssumeRole反向枚举 IAM 角色需要在目标账户侧留下 CloudTrail 日志属于主动动作本技能只描述其攻击路径价值绝不执行。严重性上限也刻意定为 MEDIUM因为账户号公开本身只是中等风险。四、依赖混淆确认内部信号 公共注册表 404缺一不可 ⚠️依赖混淆dependency confusion的攻击面是目标构建系统引用了一个只在内部注册表存在的依赖名攻击者只要把这个名字发布到 npm/PyPI 公共注册表下一次解析器回退到公共索引时恶意包就会被拉进构建流水线。内部信号分类器纯文本逻辑零 I/O从目标自己的语料package.json、package-lock.json、.npmrc、requirements.txt、pyproject.toml、pip.conf、打包 JS中挖依赖名仅当携带内部信号才成为候选信号强度npm scope 在.npmrc中绑定到私有注册表 /.npmrc设私有默认 registry强PyPI 语料中配置了私有 index--index-url/Poetry source强包名/ scope 匹配组织命名空间令牌≥4 字符、非corp/solutions等通用公司词中两段式确认契约任一半边单独都不构成发现内部信号上文——筛掉普通公共依赖与拼写错误公共注册表存在性检查返回 404——只读 GET 打在registry.npmjs.org/pypi.org零流量到目标这也是它被明确列为范围内动作的原因。遇到任何模糊结果200 已发布、403、5xx、超时一律失败关闭fail closed——不确定性不是可注册性的证据。npm scope 可注册性的陷阱对带 scope 的名字scope/pkg包 404 并不是关键事实——整个 scope 必须无主。正确做法是检查www.npmjs.com/org/{scope}与www.npmjs.com/~{scope}两个页面两者都 404才可注册。刻意不用 npm 搜索 API它会对私有持有但无公共包的 scope 返回total:0被误读为无主可抢注。信号强度严重性置信度强私有注册表绑定HIGHFIRM中仅命名空间匹配MEDIUMTENTATIVE永远是静态结论本技能上限是该名字有内部信号且当前无主。注册名字、发布占位包是客户的修复动作不是侦察步骤——无论授权范围多宽。五、顺带的能力云原生与 K8s 控制面被动指纹 现代基础设施本身就是组织归属信号。Lambda Function URL*.lambda-url.region.on.aws、Cloud Run*.run.app、App Service*.azurewebsites.net等模式匹配对已经解析出的主机名做被动判定CNAME/证书 SAN/子域名 FQDN 指向该模式 → 记为自有MEDIUM/FIRM裸模式匹配 → 未验证LOW/TENTATIVE。K8s/容器控制面端口此前扫描已发现的同样只做被动标记2375/2376Docker API、2379etcd、6443K8s API、10250kubelet开放即标 HIGH/FIRM——端口开放是直接观测到的其后的认证姿态不是所以确认动作被明确隔离。六、范围纪律这个技能明确不做的事 不抓取任何桶内对象的内容只读列举响应中的对象键名不声明所有权未验证的桶/端点/账户为 CRITICAL不注册任何被依赖混淆检查判定为无主的包名不用解码出的账户号调用 AWS API 做主动枚举不主动探测/认证已指纹的 K8s API、etcd、kubelet 端点。完整授权姿态见 SECURITY.md。七、快速上手安装与触发 git clone https://gitcode.com/gh_mirrors/cl/Claude-OSINT cd Claude-OSINT mkdir -p ~/.claude/skills cp -r skills/* ~/.claude/skills/安装后在 Claude Code 会话中用自然语言提问即可自动触发。试试技能自带的自测提示例如Decode the AWS account ID fromASIAY34FZKBOKMUTVV7A期望答案609629065308或我们按排列组合猜到一个可列举的 S3 桶marketplace-media无法与客户关联算 CRITICAL 吗期望答案不算无所有权不产生发现。八、延伸阅读 技能完整方法论13 个章节含配方脚本skills/cloud-saas-exposure/SKILL.md项目架构与设计理念docs/architecture.md触发短语与提示模板参考docs/usage.md端到端实战示例漏洞赏金工作流examples/02-bug-bounty-workflow.md能力覆盖率诚实评估docs/coverage.md【免费下载链接】Claude-OSINT8 Claude skills · 100 recon capabilities · 80 secret-regex patterns · 80 dorks · 9 read-only credential validators · 27 attack-path templates · ~10,000 lines of structured tradecraft. Drop-in SKILL.md files that turn Claude into a god-mode external recon operator for authorized red-team and bug-bounty engagements.项目地址: https://gitcode.com/gh_mirrors/cl/Claude-OSINT创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表