DomCat:一个实用的域名分类工具

DomCat是一个用Go语言编写的命令行工具,帮助用户找到具有理想分类的过期域名。本文详细介绍了工具的安装配置过程,包括Go环境搭建、API密钥获取和工具运行方法,适合渗透测试人员和SEO从业者使用。

DomCat:一个域名分类工具

你是否曾经苦苦寻找具有特定分类的过期域名?是否对那些列出过期域名但不提供分类数据的网站感到沮丧?当你终于找到一个有前景的域名时,仍然需要自行研究其分类,经常发现它根本没有被分类——这浪费了你的时间(可能还有金钱)。

虽然曾经有一些工具可以帮助完成这个过程,但许多已经过时且年久失修。我们认为这是不可接受的,因此我创建了DomCat。

什么是DomCat?

DomCat是一个用Golang编写的命令行工具,帮助用户找到具有理想分类的过期域名。该工具目前处于起步阶段,非常基础。它的编写方式使其能够随着时间的推移进行升级。

为什么需要DomCat?

一些读者可能想知道为什么要寻找已分类的过期域名。在开发DomCat时,我主要考虑的是渗透测试人员。渗透测试人员可以利用具有"安全"分类的域名来绕过某些网络过滤器。我后来意识到的另一个有价值的应用是SEO,可以获取这些域名并将其附加到我们现有的域名上以获取更多流量。

制作DomCat

在开始这个项目时,我收到了一份已停止开发工具列表,如DomainHunter、DomainGain-Dep和CatMyPhish。所有这些都很有用……但非常过时。我的任务是寻找提供相同功能的新工具,或者自己制作一个。在找不到线索后,我开始开发DomCat。

最初,我尝试修复和组合这些现有工具,但很快发现它们失效的原因:它们从网站抓取过期域名列表。虽然这在五年前是更可接受的做法,但如今许多网站已经制定了禁止任何形式的抓取或机器人的政策。这意味着尝试更新现有工具将涉及完全重新编码,因此我将精力转向构建自己的工具。

DomCat演练

废话不多说:让我们看看DomCat的实际操作。

DomCat已在Windows和Linux(Ubuntu)上测试,应该在任何支持Go的系统上运行(但这不能保证)。在运行工具之前,我们的第一步是设置,这不应该花费太长时间。安装脚本目前正在开发中;我希望将来能自动化这个过程。

步骤1:安装Go

你需要安装Go来运行DomCat。这取决于你的操作系统(OS)——我将仅演示在Windows和Linux(Ubuntu)上的安装。无论操作系统如何,你都需要从这里下载相应的二进制文件。

Ubuntu

下载Linux操作系统的文件。完成后,打开终端并使用以下命令解压文件并安装Go。此命令仅在包含下载文件的目录中有效。根据需要修改下载文件路径。

1
sudo tar -C /usr/local -xzf go1.22.0.linux-amd64.tar.gz

安装后,我们将设置Go环境变量。对于Ubuntu,我们需要编辑.bashrc。除非你知道自己在做什么,否则不要乱动这里的内容,因为它可能会弄乱你的系统。

1
nano ~/.bashrc

在此文件的底部,我们需要添加几行:

1
2
3
4
# Add ~/go/bin to path
[[ “:$PATH:” != *”:${HOME}/go/bin:”* ]] && export PATH=${PATH}:${HOME}/go/bin”
# Set GOPATH
if [[ -z “${GOPATH}]; then export GOPATH=${HOME}/go”; fi

保存文件并source它:

1
source ~/.bashrc

为确保安装正确,运行几个命令:

1
go version

1
go env

以查看Go的版本信息和环境变量。它应该看起来像下面的截图(版本信息可能不同)。

Windows

下载Windows文件。完成后,运行可执行文件。右键单击它并点击安装。将弹出安装向导。

点击下一步并继续使用默认设置——我们不需要更改任何内容。很快你将看到此屏幕:

点击安装,它将显示一个加载条。

安装完成后,将出现一个新屏幕。点击完成。

最后,我们将确保Go已正确安装。这里的命令与Ubuntu中的相同。

1
go version

1
go env

Go现已成功安装。

步骤2:克隆DomCat

现在,我们需要从GitHub获取DomCat文件。我们将通过克隆仓库来完成此操作。这需要你在计算机和GitHub之间设置SSH密钥。查看生成新的SSH密钥并将其添加到ssh-agent以及将新的SSH密钥添加到你的GitHub账户。

如果你在Windows上,可以通过GitHub Desktop克隆,而无需处理SSH密钥。遗憾的是,这对Ubuntu来说不是一个选项。查看安装Github Desktop。我们将介绍两种克隆仓库的方法。(剧透:GitHub Desktop更容易)。克隆的替代方法是下载zip文件,但我们不会涵盖该过程。

SSH(Ubuntu)

设置好SSH密钥后,克隆过程很简单。转到GitHub上的DomCat仓库。找到标有Code的绿色按钮。点击它。选择SSH并复制显示的文本(也有一个方便的按钮)。

复制后,打开终端会话并运行:

1
git clone git@github.com:IcyLance/DomCat.git

你现在在系统上拥有了DomCat仓库。

Github Desktop(Windows)

这是更简单的方法,因为我们不需要SSH密钥。

前往GitHub上的DomCat仓库。找到标有Code的绿色按钮。点击它。不要选择SSH,而是点击用Github Desktop打开。

将启动一个GitHub Desktop会话,弹出一个要求克隆仓库的窗口。我告诉它克隆到我的项目文件夹,而不是默认文件夹,但你可以保留默认设置。准备好后,点击Clone。

将向你展示GitHub Desktop中仓库的新窗口。

为了确保我们可以从命令行访问它,我们可以从PowerShell检查文件位置。

步骤3:API密钥和.env

这里我们需要处理好我们的API密钥。DomCat目前使用两个API:一个来自NameSilo(NS)用于获取过期域名,一个来自Cloudflare用于检查域名分类。我们需要一个来自NameSilo的密钥和一个来自Cloudflare的令牌。但在此之前,我们需要一个地方来放置它们。我们将把它们放入一个.env文件中。

设置.env文件

在DomCat仓库中,有一个名为example.env的文件。它看起来像这样:

虽然这个文件看起来非常适合放置我们的密钥,但如果我们这样做,我们的程序将无法工作。我们需要创建一个名为".env"的新文件——完全按照这样设置,并用相应的密钥替换"your"部分。

创建文件很简单,因此我不会逐步指导你。只需确保将文件命名为".env",否则DomCat将无法工作。创建文件后,复制并粘贴文本。

NameSilo API密钥

我们将从NameSilo获取第一个密钥。你需要先设置一个账户。

设置好账户后,导航到账户设置中的API管理器。

到达那里后,向下滚动到API密钥部分。勾选接受使用条款并生成密钥的复选框。它将显示你的API。复制它并放置在我们之前创建的.env文件中。

Cloudflare API令牌

这个会更有趣一些。登录或创建Cloudflare账户。

页面左侧是不同选项的列表;滚动到底部并找到管理账户。

在下拉菜单中找到账户API令牌并点击它。

在此页面上,点击创建令牌。

在新页面的底部,有创建自定义密钥的选项。选择与此选项对应的开始按钮。

现在我们可以配置我们的令牌。你必须给它一个名称和权限(尝试给它一个好名字,以帮助你记住它的用途)。你唯一需要确保正确设置的是权限。DomCat需要两个权限:从Account.Intel和Account.Account Settings读取。如果你愿意,可以指定可以使用此令牌的IP地址和生存时间(TTL)值,以增加一些额外的安全性。

正确设置所有内容后,点击底部的继续到摘要。它将显示你尝试创建的令牌的概述。如果有问题,点击编辑令牌并修复它,否则点击创建令牌。复制显示的令牌并像之前一样粘贴到.env中。

现在我们有了密钥,让我们终于开始运行DomCat吧!

步骤4:构建和运行

要运行DomCat,我们将使用两个命令。

第一个将构建我们的可执行文件:

1
go build

第二个将运行可执行文件:

1
./domCat

我们开始比赛了!运行程序后,你应该看到标题图形。显示其他内容可能需要一段时间,因为从API获取响应可能需要一些时间,而且我们发出了几个请求。我计划将来在这里提供更多详细信息,以便你可以看到程序正在工作。

最终它将输出一个域名列表,如下所示:

此列表显示找到的过期域名及其分类。每次只收集大约二十个域名,然后应用过滤器移除没有分类的域名以及那些明确的域名。这就是为什么只显示八个。在底部,它会询问你是否要继续。如果是,点击Enter,将显示一个新列表。它将再次询问是否继续:

我认为我喜欢此列表中第5个域名的外观:“glasshousenursery.com”

由于我找到了一个我喜欢的域名,我将在终端输入"n"表示不继续。

然后它将提示你输入与你喜欢的域名对应的数字,对我来说是5。

输入你的数字将输出该域名在NameSilo上出售的拍卖URL。你可以复制并粘贴此链接到浏览器并前往拍卖。有时拍卖已经过期;我已经尽力过滤掉这些,但有些仍然漏网。(免费信息的乐趣之一:我们得到我们所支付的。)当然,你也可以在其他域名注册平台上搜索你找到的域名。

快速免责声明

Cloudflare Intel API对免费账户的请求数量有限。Intel API是DomCat获取分类信息的方式。对于免费账户,限制是每月一百个请求。每次你选择继续,它都会使用一个请求,因此请谨慎使用。这是我在这一点上找到的值得信赖的域名分类的最佳选择。

结论

我希望这个工具对尽可能多的用户可用,因此使用了免费API。当然,有一些高级产品非常适合DomCat的需求,但它们昂贵且不易访问。将来,我计划提供选项来利用这些高级服务,同时仍为免费用户保持可访问性。

虽然DomCat是考虑到渗透测试人员的用例而制作的,但对于任何寻找具有良好分类的域名的人来说,它都是一个很好的工具。

反馈

如果你在使用DomCat时遇到任何问题,请在GitHub上提出问题让我知道!如果你有关于如何改进工具或希望将来看到的功能的反馈,请通过我的工作电子邮件woldert@blackhillsinfosec.com与我联系,或者再次在GitHub上提出问题。

链接

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计