43 - Pentesting WHOIS
Tip
学习和实践 AWS 黑客技术:
HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)
学习和实践 Azure 黑客技术:
HackTricks Training Azure Red Team Expert (AzRTE)
支持 HackTricks
- 查看 订阅计划!
- 加入 💬 Discord 群组 或 Telegram 群组 或 在 Twitter 🐦 上关注我们 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud GitHub 仓库提交 PR 来分享黑客技巧。
基本信息
WHOIS 协议是一种通过特定数据库查询各种互联网资源的注册者或持有者的标准方法。 这些资源包括域名、IP地址块、自治系统等。除此之外,该协议还可用于访问更广泛的信息。
默认端口: 43
PORT STATE SERVICE
43/tcp open whois?
从攻击角度来看,请记住 WHOIS 只是一个明文的 TCP 服务:客户端发送查询,服务器返回可读文本,且 连接关闭表示响应结束。该协议没有内置的认证、完整性或保密性。
现实情况:WHOIS 与 RDAP
对于互联网域名注册数据,WHOIS 在许多公共 gTLD 工作流中不再是权威选项。ICANN 在 2025-01-28 终止了 gTLD 注册数据的 WHOIS,使 RDAP 成为用于机器可读域名注册查询的优选协议。
然而,TCP/43 仍然值得测试,因为它仍然出现在:
- 遗留或私有 WHOIS 服务
- RIR / IP 分配 工作流
- 内部注册表和自定义资产数据库
- 第三方网页工具和旧自动化 仍然信任 WHOIS 响应
如果你的目标是 reverse whois、更广的资产扩展或递归外部 recon,查看 the External Recon Methodology page 以避免在此重复工作。
枚举
获取 whois 服务关于域名的所有信息:
whois -h <HOST> -p <PORT> "domain.tld"
printf 'domain.tld\r\n' | nc -vn <HOST> <PORT>
如果你发现面向公众的 WHOIS 服务,请对 domain 和 IP/ASN 两种查询格式都进行测试,因为许多实现会根据对象类型暴露不同的后端或解析器:
# Domain
printf 'example.com\r\n' | nc -vn <HOST> 43
# IP / CIDR / ASN examples
printf '8.8.8.8\r\n' | nc -vn <HOST> 43
printf 'AS15169\r\n' | nc -vn <HOST> 43
请注意,有时当向 WHOIS 服务请求某些信息时,被使用的数据库会出现在响应中:
.png)
Referral Chasing and Better Enumeration
大量有用的 WHOIS 枚举信息隐藏在 referrals 背后。例如,一个服务器可能只会将你指向某个 TLD 或 RIR 的下一个权威 WHOIS 服务器。因为一些自定义服务会错误地处理后续查询、不一致地掩盖字段,或 leak 额外的后端元数据,所以这值得手动测试。
有用的选项和辅助工具:
# Ask IANA first and then follow the authoritative referral (common Linux whois clients)
whois -I example.com
whois -I 8.8.8.8
# Let Nmap follow domain/IP WHOIS referrals automatically
nmap --script whois-domain <target>
nmap --script whois-ip <target>
# For IP ranges, disable the WHOIS cache if you care about smaller delegated blocks
nmap --script whois-ip --script-args whois.whodb=nocache <target>
当服务未被完全脱敏时,可用于 pivot 的有趣字段:
- Registrar / Org / abuse contact 用于 phishing 报告或组织映射
- Creation / update / expiration times 用于发现新注册的基础设施
- Nameservers 用于将由同一运营者管理的域进行聚类
- Referral server names 用于查找遗留或被遗忘的 WHOIS 基础设施
RDAP 作为结构化的继任者
即使暴露的服务是经典的 WHOIS(端口 43),也要检查相同的提供商是否同时提供 RDAP,因为 RDAP 通常更易解析且更利于自动化:
curl -s https://www.rdap.net/domain/example.com | jq
curl -s https://rdap.arin.net/registry/ip/8.8.8.8 | jq
一个实用的进攻性细节:一项 2024 年大规模比较 WHOIS 和 RDAP 的测量研究发现,它们 不总是可互换,在诸如注册商标识符、创建日期和 nameservers 等字段存在不一致。如果你的侦察流水线依赖这些值,在做出决定前请比较两个来源。
Offensive Notes
Backend Injection in Custom WHOIS Gateways
此外,WHOIS 服务总是需要使用 数据库 来存储和提取信息。因此,当根据用户提供的信息查询数据库时,可能存在 SQLInjection。例如执行:whois -h 10.10.10.155 -p 43 "a') or 1=1#",你可能能够提取所有数据库中保存的信息。
不要只局限于测试 SQLi。在内部或小众的 WHOIS 部署中,查询可能被代理到:
- SQL / NoSQL 后端
- LDAP 目录
- 围绕其他查找工具的 shell 封装
- 被注册商或资产管理门户使用的 HTTP API
因此使用针对 SQLi、LDAP injection 的 payloads 进行 fuzz,并尝试分隔符滥用、超长字符串以及损坏的 UTF-8 / 控制字符。协议本身很简单;危险通常出在 解析器或后端粘合代码。
Rogue / Stale WHOIS Servers
一个相关的 2024-2025 攻击路径是滥用 outdated WHOIS trust。如果某个 registry 或工具更改了其 WHOIS 主机名,而旧域名到期,攻击者可能会注册该旧主机名并运行一个 rogue WHOIS server。
这会让攻击者控制被以下方看到的响应体:
- 带有硬编码服务器映射的旧 WHOIS 客户端
- 抓取 WHOIS 输出并将其渲染回用户的 web 应用
- 仍使用 WHOIS 进行域名验证或所有权工作流的自动化
这很重要,因为恶意 WHOIS 响应可能成为以下攻击的入口:
- web WHOIS 前端中的 stored/reflected XSS
- 在消费该文本响应的库中出现的 parser bugs / command injection / eval bugs
- 当系统信任攻击者控制的 WHOIS 联系数据时导致的 bad automation decisions
当你发现私有或遗留的 WHOIS 服务时,务必检查返回的 refer: / Whois Server: 值、banners,或 TLD 映射是否指向 已过期或攻击者可注册的域名。
Shodan
port:43 whois
HackTricks Automatic Commands
Protocol_Name: WHOIS #Protocol Abbreviation if there is one.
Port_Number: 43 #Comma separated if there is more than one.
Protocol_Description: WHOIS #Protocol Abbreviation Spelled out
Entry_1:
Name: Notes
Description: Notes for WHOIS
Note: |
The WHOIS protocol serves as a standard method for inquiring about the registrants or holders of various Internet resources through specific databases. These resources encompass domain names, blocks of IP addresses, and autonomous systems, among others. Beyond these, the protocol finds application in accessing a broader spectrum of information.
https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-smtp/index.html
Entry_2:
Name: Banner Grab
Description: Grab WHOIS Banner
Command: whois -h {IP} -p 43 {Domain_Name} && printf '{Domain_Name}\r\n' | nc -vn {IP} 43
Entry_3:
Name: Nmap WHOIS Referrals
Description: Follow WHOIS referrals for domain and IP lookups
Command: nmap --script whois-domain,whois-ip --script-args whois.whodb=nocache {IP}
参考资料
- ICANN Update: Launching RDAP; Sunsetting WHOIS
- watchTowr Labs - We Spent $20 To Achieve RCE And Accidentally Became The Admins Of .MOBI
Tip
学习和实践 AWS 黑客技术:
HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)
学习和实践 Azure 黑客技术:
HackTricks Training Azure Red Team Expert (AzRTE)
支持 HackTricks
- 查看 订阅计划!
- 加入 💬 Discord 群组 或 Telegram 群组 或 在 Twitter 🐦 上关注我们 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud GitHub 仓库提交 PR 来分享黑客技巧。


