关于Gau
Gau是一款功能强大的URL收集工具,该工具可以针对任意指定的域名,从AlienVault的开放威胁交换器、Wayback Machine、Common Crawl平台和URLScan收集并爬取已知的URL地址。
Gau,全称为GetAllUrls。该工具灵感来源于Tomnomnom的waybackurls项目,该工具可以有效帮助广大研究人员顺利完成安全测试过程中的URL信息收集任务。
工具要求
Go语言环境
工具下载
由于该工具基于Go语言开发,因此我们首先需要在本地设备上安装并配置好最新版本的Go环境。
源码安装
接下来,广大研究人员可以直接使用下列命令将该项目源码克隆至本地:
git clone https://github.com/lc/gau.git; \
然后切换到项目目录中,使用下列命令构建项目代码:
cd gau/cmd; \go build; \sudo mv gau /usr/local/bin/; \gau --version;
Go安装
除此之外,我们还可以直接使用go install命令安装最新版本的Gau:
$ go install github.com/lc/gau/v2/cmd/gau@latest
Docker安装
我们还可以通过Docker文件来运行Gau:
docker run --rm sxcurity/gau:latest --help
或者使用下列命令构建一个Docker镜像:
docker build -t gau .
运行命令如下:
docker run gau example.com
工具帮助信息
下列命令可以直接查看该工具支持的参数选项和使用样例:
$ gau -h
*命令选项* | *描述* | *使用样例* |
---|---|---|
–blacklist | 需要跳过的后缀列表 | gau --blacklist ttf,woff,svg,png |
–fc | 过滤器状态码列表 | gau --fc 404,302 |
–from | 根据开始日期获取URL (格式: YYYYMM) | gau --from 202101 |
–ft | 过滤器mime-types列表 | gau --ft text/plain |
–fp | 移除同一终端的不同参数 | gau --fp |
–json | 以JSON格式输出 | gau --json |
–mc | 要匹配的状态码列表 | gau --mc 200,500 |
–mt | 要匹配的mime-types列表 | gau --mt text/html,application/json |
–o | 要写入输出结果的文件名 | gau --o out.txt |
–providers | 要使用的提供商列表 (wayback,commoncrawl,otx,urlscan) | gau --providers wayback |
–proxy | 要使用的HTTP代理 (socks5:// or http://) | gau --proxy http://proxy.example.com:8080 |
–retries | HTTP客户端重连次数 | gau --retries 10 |
–timeout | HTTP客户端超时(秒) | gau --timeout 60 |
–subs | 包含目标域名的子域名 | gau example.com --subs |
–threads | 要生成的Worker数量 | gau example.com --threads |
–to | 根据结束日期获取URL (格式: YYYYMM) | gau example.com --to 202101 |
–verbose | 显示Verbose输出 | gau --verbose example.com |
–version | 显示工具版本 | gau --version |
配置文件
Gau会自动定位并寻找“$HOME/.gau.toml”或“%USERPROFILE%.gau.toml”路径下的配置文件,我们可以在配置文件中指定参数选项,以方便每一次的任务执行。项目提供了一份配置文件样例,路径为“gau/.gau.toml”,文件样例如下:
threads = 2verbose = falseretries = 15subdomains = falseparameters = falseproviders = ["wayback","commoncrawl","otx","urlscan"]blacklist = ["ttf","woff","svg","png","jpg"]json = false[urlscan]apikey = ""[filters]from = ""to = ""matchstatuscodes = []matchmimetypes = []filterstatuscodes = []filtermimetypes = ["image/png", "image/jpg", "image/svg+xml"]
工具使用样例
$ printf example.com | gau
$ cat domains.txt | gau --threads 5
$ gau example.com google.com
$ gau --o example-urls.txt example.com
$ gau --blacklist png,jpg,gif example.com
许可证协议
本项目的开发与发布遵循MIT开源许可协议。
项目地址
Gau:【GitHub传送门】
参考资料
https://otx.alienvault.com/
https://github.com/tomnomnom/waybackurls