【THM】子域枚举

发布时间 2023-12-13 08:38:53作者: trymonoly

子域名枚举分为三种

我们将探索三种不同的子域枚举方法:蛮力、OSINT(开源智能)和虚拟主机。

OSINT - SSL/TLS 证书

SSL/TLS 证书

什么时候 SSL/TLS(安全套接字层/传输层安全)证书由 CA(证书颁发机构)为域创建,CA 参与所谓的“证书透明度 (CT) 日志”。这些是为每个 SSL/TLS 证书创建的每个 SSL/TLS 证书的可公开访问的日志。 域名。Certificate Transparency 日志的目的是阻止恶意和意外制作的证书被使用。我们可以利用这项服务来发现属于 域、https://crt.sh 和 https://ui.ctsearch.entrust.com/ui/ctsearchui 等网站提供了一个可搜索的证书数据库,显示当前和历史结果。

OSINT - 搜索引擎

搜索引擎

搜索 引擎包含数万亿个指向超过十亿个网站的链接, 这可能是寻找新子域的绝佳资源。 在 Google 等网站上使用高级搜索方法(例如 site: 过滤器)可以缩小搜索结果范围。例如 “-site:www.domain.com site:*.domain.com”将仅包含指向域名 domain.com 的结果,但不包括指向 www.domain.com;因此,它只向我们显示属于 domain.com。

 

转到 Google 并使用搜索词 -site:www.tryhackme.com site:*.tryhackme.com,它应该显示 tryhackme.com 的子域;

DNS 暴力破解

Bruteforce DNS(域名系统)枚举是从预定义的常用子域列表中尝试数十个、数百个、数千个甚至数百万个不同可能的子域的方法。由于此方法需要许多请求,因此我们使用工具将其自动化,以加快流程。在本例中,我们使用一个名为 dnsrecon 的工具来执行此操作。

OSINT - 子列表3r

使用 Sublist3r 实现自动化

为了加快 OSINT 子域发现的过程,我们可以借助 Sublist3r 等工具自动执行上述方法,单击“查看站点”按钮打开静态站点并运行 sublist3r 模拟以发现新的子域,这将有助于回答以下问题。

 

虚拟主机

某些子域并不总是托管在可公开访问的 DNS 结果中,例如 Web 应用程序的开发版本或管理门户。相反,DNS 记录可以保存在私有 DNS 服务器上,也可以记录在开发人员的机器上的 /etc/hosts 文件(或 Windows 用户的 c:\windows\system32\drivers\etc\hosts 文件)中,该文件将域名映射到 IP 地址。

 

由于当从客户端请求网站时,Web 服务器可以从一台服务器托管多个网站,因此服务器可以从 Host 标头中知道客户端想要哪个网站 。我们可以通过对它进行更改并监控响应来利用此主机标头,以查看我们是否发现了一个新网站。

 

与 DNS Bruteforce 一样,我们可以通过使用常用子域的单词列表来自动执行此过程。

 

启动 AttackBox,然后对 Acme IT 支持计算机尝试以下命令,以尝试发现新的子域。

user@machine$ ffuf -w /usr/share/wordlists/SecLists/Discovery/DNS/namelist.txt -H "Host: FUZZ.acmeitsupport.thm" -u http://10.10.182.146

上面的命令使用 -w 开关来指定我们将要使用的单词列表。-H 开关添加/编辑标头(在本例中为 Host 标头),我们在子域通常会去的空间中有 FUZZ 关键字,我们将在这里尝试单词列表中的所有选项。

由于上述命令将始终产生有效结果,因此我们需要过滤输出。我们可以通过使用带有 -fs 开关的页面大小结果来做到这一点。编辑以下命令,将 {size} 替换为上一个结果中出现次数最多的大小值,并在 AttackBox 上尝试。

user@machine$ ffuf -w /usr/share/wordlists/SecLists/Discovery/DNS/namelist.txt -H "Host: FUZZ.acmeitsupport.thm" -u http://10.10.182.146 -fs {size}

除了 -fs 开关之外,此命令的语法与第一个命令类似,它告诉 ffuf 忽略指定大小的任何结果