【THM】Subdomain Enumeration(子域名枚举)-学习
<p>本文相关的TryHackMe实验房间链接:https://tryhackme.com/room/subdomainenumeration</p><p>本文相关的内容:学习如何发现目标子域的各种方法,以便扩展我们针对目标的攻击面。</p>
<p><img src="https://img2023.cnblogs.com/blog/2857591/202306/2857591-20230613031144401-363556932.png" alt="image" loading="lazy"></p>
<h2 id="简介">简介</h2>
<p>子域名枚举是为一个域查找有效子域的过程,在本节中我们将学习发现子域的各种方法,我们这样做是为了扩大我们的攻击面,试图发现更多潜在的漏洞点。</p>
<p>我们将探讨三种不同的子域枚举方法: Brute Force、 OSINT (开放来源情报)和 Virtual Host(虚拟主机)</p>
<p><strong>答题</strong></p>
<p><img src="https://img2022.cnblogs.com/blog/2857591/202210/2857591-20221004215751602-2087128849.png" alt="image" loading="lazy"></p>
<h2 id="osint---ssltls证书">OSINT - SSL/TLS证书</h2>
<p><strong>SSL/TLS 证书</strong></p>
<p>当 SSL/TLS(Secure Sockets Layer/Transport Layer Security)证书 由 CA(Certificate Authority 数字证书认证机构)颁发给某个域名时,CA 会参与所谓的“证书透明度(CT)日志”。这些日志是 被颁发给一些域名的每个 SSL/TLS 证书 的公共访问日志。</p>
<p>证书透明度日志存在的目的 是为了阻止恶意和意外创建的证书被使用,我们可以利用这项服务 来发现属于一个域名的子域名,我们可以通过在线网站 http://crt.sh/ 以及 https://ui.ctsearch.entrust.com/ui/ctsearchui 所提供的一个可搜索的证书数据库,来查找某个证书的当前和历史记录。</p>
<p><strong>答题</strong></p>
<p>使用 http://crt.sh/ 搜索域名 tryhackme.com ,找到2020-12-26的记录并查看登记的子域名。</p>
<p><img src="https://img2022.cnblogs.com/blog/2857591/202210/2857591-20221004215814106-1112159027.png" alt="image" loading="lazy"></p>
<p><img src="https://img2022.cnblogs.com/blog/2857591/202210/2857591-20221004215825571-970630307.png" alt="image" loading="lazy"></p>
<h2 id="osint---搜索引擎">OSINT - 搜索引擎</h2>
<p><strong>搜索引擎</strong></p>
<p>搜索引擎包含数万亿个链接,指向超过 10 亿个网站,是寻找子域名的绝佳途径。在 Google 等网站上使用高级搜索方法,如site:filter,可以缩小搜索结果。</p>
<p>例子:“-site:www.domain.com site:*.domain.com”只会包含指向域名 domain.com 的结果,但同时会排除任何指向 www.domain.com 的链接;所以,它只会向我们显示属于 domain.com 的子域名。</p>
<p>转到谷歌并使用搜索词 -site:www.tryhackme.com site:*.tryhackme.com ,搜索结果应该会显示 tryhackme.com 的子域名。</p>
<p><strong>答题</strong></p>
<p>在Google上使用高级语法,搜索tryhackme.com的子域名</p>
<p><img src="https://img2022.cnblogs.com/blog/2857591/202210/2857591-20221004215841792-238699917.png" alt="image" loading="lazy"></p>
<p><img src="https://img2022.cnblogs.com/blog/2857591/202210/2857591-20221004215852398-35845488.png" alt="image" loading="lazy"></p>
<h2 id="dns-bruteforcedns-暴力匹配">DNS Bruteforce(DNS 暴力匹配)</h2>
<p>Bruteforce DNS (域名系统)枚举是从预定义的常用子域名字典中,尝试向DNS请求数十个、数百个、数千个甚至数百万个不同可能的子域名的方法,因为这个方法需要很多请求,所以我们使用工具来自动化完成,以加快处理速度。</p>
<p>在本例中,我们会使用一个名为 dnsrecon 的工具来执行此操作。</p>
<p><strong>答题</strong></p>
<p><img src="https://img2022.cnblogs.com/blog/2857591/202210/2857591-20221004215907479-923354965.png" alt="image" loading="lazy"></p>
<p><img src="https://img2022.cnblogs.com/blog/2857591/202210/2857591-20221004215919039-1091851170.png" alt="image" loading="lazy"></p>
<h2 id="osint-sublist3r">OSINT-Sublist3r</h2>
<p><strong>使用 Sublist3r 自动化工具</strong></p>
<p>为了加快 OSINT 子域发现的进程,我们可以使用 Sublist3r 这样的工具来自动化查找子域。</p>
<p>Sublist3r项目地址:https://github.com/aboul3la/Sublist3r</p>
<p><strong>答题</strong></p>
<p><img src="https://img2022.cnblogs.com/blog/2857591/202210/2857591-20221004220005351-1473548398.png" alt="image" loading="lazy"></p>
<p><img src="https://img2022.cnblogs.com/blog/2857591/202210/2857591-20221004220018460-761048025.png" alt="image" loading="lazy"></p>
<h2 id="virtual-hosts-虚拟主机">Virtual Hosts 虚拟主机</h2>
<p>有些子域名并不总是托管在公共可访问的 DNS 的结果中,例如 Web 应用程序的开发版本或一些管理门户。</p>
<p>DNS 记录也可以保存在一个私有的 DNS 服务器上,或者记录在开发者的机器上的 /etc/hosts 文件中(或者在c:\windows\system32\drivers\etc\hosts 文件中,Windows 用户可以使用这个文件),hosts能将域名映射到 IP 地址。</p>
<p>Web 服务器可以在一台服务器上托管多个网站,当客户端请求网站时,服务器能从 Host 标头中知道客户端具体想要访问哪一个网站。我们可以通过更改Host信息来利用这个Host标头,并监控服务器的响应以查看我们是否发现了一个新网站。</p>
<p>与 DNS 的暴力匹配一样,我们可以通过使用包含常用子域名的字典来自动化请求过程。</p>
<p>启动TryHackMe网站提供的AttackBox,然后对 Acme IT Support 机器尝试以下命令,以尝试发现一个新的子域。</p>
<pre><code class="language-shell">user@machine$ ffuf -w /usr/share/wordlists/SecLists/Discovery/DNS/namelist.txt -H "Host: FUZZ.acmeitsupport.thm" -u http://10.10.91.202
</code></pre>
<p>上面的命令使用 -w 开关来指定我们要使用的字典,使用 -H 开关来添加/编辑标头(在本例中为 Host 标头),我们在子域名的url地址中能够插入一个FUZZ关键字,在这个位置,我们将尝试填充字典中的所有子项。</p>
<p>因为上面的命令总是会产生一个有效的结果,所以我们需要做过滤输出。我们可以使用-fs 开关 加上所得结果的"页面大小值" 来做过滤。</p>
<p>编辑并执行以下命令,将 {size} 替换为上一个命令的结果中出现次数最多的"页面大小值"。</p>
<pre><code class="language-shell">user@machine$ ffuf -w /usr/share/wordlists/SecLists/Discovery/DNS/namelist.txt -H "Host: FUZZ.acmeitsupport.thm" -u http://10.10.91.202 -fs {size}
</code></pre>
<p>除了 -fs 开关之外,此命令的语法与第一个命令类似,使用-fs 将告诉 ffuf 忽略任何指定大小的结果。</p>
<p><strong>答题</strong></p>
<p>使用命令</p>
<pre><code class="language-shell">ffuf -w /usr/share/wordlists/SecLists/Discovery/DNS/namelist.txt -H "Host: FUZZ.acmeitsupport.thm" -u http://10.10.91.202
#对上一条命令的结果进行过滤 忽略出现次数最多的size值:2395
ffuf -w /usr/share/wordlists/SecLists/Discovery/DNS/namelist.txt -H "Host: FUZZ.acmeitsupport.thm" -u http://10.10.91.202 -fs 2395
</code></pre>
<p><img src="https://img2022.cnblogs.com/blog/2857591/202210/2857591-20221004220044959-553150542.png" alt="image" loading="lazy"></p>
<p><img src="https://img2022.cnblogs.com/blog/2857591/202210/2857591-20221004220056652-1569256518.png" alt="image" loading="lazy"></p><br><br>
来源:https://www.cnblogs.com/Hekeats-L/p/16754606.html
頁:
[1]