前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >HT1136 DNS 枚举工具 gobuster 试用

HT1136 DNS 枚举工具 gobuster 试用

作者头像
信安之路
发布2021-05-27 15:13:56
2.1K0
发布2021-05-27 15:13:56
举报
文章被收录于专栏:信安之路

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 Files\Go\

打卡一个 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 的网站,由于证书不匹配所以会报错,用这个参数,就可以解决报错的问题。

这个工具的使用就分享到这里,其他模块的使用在后续的场景中提及,有任何问题都可以进行交流,下期再见!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-05-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 信安之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 编译安装
    • Linux 环境
      • Windows 环境
      • 使用测试
      相关产品与服务
      轻量应用服务器
      轻量应用服务器(TencentCloud Lighthouse)是新一代开箱即用、面向轻量应用场景的云服务器产品,助力中小企业和开发者便捷高效的在云端构建网站、Web应用、小程序/小游戏、游戏服、电商应用、云盘/图床和开发测试环境,相比普通云服务器更加简单易用且更贴近应用,以套餐形式整体售卖云资源并提供高带宽流量包,将热门软件打包实现一键构建应用,提供极简上云体验。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档