一款用 Go 编写的快速灵活的暴力破解工具
Gobuster 是一款用 Go 编写的高性能目录/文件、DNS 和虚拟主机暴力破解工具。它专为安全专家和渗透测试人员设计,追求快速、可靠且易于使用。
# 安装 gobuster
go install github.com/OJ/gobuster/v3@latest
# 基本目录枚举
gobuster dir -u https://example.com -w /path/to/wordlist.txt
# DNS 子域名枚举
gobuster dns -do example.com -w /path/to/wordlist.txt
# 虚拟主机发现
gobuster vhost -u https://example.com -w /path/to/wordlist.txt
# S3 存储桶枚举
gobuster s3 -w /path/to/bucket-names.txt
go install github.com/OJ/gobuster/v3@latest
要求:Go 1.24 或更高版本
从 releases 页面 下载预编译的二进制文件。
# 拉取最新镜像
docker pull ghcr.io/oj/gobuster:latest
# 在 Docker 中运行 gobuster
docker run --rm -it ghcr.io/oj/gobuster:latest dir -u https://example.com -w /usr/share/wordlists/dirb/common.txt
git clone https://github.com/OJ/gobuster.git
cd gobuster
go mod tidy
go build
如果遇到问题:
go version$GOPATH 和 $GOBIN 环境变量$GOPATH/bin 已加入 $PATHGobuster 使用基于模式的方式。每种模式专用于特定的枚举任务:
gobuster [模式] [选项]
gobuster help # 显示通用帮助
gobuster help [模式] # 显示特定模式的帮助
gobuster [模式] --help # 另一种帮助语法
dir)枚举 Web 服务器上的目录和文件。
基本用法:
gobuster dir -u https://example.com -w wordlist.txt
高级选项:
# 指定文件扩展名
gobuster dir -u https://example.com -w wordlist.txt -x php,html,js,txt
# 自定义请求头和 Cookie
gobuster dir -u https://example.com -w wordlist.txt -H "Authorization: Bearer token" -c "session=value"
# 显示响应长度
gobuster dir -u https://example.com -w wordlist.txt -l
# 按状态码过滤
gobuster dir -u https://example.com -w wordlist.txt -s 200,301,302
dns)通过 DNS 解析发现子域名。
基本用法:
gobuster dns -do example.com -w wordlist.txt
高级选项:
# 使用自定义 DNS 服务器
gobuster dns -do example.com -w wordlist.txt -r 8.8.8.8:53
# 增加线程以加快扫描速度
gobuster dns -do example.com -w wordlist.txt -t 50
vhost)发现 Web 服务器上的虚拟主机。
基本用法:
gobuster vhost -u https://example.com --append-domain -w wordlist.txt
s3)枚举 Amazon S3 存储桶。
基本用法:
gobuster s3 -w bucket-names.txt
启用调试输出:
gobuster s3 -w bucket-names.txt --debug
tftp)枚举 TFTP 服务器上的文件。
基本用法:
gobuster tftp -s 10.0.0.1 -w wordlist.txt
gcs)枚举 Google Cloud Storage 存储桶。
基本用法:
gobuster gcs -w bucket-names.txt
启用调试输出:
gobuster gcs -w bucket-names.txt --debug
fuzz)使用 FUZZ 关键字进行自定义模糊测试。
基本用法:
gobuster fuzz -u https://example.com?FUZZ=test -w wordlist.txt
高级示例:
# 模糊测试 URL 参数
gobuster fuzz -u https://example.com?param=FUZZ -w wordlist.txt
# 模糊测试请求头
gobuster fuzz -u https://example.com -H "X-Custom-Header: FUZZ" -w wordlist.txt
# 模糊测试 POST 数据
gobuster fuzz -u https://example.com -d "username=admin&password=FUZZ" -w passwords.txt
如果你已经是我们支持者中的一员,你太棒了。如果还不是,那也没关系!想要支持我们?成为支持者!
所有捐赠给此项目的资金将捐赠给慈善机构。完整的慈善捐款记录将在处理完毕后在此仓库中提供。
# 综合目录枚举
gobuster dir -u https://target.com -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,html,js,txt,asp,aspx,jsp
# API 端点发现
gobuster dir -u https://api.target.com -w /usr/share/wordlists/dirb/common.txt -x json
# 管理后台发现
gobuster dir -u https://target.com -w admin-panels.txt -s 200,301,302,403
# 全面子域名枚举
gobuster dns -do target.com -w /usr/share/wordlists/dnsrecon/subdomains-top1mil-5000.txt -t 50
# 带模式匹配的 S3 存储桶枚举
gobuster s3 -w company-names.txt -v
# GCS 存储桶枚举
gobuster gcs -w company-names.txt -v
-t 参数减少线程数--delay 参数在请求之间添加延迟-a 参数更换用户代理--timeout 参数增加超时时间-s 参数检查状态码过滤-t 参数增加线程数(但注意不要压垮目标)# 将结果保存到文件
gobuster dir -u https://example.com -w wordlist.txt -o results.txt
# 使用安静模式以获得干净输出
gobuster dir -u https://example.com -w wordlist.txt -q
快乐黑客!🚀
请记住:始终负责任且获得适当授权后进行测试。
exclude-hostname-length 标志以动态调整排除长度,由 @0xyy66 贡献dir 模式中添加 --force 标志,以便在预检错误发生时继续执行show-cname 重命名为 check-cnameverbose 标志,改用 debug--append-domain 开关则发出警告--no-progress 运行时出现多余特殊字符的问题interface 和 local-ip 参数,用于指定 HTTP 请求的出站接口--exclude-length 中使用多个值和范围no-fqdn 参数,用于禁用系统搜索域。如果你配置了一些搜索域,这应该会加快运行速度。https://github.com/OJ/gobuster/pull/418{GOBUSTER} 将被替换为当前的字典条目。请谨慎使用,因为这可能会大大增加发出的请求数量。p 标志,现在被模式标志使用-m 已经消失!)