
Anthropic-Cybersecurity-Skills 实战OSINT 外部侦察 Agent 的 API 参考与源码级解析【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATTCK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI 20 platforms · 29 security domains · Apache 2.0项目地址: https://gitcode.com/GitHub_Trending/an/Anthropic-Cybersecurity-Skills本文以 Anthropic-Cybersecurity-Skills 仓库中的conducting-external-reconnaissance-with-osint技能外部侦察 OSINT Agent为对象完整解析其 API 参考文档、配套 SKILL 定义 与 agent.py 实现。读者将掌握该 Agent 的依赖环境、CLI 调用方式、七大核心函数的行为细节与返回结构以及 crt.sh、Google DNS-over-HTTPS、Shodan、GitHub、HIBP 等外部 API 的认证与使用约定可直接复用于授权渗透测试的被动情报收集阶段。概述被动 OSINT 攻击面测绘conducting-external-reconnaissance-with-osint是一个面向 AI Agent 的结构化网络安全技能其配套的agent.py实现了一个外部侦察 Agent在不接触目标系统的情况下利用被动 OSINT 技术测绘组织的对外攻击面。按 API 参考文档 的描述它覆盖五条信息收集线证书透明度日志certificate transparency——发现子域名DNS 记录——枚举域名基础设施Shodan——主机与服务发现邮件安全检测——SPF / DMARC 态势Web 技术指纹识别——HTTP 响应头分析GitHub 泄露检测——公开仓库中的凭据与密钥文档在 Overview 末尾明确声明仅限授权评估authorized assessments使用。技能级定义在 SKILL.md 的 frontmatter 中给出了框架映射NIST CSF 覆盖ID.RA-01资产清点、ID.RA-06漏洞态势、GV.OV-02、DE.AE-07MITRE ATTCK 覆盖T1595主动扫描、T1592收集目标主机信息、T1589收集受害者身份信息、T1590收集目标组织信息——均为 Reconnaissance侦察战术下的被动收集技术。依赖环境根据 API 参考文档 的 Dependencies 表Agent 仅有两个 Python 依赖包版本要求用途shodan1.28Shodan API 主机发现requests2.28HTTP API 调用从 agent.py 的导入语句可印证import json、import logging、import argparse、from datetime import datetime均来自标准库第三方仅requests与shodan。安装命令可写为pip install shodan1.28 requests2.28此外运行时建议按 SKILL.md 的 Prerequisites 准备书面授权、专用研究工作站必要时 VPN/Tor 匿名、以及 Shodan、GitHub、Have I Been Pwned 等 API 密钥。CLI 使用方式API 参考文档 给出的标准调用命令python agent.py --domain example.com --org Example Corp --shodan-key key \ --github-token token --output recon.json对照 agent.py 的 main()argparse共定义七个命令行参数参数必填默认值说明--domain✅无目标域名如example.com--org否无Shodan 组织名搜索用组织名称--shodan-key否无Shodan API 密钥--github-token否无GitHub 代码搜索令牌--hibp-key否无HIBP API 密钥可回退到环境变量HIBP_API_KEY--breach-account否无需要检查泄露的账号/邮箱--output否recon_report.jsonJSON 报告输出路径执行主流程main()按固定顺序运行enumerate_subdomains_crtsh→enumerate_dns_records→check_email_security→check_web_technologies这四项无条件执行shodan_org_search仅在同时提供--shodan-key与--org时运行search_github_leaks仅在提供--github-token时运行HIBP 泄露查询仅在提供--breach-account时运行。最终所有结果经generate_recon_report汇总后以缩进 2 的 JSON 写入--output指定的文件。核心函数逐一解析API 参考文档 列举了七个关键函数以下结合 agent.py 源码逐项展开。enumerate_subdomains_crtsh(domain)通过 crt.sh 的 JSON API 从证书透明度日志发现子域名源码请求https://crt.sh/?q%.{domain}outputjsontimeout60遍历每个证书条目的name_value字段可能以换行符分隔多个名称过滤条件剔除通配符条目* not in name以及不包含目标域名前缀的无关记录使用set()去重后返回排序列表。函数同时兼容文档中的另一种写法curl -s https://crt.sh/?q%25.target.comoutputjson | jq -r .[].name_value | sort -u——%25即 URL 编码的%与源码中的%.前缀等价。这是子域名枚举最便宜、零认证的数据源。enumerate_dns_records(domain)通过 Google DNS-over-HTTPS API 查询公共 DNS 记录源码依次查询A、AAAA、MX、NS、TXT、CNAME、SOA七种记录类型请求https://dns.google/resolve?name{domain}type{rtype}timeout10解析响应 JSON 中的Answer数组提取每条记录的data字段返回{记录类型: [值列表]}字典仅记录有应答的类型。返回结构与 SKILL.md 工作流中的dig target.com ANY互补DoH 免去了本地 dig 工具依赖适合 Agent 在受限沙箱中调用且 TXT 记录的返回值可进一步识别邮件服务商如vspf1 include:_spf.google.com表明 Google Workspace。shodan_org_search(api_key, org_name, max_results)按组织名称在 Shodan 中搜索归属主机源码使用官方shodan.Shodan(api_key)客户端依赖版本1.28构造查询org:{org_name}limit默认max_results50从每个匹配项提取ip_str、port、product、version、os、hostnames组装为结构化 host 字典列表。函数返回值是generate_recon_report中shodan_hosts的原始数据。它与 SKILL.md 中shodan search ssl.cert.subject.cn:target.com的查询形成两种互补视角前者按组织归属搜资产后者按 TLS 证书 CN 搜目标域名的对外服务。check_email_security(domain)检查 SPF 与 DMARC 记录以评估邮件安全态势源码对根域查询 TXT取 SPF对_dmarc.{domain}查询 TXT取 DMARC均走https://dns.google/resolve通过内容匹配判定包含vspf1记为 SPF包含vDMARC1记为 DMARC返回字典额外附带两个布尔标志spf_present与dmarc_present便于直接做态势判断。check_web_technologies(domain)从 HTTP 响应头识别 Web 服务器技术栈源码requests.get(fhttps://{domain}, timeout10, allow_redirectsTrue, verifyFalse)——跟随重定向、跳过 TLS 证书校验实验室场景捕获RequestException时在结果中记录error字段提取四个技术特征头Server、X-Powered-By、X-AspNet-Version、X-Generator附加status_code响应码与final_url重定向后的最终 URL仅保留非空特征头的键值对。该函数是 SKILL.md Step 5技术栈画像中whatweb/Wappalyzer 的轻量替代适合作为自动化流水线里的快速探针。search_github_leaks(domain, github_token)搜索 GitHub 代码中与目标相关的泄露凭据源码依次执行三个查询{domain} password、{domain} api_key、{domain} secret请求https://api.github.com/search/code请求头携带Accept: application/vnd.github.v3json若提供令牌则加Authorization: token {token}每个查询取per_page10条结果提取repository.full_name、path、html_url及对应查询词逐条追加到结果列表。需要说明GitHub 代码搜索 API 目前要求认证因此不传令牌时大概率返回 401函数在resp.status_code ! 200时静默跳过返回空列表。生产使用务必传入令牌并可参考 SKILL.md 中org:target password等组织级查询词做人工深化。generate_recon_report(...)将所有 OSINT 发现整合为结构化 JSON 报告源码报告顶层字段为target目标域名与timestampUTC ISO 时间戳数据区包含字段结构数据来源subdomains{count, list}enumerate_subdomains_crtshdns_records类型→值列表字典enumerate_dns_recordsshodan_hosts{count, hosts}shodan_org_searchemail_securitySPF/DMARC 标志与原始记录check_email_securityweb_technologies特征头 status_code final_urlcheck_web_technologiesgithub_leaks泄露条目列表search_github_leaksbreaches{count, list}HIBP 查询结果函数同时向 stdout 打印摘要行子域名数、Shodan 主机数、GitHub 泄露数、泄露事件数随后由main()以json.dump(report, f, indent2)落盘。补充函数HIBP 泄露数据查询虽然 API 参考文档 的 Key Functions 列表未列出但 agent.py 实现了search_breach_data(account, api_key)与 SKILL.md Step 4凭据与数据泄露分析中haveibeenpwned.com检查直接对应调用 HIBP v3 端点https://haveibeenpwned.com/api/v3/breachedaccount/{account}请求头必须携带hibp-api-key与user-agent: OSINT-Recon-Agentv3 强制要求 UA参数truncateResponsefalse返回完整泄露详情状态码语义在 docstring 中明确200返回泄露列表、404表示无泄露、401表示密钥缺失/无效、429限流依据Retry-After头退避未提供密钥时打印告警并返回空列表requests.RequestException被捕获记录错误。密钥解析逻辑在 main()优先使用--hibp-key否则回退os.environ.get(HIBP_API_KEY)。外部 API 清单与调用约定API 参考文档 汇总了四个外部 API源码中实际还有第五个HIBP统一整理如下API端点认证用途crt.shhttps://crt.sh/?q...outputjson无证书透明度查询Google DNShttps://dns.google/resolve无DNS 记录查询含 SPF/DMARC TXTShodanapi.shodan.io经官方 SDKAPI key主机/服务发现GitHubhttps://api.github.com/search/codeToken必需代码泄露搜索Have I Been Pwnedhttps://haveibeenpwned.com/api/v3/breachedaccount/{account}API key User-Agent账号泄露事件查询调用限制提示GitHub 代码搜索 API 与 HIBP v3 均为认证必需型接口HIBP 对 429 限流要求按Retry-After退避crt.sh 与 Google DNS 无认证但建议控制频率避免触发服务端限流。与技能工作流的配合SKILL.md 将完整外部侦察组织为五个步骤Agent 脚本的功能点与之一一对应SKILL.md 工作流步骤对应函数脚本外补充手段Step 1 域名与 DNS 枚举enumerate_subdomains_crtsh、enumerate_dns_recordsAmass、subfinder、反向 WHOIS、dig axfr域传送测试Step 2 基础设施与服务发现shodan_org_searchCensys、cloud_enum、wafw00f、Wayback MachineStep 3 邮件与人员情报check_email_security态势佐证theHarvester、Hunter.io、LinkedIn、招聘信息Step 4 凭据与数据泄露分析search_github_leaks、search_breach_dataPastebin/Gist、trufflehog、gitleaks、exiftool 元数据、Google dorkingStep 5 技术栈画像check_web_technologieswhatweb/Wappalyzer、sslyze/testssl.sh、JS 分析、移动 App 逆向换言之agent.py提供了可编程、可复现、可审计的自动化核心而 SKILL.md 负责兜住工具链宽度Amass 等 40 数据源的被动子域名枚举、域传送探测、云存储桶枚举等脚本未覆盖的扩展动作。最终输出可参照 SKILL.md 的 Output Format 章节将 JSON 发现归纳为攻击面摘要、关键发现如未认证的 Elasticsearch、泄露的 AWS 密钥、开放目录列表与整改建议三部分直接输入威胁建模与攻击规划阶段。常见陷阱提醒结合 SKILL.md 的 Pitfalls 与源码行为使用本 Agent 时需注意工具单一化agent.py的子域名数据源只有 crt.sh务必配合 Amass/subfinder 等多源工具交叉验证避免漏报云存储漏检脚本不检查 S3/Azure Blob/GCP 存储桶需用 cloud_enum 等补足被动与主动混淆check_web_technologies会发起 HTTP 请求、shodan_org_search查询第三方索引这些均不直接触碰目标系统但任何主动端口扫描、漏洞扫描都不属于该技能范畴凭据验证红线SKILL.md 强调对发现的泄露密钥不做有效性测试超出被动侦察范围只记录状态供报告授权与合规仅可用于获得书面授权的评估对象且须遵守 GDPR、CCPA 等隐私法规禁止用于跟踪、骚扰或未经授权的个人监视。延伸阅读完整的技能定义与五步工作流见 SKILL.md函数级实现与参数细节见 scripts/agent.py本技能在 MITRE ATTCK 中的定位T1595/T1592/T1589/T1590可在 mappings/mitre-attack 与 ATTACK_COVERAGE.md 中查阅技能仓库的安装与使用方式参见项目 README.md。【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATTCK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI 20 platforms · 29 security domains · Apache 2.0项目地址: https://gitcode.com/GitHub_Trending/an/Anthropic-Cybersecurity-Skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考