Gobuster – Kali 工具中的渗透测试工具
攻击 Internet 应用程序的主要步骤之一是枚举隐藏的目录和文件。这样做通常可以产生有价值的信息,使执行特定攻击变得更容易,从而减少出错和浪费时间的空间。有许多工具可以尝试做到这一点,但并非所有工具都是平等创建的。 Gobuster是一款用 Go 语言编写的记录扫描器,值得搜索。在流行的目录中,像 DirBuster 和 DIRB 这样的蛮力扫描器可以优雅地工作,但通常很慢并且对错误的响应速度很慢。 Gobuster 可能是这些工具的 Go 实现,并且可以通过方便的命令行格式获得。 Gobuster 相对于其他目录扫描程序的主要优势是速度。作为一种编程语言,Go 被认为是快速的。它还对并发有极好的帮助,因此 Gobuster 可以从多线程中受益,从而加快处理速度。然而,Gobuster 的一个失败是缺乏递归目录探索。不幸的是,对于目录,相当深的一层,将需要另一次扫描。通常,这没什么大不了的,其他扫描仪可以加强并填补 Gobuster 在这方面的空白。
Gobuster 工具在 Linux 操作系统中的安装步骤
第1步:
创建一个工作目录以保持整洁,然后更改为它。
~# mkdir gobuster
~# cd gobuster/
第2步:
我们需要安装 Gobuster Tool,因为 Kali Linux 默认不包含它。
~/gobuster# apt-get install gobuster
第 3 步:
然后,只需在终端中键入 gobuster 即可运行该工具以供使用。
~/gobuster# gobuster -h
第四步:
为强制目录和文件安装额外的 Seclists
~/gobuster# apt-get install seclists
默认情况下,Kali 上的 Wordlist 位于 /usr/share/wordlists 目录中。
如何使用 Gobuster 工具进行扫描?
Gobuster 工具可以从终端或命令行界面启动。您只需要使用下面的语法运行命令。
gobuster [Mode][Options]
了解 Gobuster [模式]
在终端中输入“gobuster”命令后,您必须提供模式或需要指定您正在运行的工具的目的。
Gobuster 工具有多种模式:
- dir –经典的目录暴力破解模式或枚举目录和文件的 URI。
Gobuster 中的 Dir 模式主要用于查找特定目标域或其子域中的额外内容。此附加信息可能包括隐藏目录或可能包含敏感数据的隐藏文件。在目录模式下,我们可以使用选项“-u”来指定要挖掘隐藏目录和文件的目标域或子域。此外,“-w”选项将选择您希望用于暴力破解的词表。
- dns – DNS 子域暴力破解模式或枚举子域
Gobuster Tool 中的 DNS 模式主要用于枚举目标域中的子域。您可以使用此模式为给定的目标域查找一些隐藏或无法识别的子域。在这种模式下,您可以使用选项“-d”来指定要查找子域的目标域,“-w”选项允许您选择要用于暴力破解的词表。
- vhost – 虚拟主机暴力模式或枚举虚拟主机(与 DNS 不同!)
最后,Gobuster 中的 Vhost 模式用于查找受害服务器上的虚拟主机。当公司在单个服务器或服务器集群上托管多个域名时,虚拟主机就完成了。虚拟主机允许一台服务器与其他几个主机名共享其数据和资源。识别服务器上的主机名可以披露属于公司的其他 Web 内容。在主机模式下,它通过实际访问形成的 URL 并交叉检查 IP 地址来检查子域是否存在。
大多数情况下,您将使用 Gobuster 工具来挖掘目录和文件。在这种情况下,dir 模式将对您有所帮助。
gobuster dir [options]
了解 Gobuster [选项]
根据要求进入特定模式后,您必须指定选项。 Gobuster 工具有一长串选项;要探索它们,您只需输入“gobuster -h”即可阅读帮助页面。您可以使用“gobuster dns -h”来探索与 dns 模式特别相关的选项)。
一些选项的例子是:
- -o, –output 字符串将结果写入的输出文件(默认为 stdout)
- -q, –quiet 不要打印横幅和其他噪音
- -t, –threads int 并发线程数(默认 10)
- -v, –verbose 详细输出(错误)
目标规格
因此,在使用该工具时,我们需要指定“-u”后跟目标 URL、IP 地址或主机名。这个选项是强制性的,因为有一个指定的目标来获得结果。
一些示例显示了如何使用此选项。
- gobuster dir -u https://www.geeksforgeeks.org/
- gobuster dir -u https://www.webscantest.com
- gobuster dir -u 192.168.21.154
请注意,如果未指定强制选项“-u”,这些示例将不起作用。
词表规范
Gobuster 工具通过执行暴力攻击枚举目标域中的隐藏目录和文件。蛮力攻击包括匹配单词列表或单词组合,希望列表中存在正确的术语。因此,Gobuster 执行了蛮力攻击。为了强制攻击,我们需要指定一个词的集合,即词表。所以要提供这个词表,你需要输入“-w”选项,然后是它所在的词表的路径。我们可以使用系统中已经存在的单词表文件。
gobuster dir -u https://www.geeksforgeeks.org/ -w /usr/share/wordlists/big.txt
枚举文件
Gobuster 工具可以枚举隐藏文件以及远程目录。 Gobuster 允许我们使用“-x”选项,后跟您要搜索的文件扩展名。
考虑下面的例子:
gobuster dir -u https://www.geeksforgeeks.com w /usr/share/wordlists/big.txt -x php,html,htm
在此命令中,我们专门搜索具有PHP、htm 或 html 扩展名的文件。
Gobuster 工具使用示例
1.获取目录或文件的完整路径
选项“-e”用于在提取任何隐藏文件或隐藏目录时完成打印 URL。
gobuster dir -e -u geeksforgeeks.org -w /usr/share/wordlists/dirb/common.txt –wildcard
2. 隐藏状态码
使用 -n 选项“无状态”模式打印结果的输出而不显示状态代码。
gobuster dir -u geeksforgeeks.org -w /usr/share/wordlists/dirb/common.txt -n –wildcard
3. 禁用横幅
Gobuster 工具在发起蛮力攻击时不断添加横幅来定义应用选项的简要介绍。通过使用 -q 选项,我们可以禁用该标志以隐藏额外数据。
gobuster dir -u geeksforgeeks.org -w /usr/share/wordlists/dirb/common.txt -q –wildcard
4.设置线程数
使用 -t 选项可以在暴力破解子域名或目录时实现线程参数的数量。
gobuster dns -d geeksforgeeks.org -t 100 -w /usr/share/wordlists/dirb/common.txt –wildcard
5.获取子域IP
使用 -i 选项允许 IP 参数,该参数应显示所选子域的 IP。
gobuster dns -d geeksforgeeks.org -t 100 -w /usr/share/wordlists/dirb/common.txt -i –wildcard
DNS mode is covered in this command
6. 超时
使用 –timeout 选项允许 HTTP 请求的超时参数,5 秒是 HTTP 请求的默认时间限制。
gobuster dir –timeout 5s -u geeksforgeeks.org -t 100 -w /usr/share/wordlists/dirb/common.txt –wildcard
7. 附加正斜杠
我在这里使用 -f 选项来附加正斜杠,同时对目标 URL 进行暴力攻击。
gobuster dir -u geeksforgeeks.org -w /usr/share/wordlists/dirb/common.txt -f –wildcard
8. 枚举具有特定扩展名列表的目录
有很多场景我们需要在受害服务器上提取特定扩展的目录,然后我们可以使用此扫描的 -X 参数。此参数允许文件扩展名,然后在受害服务器或计算机上探索给定的扩展文件。
gobuster dir -u geeksforgeeks.org -w /usr/share/wordlists/dirb/common.txt -x .php –wildcard
9. 跟随重定向
使用 -r 选项允许重定向参数,将 HTTP 请求重定向到另一个,以及更改目录或文件的状态代码。
gobuster dir -u geeksforgeeks.org -w /usr/share/wordlists/dirb/common.txt -q –wildcard
gobuster dir -u geeksforgeeks.org -r -w /usr/share/wordlists/dirb/common.txt -q –wildcard
10. HTTP AUTHORIZATION(-u 用户名:密码)
HTTP Authentication/Authentication 机制都是基于 401-status code 和 WWW-Authenticate 响应头的使用。最常用的 HTTP 身份验证机制是 Primary。客户端发送用户名和密码未加密的 base64 编码数据。
因此,为了在 Gobuster 的帮助下避免这种身份验证,我们使用了以下命令:
gobuster dir -u http://testphp.vulnweb.com/login.php -w /usr/share/wordlists/dirb/common.txt -U test -P test –wildcard
11.力处理蛮力
如果遇到任何通配符DNS,它以获取子域名结束,这是一个不存在的域。因此,它使用 –wildcard 选项允许参数继续攻击,即使存在任何通配符域。
gobuster dir -u geeksforgeeks.org -w /usr/share/wordlists/dirb/common.txt –wildcard
12.隐藏提取过程
使用 -z 选项涵盖了在进行暴力攻击时获取子域名的过程。
gobuster dns -d geeksforgeeks.org -t 100 -w /usr/share/wordlists/dirb/common.txt -z –wildcard
13. 提取 CNAME 记录
使用 –cn 选项启用获取的子域及其 CNAME 记录的 CNAME 记录参数。
gobuster dns -d geeksforgeeks.org -t 100 -w /usr/share/wordlists/dirb/common.txt -c –wildcard
14. 代理网址
使用 –p 选项允许代理 URL 用于所有请求;默认情况下,它在端口 1080 上工作。如您所见,在 Web 浏览器中检查受害者的网络 IP 时,它提出了“访问禁止错误”,这意味着该网页正在被某个代理反向运行。
gobuster dir -p ‘https://18.172.30:3128’ -u ‘http://18.192.172.30/’ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt –wildcard
例子 :
现在一切都已设置并安装完毕,我们已准备好开始使用 Gobuster。让我们使用默认参数对我们的受害者运行它。
Target for Scanning : https://testphp.vulnweb.com
kali@kali:~$ gobuster dir -u testphp.vulnweb.com -w /usr/share/wordlists/dirb/common.txt
从上面的屏幕截图中,我们正在枚举 https://testphp.vulnweb.com 上的目录。
用于扫描的词表位于 /usr/share/wordlists/dirb/common.txt
从上面的屏幕截图中,我们在暴力破解目录时确定了管理面板。在打开 Web 浏览器并输入我们目标的 URL https://testphp.vulnweb.com/ 并提供标识的目录 /admin/ 后,我们将提供该目录中可用的内容。作为安全研究员,您可以测试该网页的功能。
结论
在本文中,我们了解了 Gobuster,一个用 Go 编程语言编写的目录暴力扫描器。首先,我们学习了如何安装该工具以及 Kali 默认没有的一些有价值的词表。接下来,我们针对我们的目标运行它,并探索了它附带的许多不同选项。 Gobuster 是一个快速而强大的目录扫描器,它应该是任何黑客收藏的重要组成部分,现在您知道如何使用它了。