# Whois

Whois 可以查询域名是否被注册,以及注册域名的详细信息的数据库,其中可能会存在一些有用的信息,例如域名所有人、域名注册商、邮箱等。

# 搜索引擎搜索

搜索引擎通常会记录域名信息,可以通过 site: domain 的语法来查询。

# 第三方查询

网络中有相当多的第三方应用提供了子域的查询功能,下面有一些例子,更多的网站可以在 8.1 工具列表 中查找。

  • DNSDumpster
  • Virustotal
  • CrtSearch
  • threatminer
  • Censys

# ASN 信息关联

在网络中一个自治系统 (Autonomous System, AS) 是一个有权自主地决定在本系统中应采用何种路由协议的小型单位。这个网络单位可以是一个简单的网络也可以是一个由一个或多个普通的网络管理员来控制的网络群体,它是一个单独的可管理的网络单元 (例如一所大学,一个企业或者一个公司个体) 。

一个自治系统有时也被称为是一个路由选择域 (routing domain) 。一个自治系统将会分配一个全局的唯一的 16 位号码,这个号码被称为自治系统号 (ASN) 。因此可以通过 ASN 号来查找可能相关的 IP,例如:

whois -h whois.radb.net -- '-i origin AS111111' | grep -Eo "([0-9.]+){4}/[0-9]+" | uniq
nmap --script targets-asn --script-args targets-asn.asn=15169

# 域名相关性

同一个企业 / 个人注册的多个域名通常具有一定的相关性,例如使用了同一个邮箱来注册、使用了同一个备案、同一个负责人来注册等,可以使用这种方式来查找关联的域名。一种操作步骤如下:

  • 查询域名注册邮箱
  • 通过域名查询备案号
  • 通过备案号查询域名
  • 反查注册邮箱
  • 反查注册人
  • 通过注册人查询到的域名在查询邮箱
  • 通过上一步邮箱去查询域名
  • 查询以上获取出的域名的子域名

# 网站信息利用

网站中有相当多的信息,网站本身、各项安全策略、设置等都可能暴露出一些信息。

网站本身的交互通常不囿于单个域名,会和其他子域交互。对于这种情况,可以通过爬取网站,收集站点中的其他子域信息。这些信息通常出现在 JavaScript 文件、资源文件链接等位置。

网站的安全策略如跨域策略、CSP 规则等通常也包含相关域名的信息。有时候多个域名为了方便会使用同一个 SSL/TLS 证书,因此有时可通过证书来获取相关域名信息。

# HTTPS 证书

# 证书透明度

为了保证 HTTPS 证书不会被误发或伪造,CA 会将证书记录到可公开验证、不可篡改且只能附加内容的日志中,任何感兴趣的相关方都可以查看由授权中心签发的所有证书。因此可以通过查询已授权证书的方式来获得相关域名。

# SAN

主题备用名称 (Subject Alternate Name, SAN),简单来说,在需要多个域名,并将其用于各项服务时,多使用 SAN 证书。SAN 允许在安全证书中使用 subjectAltName 字段将多种值与证书关联,这些值被称为主题备用名称。

# 域传送漏洞

DNS 域传送 (zone transfer) 指的是冗余备份服务器使用来自主服务器的数据刷新自己的域 (zone) 数据库。这是为了防止主服务器因意外不可用时影响到整个域名的解析。

一般来说,域传送操作应该只允许可信的备用 DNS 服务器发起,但是如果错误配置了授权,那么任意用户都可以获得整个 DNS 服务器的域名信息。这种错误授权被称作是 DNS 域传送漏洞。

# Passive DNS

Passive DNS 被动的从递归域名服务器记录来自不同域名服务器的响应,形成数据库。利用 Passive DNS 数据库可以知道域名曾绑定过哪些 IP,IP 曾关联到哪些域名,域名最早 / 最近出现的时间,为测试提供较大的帮助。Virustotal、passivetotal、CIRCL 等网站都提供了 Passive DNS 数据库的查询。

# 泛解析

泛解析是把 *.example.com 的所有 A 记录都解析到某个 IP 地址上,在子域名枚举时需要处理这种情况以防生成大量无效的记录。

# 重要记录

# CNAME

CNAME 即 Canonical name,又称 alias,将域名指向另一个域名。其中可能包含其他关联业务的信息。很多网站使用的 CDN 加速功能利用了该记录。

# MX 记录

MX 记录即 Mail Exchanger,记录了发送电子邮件时域名对应的服务器地址。可以用来寻找 SMTP 服务器信息。

# NS 记录

NS (Name Server) 记录是域名服务器的记录,用来指定域名由哪个 DNS 服务器来进行解析。

# SPF 记录

SPF (Sender Policy Framework) 是为了防止垃圾邮件而提出来的一种 DNS 记录类型,是一种 TXT 类型的记录,用于登记某个域名拥有的用来外发邮件的所有 IP 地址。通过 SPF 记录可以获取相关的 IP 信息,常用命令为 dig example.com txt

# CDN

# CDN 验证

可通过多地 ping 的方式确定目标是否使用了 CDN,常用的网站有 http://ping.chinaz.com/ https://asm.ca.com/en/ping.php 等。

# 域名查找

使用了 CDN 的域名的父域或者子域名不一定使用了 CDN,可以通过这种方式去查找对应的 IP。

# 历史记录查找

CDN 可能是在网站上线一段时间后才上线的,可以通过查找域名解析记录的方式去查找真实 IP。

# 邮件信息

通过社会工程学的方式进行邮件沟通,从邮件头中获取 IP 地址,IP 地址可能是网站的真实 IP 或者是目标的出口 IP。

# 子域爆破

在内网等不易用到以上技巧的环境,或者想监测新域名上线时,可以通过批量尝试的方式,找到有效的域名。

# 缓存探测技术

在企业网络中通常都会配置 DNS 服务器为网络内的主机提供域名解析服务。域名缓存侦测(DNS Cache Snooping)技术就是向这些服务器发送域名解析请求,但并不要求使用递归模式,用于探测是否请求过某个域名。这种方式可以用来探测是否使用了某些软件,尤其是安全软件。