关于 who-owns-this-domain
结合 RDAP、WHOIS、DNS、IP 注册信息、历史记录和被动 DNS 的域名归属研究技能,帮助调查人员区分域名注册者与服务运营方,并评估记录对归属关系的支持力度。
主要功能
- 01检查域名和 IP 注册记录
- 02分析 DNS 记录与基础设施特征
- 03利用历史 WHOIS 和被动 DNS 线索
- 04区分注册者、注册商和转售商
- 05评估归属可信度并记录来源
适用场景
- 01调查注册信息被隐私遮蔽的域名
- 02通过共享基础设施关联相关域名
- 03评估可疑域名背后的运营方
- 04追踪历史 IP 和托管关系
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ useosint/ skills --skill who-owns-this-domain安装后在 Claude Code 中输入/who-owns-this-domain确认已加载。
附带文件reference/dns-record-types.mdreference/vendor-fingerprints.md
详细介绍
谁拥有这个域名
注册数据会告诉你是谁购买了这个名称;DNS 会告诉你是谁在运行这项服务。这通常是不同的主体,把两者混为一谈正是归属判断出错的原因。除特别标注外,这里的操作都是被动的——但请注意,使用 dig 查询目标自己的名称服务器会在目标的查询日志中留下记录;如果需要保持低调,请通过公共递归解析器或被动 DNS 查询。
优先使用哪个来源
| 你掌握的信息 | 使用 | 原因 |
|---|---|---|
| 一个域名,仅此而已 | RDAP,然后查询注册商 WHOIS | 结构化数据,一次查询即可获得日期、注册商和状态 |
| WHOIS 信息已被隐去 | 历史 WHOIS + 被动 DNS | 归档记录中的信息不会被追溯性地隐去 |
| 怀疑某个域名属于多个域名中的一个 | 名称服务器组合 + MX + 反向 WHOIS | 基础设施的重复使用比联系人隐私更持久 |
| 一个 IP | 在 RIR 查询 IP RDAP,然后查询 ASN | 告诉你网段持有者,而不是网站所有者 |
| 一个 ccTLD | 查询注册局自己的 WHOIS/网页服务 | ccTLD 不遵循 gTLD 政策;覆盖情况差异很大 |
| 一个全新域名 | 创建日期 + 注册商 + NS | 域名年龄加上方便批量注册的注册商,是钓鱼网站的明显信号 |
WHOIS 与 RDAP
WHOIS 是基于 TCP/43 的纯文本协议,没有模式。每个注册局输出的字段布局都不同,客户端对注册局转至注册商的查询跳转处理不一致,而且限流不会明确提示——你只会得到截断结果或被阻止,而不是可解析的错误。
RDAP 通过 HTTPS 以 JSON 格式提供相同的注册数据,并具备完善的 HTTP 语义:对象不存在时返回 404,受到限流时返回 429;域名、名称服务器、实体、IP 和 AS 编号都有各自的端点。通过引导重定向器或直接访问注册局进行查询:
curl -s https://rdap.org/domain/example.com | jq .
curl -s https://rdap.org/ip/203.0.113.10 | jq '.name, .handle, .country'
curl -s https://rdap.org/autnum/64500 | jq '.name, .entities'
请查看以下字段:
events—registration、expiration、last changed、transfer。如果transfer事件发生在注册很久之后,说明当前注册商的记录从那时才开始;更早的信息只能在历史 WHOIS 中找到。entities[].roles—registrant、technical、abuse、registrar。注册商实体会在publicIds中包含其 IANA ID。status— EPP 状态码。clientTransferProhibited很常见。clientHold表示注册商已将该域名从 DNS 中移除(因未付款或收到滥用投诉)。serverHold表示注册局已将其移除,通常是由于法律或执法行动。redemptionPeriod和pendingDelete表示域名即将到期并很快可以重新注册。nameservers和secureDNS— 运营方特征及 DNSSEC 状况。
有些服务器还会返回机器可读的列表,列出哪些字段已被隐去;这比根据 REDACTED FOR PRIVACY 字样猜测更有用。
对于 .com 和 .net,注册局提供的信息较少:只返回注册商、日期、状态和名称服务器。联系人信息(如果有)来自注册商自己的服务器。两者不一致时,请同时查询——注册局对日期和转移信息具有权威性,注册商则对联系人信息具有权威性。
注册信息隐去后实际删除了什么
根据当前 gTLD 注册数据政策,注册人姓名、街道地址、电话和电子邮件通常会被删除,并替换为转发地址或网页表单。仍保留下来且具有很强关联价值的信息包括:注册服务商及其 IANA ID、有填写时的转售商字段、创建/更新/到期/转移日期、名称服务器、DNSSEC 状态、EPP 状态代码、注册人所在州/省和国家(许多注册服务商会保留这些信息)、注册人组织(有些服务商会为法人保留此项,理由是公司名称不属于个人数据),以及注册服务商的滥用行为联系信息;这项信息从不隐去,也是举报的正确渠道。
请区分注册服务商(经 ICANN 认证的一方,例如 Tucows、PDR、Namecheap)与实际销售域名的转售商,以及两者与隐私服务的区别。隐私服务会以自身的公司名称和管辖地出现在注册人字段中。隐私服务的身份本身就是一条线索:它能告诉你域名属于哪个注册服务商生态系统,以及披露请求需要提交给谁。
DNS 探查
dig +short example.com A; dig +short example.com NS
dig example.com MX +noall +answer
dig example.com SOA +noall +answer # RNAME mailbox, serial often YYYYMMDDnn
dig example.com TXT +short # SPF and verification tokens
dig _dmarc.example.com TXT +short
dig google._domainkey.example.com TXT +short
dig example.com CAA +short
dig -x 203.0.113.10 +short
不要基于 ANY 构建工作流——如今大多数权威服务器会对此返回精简或合成响应,而不是完整的记录集。
每种记录类型泄露的信息都不相同:解读表见reference/dns-record-types.md,SPF include 主机、DKIM 选择器和 TXT 令牌到具体厂商的映射见 reference/vendor-fingerprints.md。简而言之:TXT 是组织 SaaS 资产清单的公开信息,MX 会标明邮件安全厂商,DMARC rua 会标明其 DMARC 报告厂商,CAA 会标明其采用的 CA。
IP、ASN,以及共享主机的代价
whois -h whois.cymru.com " -v 203.0.113.10" # ASN, prefix, country, AS name
whois -h whois.radb.net -- '-i origin AS64500' # prefixes routed by that AS
RIR 记录会显示网段持有者。如果持有者是托管服务提供商或云区域,你就无法了解所有权信息——共享 IP 会将一个域名与数千个无关租户关联起来,因此“IP 相同”毫无归因证明价值。若 RIR 记录显示该网段已重新分配或子分配给某个具名客户,或者该网段很小且组织名称就是目标,IP 才能成为证据。
PTR 记录由控制 IP 的一方设置,而非域名所有者。云服务会根据地址机械地生成 PTR 记录,你只能据此识别所用平台。主机托管和企业网段通常会包含客户名称;遍历已知主机所在 /24 网段的 PTR 记录,往往就能找出该组织的整个机柜。
历史 WHOIS 和被动 DNS
真正有价值的关联线索就在这里。注册信息隐去始于某个时间点,因此在此之前已采集记录的数据库仍保留着姓名、电子邮件和电话号码;被动 DNS 会保留所有观测到的响应,因此你可以找到该区域如今已不再提供的 IP 和主机名。可以问三个问题:注册人字段在隐私保护前写的是什么?还有哪些域名使用同一注册人电子邮件或姓名(反向 WHOIS)?这个名称随时间解析到过哪些 IP?DomainTools、SecurityTrails、WhoisXML、Validin、Silent Push 和 VirusTotal 的域名报告都包含这两类信息的部分内容——大多数平台会将有用的详细信息限制在付费密钥后。
区域传送和区域遍历
dig AXFR example.com @ns1.example.com 会向名称服务器请求整个区域。这是向目标控制的基础设施发起的交互式 TCP 请求,会留下日志,且不属于被动工作范围——只能在获得授权的调查中执行,并且要预期请求会被拒绝。使用 NSEC 而非 NSEC3 签名的区域同样可以通过遍历枚举所有名称,而 NSEC3 哈希也可以离线破解;这两种方式都需要直接查询权威服务器。请将两者都视为主动操作;若要保持被动,请使用 find-hidden-subdomains。
容易出错的地方
- 注册人只是占位信息。 批量注册商、转售商、隐私服务和企业注册商都会在联系信息字段中填写自己的详细信息。多个域名的注册人字符串相同,可能意味着它们属于同一所有者,也可能只是由同一转售商注册。
- 日期无法说明真实年龄。 过期后重新注册的域名会在注册局重置创建日期,因此,漫长的档案历史加上近期的创建日期,意味着该域名在删除后易主了。
- DNS 缓存与隐藏。 DNS 应答是受 TTL 限制的快照,服务提供商会根据地理位置、解析器以及你永远无法看到的分视图返回不同记录。一个解析器就只有一个观察视角。
- SPF 和 TXT 记录会过时。 SPF 中存在某条记录,只表示“曾经配置过”,不代表“现在仍在使用”;验证令牌几乎从来不会清理。
- MX 和 NS 服务由外包提供。 它们标识的是供应商。只有当特定的已分配名称服务器对或邮件租户标签在多个域名中重复出现时,它们才是所有权信号。
- 停放域名显示的是注册商 DNS 和市场平台 IP,没有可供查找的所有者基础设施。抢注者会照搬目标的 SPF 和 MX 记录来伪装,因此记录相同并不代表存在关联。
置信度评级
- 已确认——注册局或 RIR 直接说明的信息,且不是联系信息字段:创建日期、注册商、EPP 状态、名称服务器、网段持有人。或者:未隐藏的注册人信息得到第二个独立来源(企业备案、历史快照、归档页面)的佐证。
- 较可能——多个域名之间存在独特的共同指纹:相同的已分配名称服务器对、相同的邮件租户标签、相同的 DKIM 密钥、相同的 CAA
accounturi、相同的罕见 TXT 令牌。很可能是同一运营方,也很可能是同一所有者。 - 未经确认——共享主机上的共享 IP、共享注册商、共享公共 DNS 服务提供商,或可能属于转售商的注册人字符串。也包括任何来自历史数据库、但你尚未查看原始记录的信息。
务必记录查询时间戳以及应答的服务器。没有检索时间的 WHOIS 记录不能作为证据。
示例分析
目标:northwind-logistics.example,由欺诈团队转介。
RDAP:创建于 11 个月前,注册商为 Namecheap,注册人信息已隐藏,但国家/地区为 PA,状态为 clientTransferProhibited,名称服务器为一对 Cloudflare 服务器(dana、rex)。域名较新、注册成本低、使用代理,源站被隐藏。
DNS:完全没有 MX 记录,这直接推翻了“他们用这个域名开具发票”的推测。TXT 中有一个 google-site-verification 令牌,以及一条唯一包含事务性邮件供应商的 SPF 记录。DMARC 为 p=none,且没有 rua,因此没有可供进一步追查的报告供应商。邮件方面没有线索。
历史 WHOIS 是突破口:注册两个月后的一个快照记录了一个 Gmail 地址和一个姓名,当时尚未使用隐私服务。对该地址进行反向 WHOIS 查询,发现另外六个域名,其中四个共享同一对 dana/rex 名称服务器——Cloudflare 会为每个账户分配这对名称服务器,因此这是同一运营方,而非巧合。
评级:注册人身份为较可能(只有一个快照,且得到名称服务器集群佐证,但尚未得到备案佐证)。七个域名组成的集群可确认由同一运营方管理。
进一步追查
| 新线索 | 前往 |
|---|---|
| 子域名、共享证书上的同级域名 | find-hidden-subdomains |
| IP、网段、ASN | find-exposed-servers |
| 注册人邮箱、邮件供应商、转发地址 | what-an-email-reveals |
| 注册人组织、隐私服务所属司法辖区 | who-really-owns-it、x-ray-a-company |
| 通过隐藏前快照发现的注册人电话 | whose-number-is-this |
| 恢复的 IP 和主机名上的历史内容 | read-deleted-pages |
| 已发现主机名上的已编入索引的文件 | google-like-a-spy |
| 需要梳理的域名、IP 和注册人集群 | graph-the-network |
法律与服务条款说明
批量访问 WHOIS 受合同限制:注册局和注册商禁止将其用于营销或构建可再分发的数据库,并通过速率限制和封禁来执行这些规定。RDAP 支持差异化访问,经过审核且已通过身份验证的请求方能看到比匿名请求方更多的信息——这种审核机制的存在,正是为了防止个人数据被匿名批量收集。从历史数据库中提取的预脱敏注册人数据仍属于 GDPR 下的个人数据:你需要有合法依据,并须遵守 ../../ETHICS.md 中的数据最小化规则。未经书面授权进行 AXFR 可能构成未经授权的访问。