HT1001 系列是信安之路推出的黑客工具使用系列,结合使用场景来对安全工具进行测试总结,并通过实战的方式介绍各类开源工具的功能和价值,后续完整内容将发布在信安之路的知识星球和成长平台,部分内容会通过信安之路公众号分享。
gobuster 可以枚举网站的 URLs(目录和文件)、枚举 DNS 子域名、枚举目标 web 服务器的虚拟主机、公开的 Amazon S3 存储桶。
该工具是使用 Go 语言编写,项目地址:
https://github.com/OJ/gobuster
release 版有多个,也可以自行编辑,直接下载地址:
https://github.com/OJ/gobuster/releases
在使用 go 语言编写的程序时,如何编译使用也是比较关键的,否则,如果人家未提供编译好的 release 版本,我们该如何使用?接下来我们来探索下如何将该工具源码编译成我们需要的版本。
编译安装
Linux 环境
首先安装 go 的编译环境,该工具所需 go 环境版本不低于 1.16,安装文档:
https://golang.org/doc/install
安装方式文档中写的比较清楚,跟着步骤走就行:
安装完成之后,使用命令 go version
查看版本:
安装编译这个软件有两种方式,一种是通过 go 直接远程加载安装,一种是通过源码编译安装,首先使用第一种远程安装的方式,安装命令:
go install github.com/OJ/gobuster/v3@latest
安装完成之后,可以在目录 /root/go/bin/
下找到该软件。可以设置环境变量,直接执行该命令:
export PATH=$PATH:/root/go/bin
通过源码编译的方式,命令如下:
git clone https://github.com/OJ/gobuster && cd gobuster && go get && go build
如果想把生成的二进制文件转移到 $GOPATH/bin
目录下,可以使用 go install
命令,最终的效果跟远程安装是一样的。
Windows 环境
首先也需要安装 go 的编译环境,源码编译的步骤也一样,下面做一下测试,下载安装包:
https://golang.org/dl/go1.16.4.windows-amd64.msi
双击执行即可,安装完成之后,安装路径为:
C:Program FilesGo
打卡一个 cmd 窗口,执行 go 验证是否安装成功:
由于国内网络的问题,在线安装,连接服务器超时,Windows 下的编译安装就不演示了,直接下载 Release 版来用用:
Go 语言编写的项目编译安装就分享到这,Windows 版的程序大小近 8M,还是比较大的,如果在本地使用没啥问题,如果要上传到目标内网,显得有些大,不过 go 的跨平台能力还是强的,接下来看看这个工具如何使用。
使用测试
首次使用,运行 help
命令,查看帮助信息:
gobuster help
从命令提示中可以看出有几个模块:dir、dns、fuzz、s3、vhost,这几个是具体的功能,如果想要查看某个模块如何使用,则需使用如下命令查看帮助信息,以 dns
模块为例:
gobuster dns --help
使用这个模块需要指定 -d
参数,设置目标域名,如果需要指定用于解析 DNS 的域名,需要用到 -r
参数,-c
参数显示 CNAME,-i
参数显示 IP 地址,指定字典文件需要用到 -w
参数,下面尝试试用一下:
gobuster dns -d xazlsec.com -c -i -w wordlist.txt
指定 DNS 服务尝试一下:
gobuster dns -d xazlsec.com -c -i -w wordlist.txt -r 8.8.8.8
可以使用 -t
参数指定暴力枚举的线程数,从而提升 DNS 枚举的速度。
本次主要分享的内容是关于 DNS 枚举的,像目录枚举、FAZZ 和 s3 扫描等功能,后续遇到相关场景在进行测试分享,最后测试一下 vhost 模块:
gobuster vhost --help
这个模块的主要功能是枚举某个服务上部署的所有虚拟主机,其原理是通过构造 HTTP 请求头,将字典中的域名设置到 HTTP 请求头到 HOST 字段,然后通过 IP 请求网站,如果是该域名的虚拟主机,那么请求会返回该域名下的网站内容,如果不是,则返回通过 IP 访问获得的资源而非域名下的资源。
比如下图,目标地址设置为 IP,HOST 字段设置为正常域名,结果返回也正常:
如果我们将 HOST 字段设置为一个不存在的域名,看看效果:
我们发现显示的内容跟之前不一样了,这样显示的内容是直接访问 IP 返回的默认网站信息,当我们在此设置一个存在的网站域名时:
结果显示确实是 tools.xazlsec.com 域名下的内容,这个功能的原理就是这样,接下来测试一下工具:
gobuster vhost -w wordlist.txt -u https://47.94.225.171/ -k
因为 IP 访问默认是 edu.xazlsec.com 的内容,所以枚举的结果只显示了 www 和 tools 网站的信息,参数方面 -u
设置要访问的 URL 地址,也就是用 IP 组成的地址,-w
参数指定域名字典,需要完整域名,-k
是跳过证书验证,因为访问 HTTPS 的网站,由于证书不匹配所以会报错,用这个参数,就可以解决报错的问题。
这个工具的使用就分享到这里,其他模块的使用在后续的场景中提及,有任何问题都可以进行交流,下期再见!
本文始发于微信公众号(信安之路):HT1136 DNS 枚举工具 gobuster 试用
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论