关于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 = 2

verbose = false

retries = 15

subdomains = false

parameters = false

providers = ["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