Claude-OSINT组织级攻击面:从法人实体LEI到全量资产足迹的归属追踪
【免费下载链接】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
对于授权的红队与漏洞赏金任务,最大的盲区往往不是某个子域名,而是企业整体攻击面:子公司、姐妹品牌、并购遗留的"暗网段"(dark netblock)——这些资产与种子域名之间没有任何 DNS 线索。Claude-OSINT 是一个将 Claude 变成"上帝模式"外部侦察操作员的开源技能库,其中的 org-attack-surface 技能专门解决组织级攻击面归属追踪问题:从法人实体(LEI 编号)出发,自顶向下推导出其拥有的全部域名、网段与 ASN,并给每个候选资产附上可审计的所有权评分。
为什么单靠子域名枚举会漏掉半个攻击面
传统侦察是自底向上的:从一个种子域名出发,向外滚出子域名、IP、ASN。这种方式天然找不到三类资产:
- 并购遗留域名:被收购公司仍在运行收购前的域名与网段,与母公司零 DNS 关联
- 暗网段(dark netblock):注册在法人实体名下、但没有任何 A 记录指向它的 IP 段(被遗忘的数据中心分配)
- 无 DNS 线索的存活主机:只在扫描索引中以证书
O=字段或 ASN 注册信息暴露的裸 IP
org-attack-surface技能的核心思路是自顶向下:以法人实体本身为锚点,按"谁拥有它"而不是"什么能从种子域名解析出来"去查询各类注册局与索引。技能文件开头就点明了这个上游问题(SKILL.md 引言):
不是"acme.com 暴露了什么",而是"Acme Corporation,这个法人实体,在所有域名、网段和子公司中拥有什么——包括那些与种子域名毫无 DNS 痕迹的部分。"
组织优先归属金字塔:五层模型
整个技能围绕一张金字塔展开(§6):
法人实体(名称 → LEI/注册号) ↓ 公司家族(子公司、M&A) ↓ 自有域名(种子 + related:) ── 自有网段/ASN(含暗网段) ↓ 存活资产(主机、服务、应用)→ 移交 offensive-osint 技能发现方向速查表如下(§6.2):
| 方向 | 种子 | 可发现 |
|---|---|---|
| 自顶向下:实体 → 子公司 | 法人名称 / LEI | 公司家族树 |
| 自顶向下:实体 → 域名 | 注册人 / 证书 O= | 关联根域名 |
| 自顶向下:实体 → 网段/ASN | 组织身份字符串 | 暗网段、注册 ASN |
| 自顶向下:实体 → 存活 IP | 组织身份字符串 | 无 DNS 的存活主机 |
| 自底向上:种子 IP → ASN | 种子解析 IP | 通告前缀、邻近设施 |
第一步:把公司名解析为法人身份(LEI 核心)
GLEIF LEI:最高精度的公司家族树
GLEIF(全球法人识别编码基金会)免费、无需 API key地发布了法人实体之间已申报的父子关系。因为关系是"申报"而非"推断",它是这个技能中精度最高的数据源:
- 法人名称 → LEI(仅对种子实体做一次名称解析)
- LEI → 直接子实体,然后带着子实体的精确 LEI继续下钻,绝不再次按名称搜索
第二条规则防的是一个隐蔽陷阱——同名嫁接(namesake grafting):如果子公司 B 与另一个国家中不相关的实体 B' 同名,按名称重新解析会静默返回 B',把 B' 的整棵子公司子树嫁接到目标家族树上,而且还顶着 GLEIF 的权威徽章。带着精确 LEI 递归,这种冲突在结构上就不可能发生(§7.1)。
递归还带三道护栏:只向下不向上(不会意外扩到整个控股集团的兄弟公司)、深度与扇出上限(默认约 200 节点总量、每父节点约 50 子节点)、命中上限时显式标记截断而非静默当作完整。
四路佐证:EDGAR、OpenCorporates、Wikidata
| 数据源 | 用途 | 关键限制 |
|---|---|---|
| SEC-EDGAR | 10-K 的 Exhibit 21 子公司名单(美股公司) | 仅适用于美股申报者;请求需带可识别 User-Agent |
| OpenCorporates | 确认候选子公司是真实注册实体 | 免费额度极低,只适合抽查 |
| Wikidata SPARQL | 公司图谱 P355/P749/P1830 关系 + P856 官网 | 模糊标签匹配,权重低于申报记录 |
种子身份锚定有明确的优先级:WHOISregistrant_org(非隐私遮蔽时)→ 种子自有 ASN 的注册人字符串 → 种子自己 TLS 证书的O=字段。实践中第三个往往最可靠——WHOIS 经常被脱敏,但公司自己的生产证书通常还带着法定名称。三者都拿不到就如实报告"无可确认法人身份",而不是从品牌名硬猜(§7.5)。
第二步:域名归属——从"看起来相关"到可审计评分
crt.sh O=:免费的证书透明度组织反查
这是域名归属的免费骨干——完全不需要付费 key。用证书主题组织名查询 CT 日志,即可拿到该组织历史上签发过的全部证书域名,过滤掉通配符、去重到可注册根域,就得到跨根域候选清单(§8.2)。
独立证据组合器:所有权评分的核心数学
每个候选域名收集到的每条证据都是一个(权重, 是否确认)信号,通过乘法独立公式合并:
score = 1 - Π(1 - w_i)为什么用乘法而不是加法?三个真正独立的弱信号应当比任何一个单独信号更强,但不应简单相加溢出 100。这个公式让弱信号叠加呈现边际递减,同时让三个 ~0.5 权重的独立信号能爬进 STRONG 区间(1 - 0.5³ = 87.5)。技能内置了完整的生产级信号权重表,例如(§8.4):
| 信号 | 权重 | 说明 |
|---|---|---|
registry_listed | 0.95(确认型) | 政府/监管注册局明确列出 |
cert_org_match | 0.85 | TLS 证书 O= 直接匹配种子组织 |
asn_holder_match | 0.75 | 解析 IP 落在 ASN 注册人匹配组织的网段 |
registry_wikidata | 0.60 | 模糊 Wikidata 匹配,刻意降权 |
shared_ns_specific | 0.35 | 共享组织专属 NS,仅作弱线索 |
评分带映射为五级:NONE / WEAK / MODERATE / STRONG / CONFIRMED。任何NOT_OWNED(陌生人锁定)信号出现时,总分直接封顶 20——一个碰巧共享泛用 NS 的外部资产永远爬不进"自有"区间。
第三步:暗网段与 ASN 归属——技能最高价值的一环
组织优先的 RIR 查询
DNS 类发现只能找到"恰好有主机名解析进去"的网段。要把注册在法人名下但零 DNS 指向的 IP 段找回来,只能按组织名查询区域互联网注册局:
- ARIN(美洲):Whois-RWS 免费 JSON 接口,先按名称通配找组织句柄,再列出其注册的网段与 ASN
- RIPE(欧洲/中东/非洲):RIPE Database REST 接口,组织对象 + 反向属性查询
两个不可妥协的精度门:注册人名称必须通过"可反查性"守卫(拒绝隐私服务/注册商字符串),且归一化 slug 必须精确等于已知组织身份别名——"Acme Logistics" 绝不能靠子串模糊匹配拖进 "Acme Corporation" 名下(§9.1)。
超大规模云范围守卫(Hyperscaler-Scope Guard)
这是最关键的防误报规则:如果种子的某个 IP 落在 AWS/GCP/Azure/Cloudflare 等云厂商/CDN 的 ASN里,绝不能把该 ASN 通告的全部前缀(可能上百个)算作租户的网段——一个 AWS 单租户客户会凭空"拥有"约 200 个 AWS 通告网段。规则很简单(§9.5):
- 自有 ASN(注册人匹配目标品牌):实体化最具体的通告前缀,标记
seed_owned - 非自有/云 CDN ASN:只保留种子 IP 实际所在的那个网段,打
shared_hosting_cdn标签,绝不标seed_owned
这不只是图表美观问题——下游主动扫描的范围授权正是依赖这个标志。守卫出错,等于把无授权范围的 CDN 网段送进端口扫描队列。
安全契约:discover_only 是结构性闸门
这个技能最重要的安全设计是:种子之外的一切发现(关联域名、暗网段、索引搜索 IP)都被铸造成discover_only=True的线索,而非目标。它们住在独立的related:命名空间里,对主动扫描流水线结构性不可见——不是靠运行时检查(可能被高分绕过),而是靠资产命名空间本身。
这意味着:即使一个related:域名评分冲到 85(STRONG),它也不会被自动扫描。分数只告诉操作员"先确认哪条线索";只有操作员的显式提升动作(promote-to-scan)才能把资产带入主动流水线(§8.6)。
为了帮操作员决定先确认哪个暗网段,技能还内置了被动的提升分诊(§10):读取第三方 IP 情报缓存,按远程访问网关厂商(+40)、CISA-KEV CVE(每个 +25)、控制面端口(每个 +25)、远程访问端口等信号给网段排序——纯被动的优先级队列,不铸造新资产、不产生任何逐主机发现。
实战:如何安装并使用
仓库克隆(installation 文档):
git clone https://gitcode.com/gh_mirrors/cl/Claude-OSINT cd Claude-OSINT ./scripts/sync-skill-content.sh mkdir -p ~/.claude/skills cp -r skills/* ~/.claude/skills/然后把org-attack-surface加入 Claude Code 会话即可,它会在相关短语(如 "org attack surface"、"subsidiary discovery"、"dark netblock")出现时自动触发。一个典型触发提示(摘自 usage 文档):
"Map the full owned external footprint of 'Acme Industries Ltd', starting from the legal entity."
技能是 keyless-first 的:GLEIF、EDGAR、OpenCorporates、Wikidata、crt.sh、ARIN、RIPE、RIPEstat、BGPView 全部免费无 key。只有反向 WHOIS(WhoisXML/SecurityTrails)和付费扫描索引的组织搜索是可选增强,核心的免费路径完全覆盖域名归属与暗网段发现(README)。
时间预算参考
| 目标复杂度 | 耗时 |
|---|---|
| 单一法人、无申报子公司 | 分钟级 |
| 区域集团、少量 GLEIF 子公司 | 1 小时内 |
| 跨国集团、深度 GLEIF 树、大量 RIR 扇出 | 约半天(受注册局限速驱动) |
常见反模式清单
技能 §11 把归因工作中最昂贵的错误整理成目录,值得对照自查:
- 同名嫁接:用名称重查而不是精确 LEI 下钻——最高风险错误,且静默发生
- 单信号断言:只凭一个共享 NS(0.35)就报告"这是他们的"——规则三,必须第二类独立信号
- 超大规模云过度归因:把 CDN 整个通告范围算成租户网段,产出虚大且无用的足迹
- RIR 组织名冲突:子串匹配而非精确 slug 匹配
- 隐私 WHOIS 反查投毒:对 "Domains By Proxy" 这类字符串做反查,产出数万无关域名
- 静默截断:命中上限却不标记,把不完整的树渲染成完整的树
结语
Claude-OSINT 的 org-attack-surface 技能把"从公司名到全量资产足迹"这件事拆解成一条有归属纪律的流水线:法人身份锚定 → GLEIF 公司家族树 → crt.sh/注册局域名归属 → 组织优先 RIR 暗网段回收 → 云范围守卫 → discover-only 线索队列。所有权重、上限与门控值都转录自经过测试的生产实现而非拍脑袋,配合 exposure-risk-quantification 与 continuous-exposure-monitoring 等六个组织级深度技能,可以支撑从资产盘点到董事会风险一页纸的完整交付。更多端到端演练可参考 examples/ 目录下的四个任务走查,架构设计细节见 docs/architecture.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),仅供参考