Claude-OSINT源码走读:secret_scan.py如何用纯标准库构建80模式密钥扫描器
Claude-OSINT源码走读secret_scan.py如何用纯标准库构建80模式密钥扫描器【免费下载链接】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 技能库提供 8 个技能、100 侦察能力与 80 个密钥正则模式。本文带你逐段走读其中的 secret_scan.py——一个只用 Python 纯标准库json/os/re/sys写成的 80 模式密钥扫描器它能从文件、目录或管道文本中识别 AWS、GitHub、Stripe 等云与 SaaS 平台的密钥、令牌和私钥并输出结构化的逐行 JSON 结果。一、它解决什么问题 在授权渗透与赏金挖掘中泄露的密钥是最常见的低垂果实.env、日志、Postman 工作区、JS 打包文件里都可能躺着 AWS Access Key 或 GitHub PAT。secret_scan.py是 offensive-osint 技能 的配套脚本它与技能文档 §17 密钥模式目录 一一对应80 条正则模式、4 级严重度、20 个类别覆盖 AWS、GCP、GitHub、Stripe、Slack、OpenAI/Anthropic 等 AI API、npm/PyPI/Docker Hub 包仓库、Okta/Vault 等身份与密钥管理设施。最大的工程特点写在文件头注释里Stdlib-only仅标准库。不装任何第三方包任何有 Python 3 的机器上开箱即用——这在需要临时在目标服务器上跑工具的场景里非常实用。二、全景图约 260 行代码的四段结构 ⚙️结构位置职责模式清单PATTERNSL28–L19780 条四元组(名称, 严重度, 类别, 正则)编译层COMPILEDL199启动时一次性re.compile全部正则扫描层scan_text / scan_path逐行匹配 目录递归遍历入口mainL238–L257参数解析文件/目录走scan_path否则读 stdin整体数据流非常清晰输入文本/文件/目录→ 逐行 × 逐模式匹配 → 生成器 yield 命中 →json.dumps逐行打印。三、核心设计①模式顺序与上下文锚定 模式清单顶部有一句注释Order matters: most-specific patterns first so generic catches dont pre-empt typed ones.最具体的模式放前面避免通用模式抢先命中。更精妙的是上下文锚定手法。看 Cloudflare 模式L90–L93的注释裸的 40 位 token 过于通用任何 base64/hex 片段都会误报所以正则被锚定到cloudflare或X-Auth-Key上下文——这一行同时出现提供商名称 键形值才算命中。PagerDuty、Asana、Fastly、Okta 等厂商 token 没有固定格式时全部采用同一纪律(?i)pagerduty(.{0,20})?(api|token|key)...这类写法。每个模式还携带 4 级严重度常量critical/high/medium/lowL21–L24让下游可以直接按等级分诊。四、核心设计②生成器 JSONL 流式输出 scan_text 是一个生成器yield不是一次性返回大列表内存恒定逐行读取、逐条吐出扫描几 GB 的日志也不会撑爆内存即产即消费main拿到一条命中立刻print(json.dumps(hit))输出是标准JSONL一行一个 JSON 对象{pattern: AWS_ACCESS_KEY, severity: critical, category: aws, match: AKIA..., source: file1.txt, line: 42}JSONL 是输出即接口的典范可以直接jq过滤、grep -v降噪、追加进日志文件天然适合嵌进 CI/CD 流水线。另外match字段被截断到 80 字符L211避免一条巨型 base64 把报告撑爆。五、核心设计③目录递归扫描的降噪策略 scan_path 用os.walk递归内置了三层降噪 容错跳过噪声目录.git、node_modules、__pycache__、venv、dist、build、.cache直接跳过——这些目录里的密钥通常是依赖库的示例代码跳过 10MB 的大文件避免二进制资产拖慢扫描宽容读文件open(path, r, errorsreplace)让二进制文件不会抛异常中断扫描OSError一律静默返回。目录命中后通过yield from scan_path(p)递归展开整个函数仍是生成器与上层风格一致。六、跑起来两种用法 ✅无参数时读 stdin有参数时逐个扫描文件或目录用法见文件头 docstringL5–L7echo AKIAIOSFODNN7EXAMPLE | python3 skills/offensive-osint/scripts/secret_scan.py python3 skills/offensive-osint/scripts/secret_scan.py config.txt src/ logs/仓库自带一个最小测试样本 js-secrets.txt一行含示例 AWS 前缀的 AKIA 密钥拿来验证安装是否成功再合适不过。退出码也定义了契约0表示扫描完成无论有没有命中2表示参数非法——方便脚本化判断。七、80 模式覆盖了哪些生态 按 SKILL.md §17 的目录口径80 条模式分为 29 条基础 19 条现代 AI API 32 条提供商扩展v2.2。代表性分布类别代表模式典型严重度云凭证aws / gcpAWS Access Key、GCP Service Account JSONcritical代码托管github / gitlabClassic PATghp_、Fine-grained PAT、GitLabglpat-critical / highAI APIai_apiAnthropicsk-ant-api03-、OpenAI 项目密钥、HuggingFacecritical私钥private_keyRSA / EC / OpenSSH / 通用 PEM 头criticalSaaSstripe / slack / saas_apiStripe Live Key、Slack Token、Atlassiancritical ~ medium包仓库package_registrynpm、PyPI、Docker Hub、RubyGemshigh身份/密钥管理identity / secrets_mgmtOkta SSWS、HashiCorp Vaulthvs.、Dopplercritical / high通用兜底generic / jwt / bearer通用 API Key 赋值、JWT、Bearer 头medium ~ low需要提醒的是通用模式JWT、Bearer、Generic API Key在测试数据中也会命中文档明确要求结合上下文判断——README 示例块里的 JWT ≠ 生产.env里的 JWT。八、新手可以偷师的 4 个工程习惯 零依赖优先能用标准库解决就不引入依赖分发与免安装收益巨大正则编译一次模式清单与编译层分离80 条正则只在导入时编译一次生成器贯穿始终从scan_text到scan_path全链路yield内存占用与数据量解耦输出即接口稳定的 JSONL 字段 明确的退出码让脚本天然可被其他工具编排。延伸阅读 技能本体含 80 模式完整目录与误报说明skills/offensive-osint/SKILL.md使用文档docs/usage.md 安装指南docs/installation.md架构与覆盖度说明docs/architecture.md、docs/coverage.md配套示例端到端实战examples/04-secret-hunting.md56 条自评估提示词tests/smoke-test-prompts.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),仅供参考
上一篇/下一篇内容由系统自动关联
返回资讯列表 →