gau: extraindo URLs arquivadas de datasets públicos
gau (getallurls) · MIT
O gau busca URLs conhecidas de um domínio em arquivos públicos — Wayback Machine, Common Crawl, URLScan, Open Threat Exchange. Ele não envia nada ao alvo. O que retorna é um registro histórico de URLs que esses serviços observaram, que rotineiramente inclui endpoints que a aplicação atual já não referencia.
Instalação
go install -v github.com/lc/gau/v2/cmd/gau@latest Comandos principais
# tudo que os arquivos conhecem
gau example.com
# inclui subdomínios
gau --subs example.com
# filtra para extensões interessantes
gau --subs example.com --blacklist png,jpg,gif,css,woff,svg,ico
# restringe por data e provedor
gau --from 202401 --to 202608 --providers wayback,commoncrawl example.com
# JSON
gau --json --subs example.com > gau.jsonl Sem uma blacklist você vai afogar em assets estáticos. Sempre filtre.
Saída
Uma URL por linha por padrão:
https://example.com/api/v1/user?id=1
https://example.com/admin/backup.sql
https://example.com/old/login.php Onde ele entra no Tandera
O gau roda na fase de enrich do recon_web_lite e do recon_web_full, ao lado do waybackurls. Rodar os dois é intencional — eles consultam provedores que se sobrepõem mas não são idênticos, e a união é maior que qualquer um deles.
Sua saída se junta ao crawl ao vivo do katana para formar o corpus de URLs que unfurl, arjun e as etapas de análise de parâmetro consomem.
Usando em um pentest
URLs históricas são o ponto. /old/login.php retornando 404 hoje é irrelevante. /old/login.php retornando 200 é um endpoint esquecido fora do release atual, que é exatamente o tipo de coisa que não foi corrigida. Sempre re-sonde o corpus:
gau --subs example.com --blacklist png,jpg,css,woff
| httpx -silent -status-code -title -mc 200,401,403,500 Faça grep no corpus antes de sondá-lo. URLs arquivadas frequentemente contêm parâmetros com valores reais — tokens, e-mails, IDs internos — capturados quando a página foi crawleada. Procure por key=, token=, password=, api_key= na lista bruta.
Atenção ao limite de escopo. O --subs puxa todo subdomínio que os arquivos conhecem, incluindo os de fora do engajamento. Filtre contra sua lista de escopo antes de sondar qualquer coisa.