gau: extrayendo URLs archivadas de datasets públicos

gau (getallurls) · MIT

gau obtiene URLs conocidas de un dominio desde archivos públicos — Wayback Machine, Common Crawl, URLScan, Open Threat Exchange. No envía nada al objetivo. Lo que devuelve es un registro histórico de URLs que esos servicios observaron, que rutinariamente incluye endpoints que la aplicación actual ya no referencia.

Instalación

go install -v github.com/lc/gau/v2/cmd/gau@latest

Comandos principales

# todo lo que los archivos conocen
gau example.com

# incluye subdominios
gau --subs example.com

# filtra a extensiones interesantes
gau --subs example.com --blacklist png,jpg,gif,css,woff,svg,ico

# restringe por fecha y proveedor
gau --from 202401 --to 202608 --providers wayback,commoncrawl example.com

# JSON
gau --json --subs example.com > gau.jsonl

Sin una blacklist te ahogarás en assets estáticos. Filtra siempre.

Salida

Una URL por línea por defecto:

https://example.com/api/v1/user?id=1
https://example.com/admin/backup.sql
https://example.com/old/login.php

Dónde encaja en Tandera

gau se ejecuta en la fase de enrich de recon_web_lite y recon_web_full, junto a waybackurls. Ejecutar ambos es intencional — consultan proveedores que se solapan pero no son idénticos, y la unión es mayor que cualquiera de ellos.

Su salida se une al crawl en vivo de katana para formar el corpus de URLs que unfurl, arjun y las etapas de análisis de parámetros consumen.

Uso en un pentest

Las URLs históricas son el punto. /old/login.php devolviendo 404 hoy es irrelevante. /old/login.php devolviendo 200 es un endpoint olvidado fuera del release actual, que es exactamente el tipo de cosa que no se ha parcheado. Re-sondea siempre el corpus:

gau --subs example.com --blacklist png,jpg,css,woff 
  | httpx -silent -status-code -title -mc 200,401,403,500

Haz grep del corpus antes de sondearlo. Las URLs archivadas a menudo contienen parámetros con valores reales — tokens, correos, IDs internos — capturados cuando se hizo crawl de la página. Busca key=, token=, password=, api_key= en la lista en bruto.

Cuida el límite de alcance. --subs extrae todo subdominio que los archivos conocen, incluidos los de fuera del engagement. Filtra contra tu lista de alcance antes de sondear nada.

acceso anticipado

Consigue Tandera antes de tu próximo engagement.

Únete a la waitlist para acceso anticipado. Estamos incorporando equipos de pentest por oleadas.

Onboarding prioritario para equipos de pentest.
Línea directa con quienes lo construyen.
Precio de acceso anticipado, asegurado.

Sin spam, sin tarjeta. Cancela cuando quieras.

enespt-br