Respuesta rápida
Recon en bug bounty es el proceso de mapear la superficie de ataque del target antes de empezar a auditar. Pipeline mínimo: subdominios → live hosts → URLs → parámetros → tecnologías. Con herramientas gratuitas (subfinder, dnsx, httpx, katana, waybackurls, ffuf) puedes mapear un target en 1-2 horas y exponer endpoints olvidados que nadie audita.
Por qué importa el recon
Los hunters que sólo testean app.target.tld compiten con miles de personas. Los que mapean legacy.target.tld, staging-old.target.tld, internal.api.target.tld encuentran flujos que nadie ha tocado en años.
El recon es el multiplicador del tiempo: sin él, repites el trabajo que mil personas ya hicieron en el dominio principal.
Pipeline en 5 pasos
[Step 1] Subdomain enumeration
↓
[Step 2] Live host discovery
↓
[Step 3] URL crawling + historical
↓
[Step 4] Parameter discovery
↓
[Step 5] Tech fingerprinting + categorización
Step 1 — Subdomain enumeration
# Passive sources
subfinder -d target.tld -all -silent > subs.txt
# Pasivos extra (Chaos, AlienVault OTX, crt.sh)
chaos -d target.tld -silent >> subs.txt
# Pasivos manuales
curl -s "https://crt.sh/?q=%25.target.tld&output=json" | jq -r '.[].name_value' | sort -u >> subs.txt
Combinar 3-4 fuentes pasivas suele encontrar 30-50% más subdominios que una sola.
Step 2 — Live host discovery
# DNS resolution
dnsx -l subs.txt -silent -a -resp | tee resolved.txt
# HTTP probing
httpx -l subs.txt -silent -title -tech-detect -status-code -follow-redirects -o live.txt
Output: subdominios vivos con código de estado, título y stack detectado. Útil para priorizar (un subdominio que responde 200 con título "Internal API Staging" es más interesante que uno con 404).
Step 3 — URL crawling
# Active crawling
katana -list live.txt -d 3 -jc -o crawled.txt
# Historical (Wayback + commoncrawl + AlienVault)
cat live.txt | waybackurls > wayback.txt
cat live.txt | gau --threads 5 > gau.txt
# Combine and dedupe
cat crawled.txt wayback.txt gau.txt | sort -u > all_urls.txt
waybackurls y gau traen URLs históricas — endpoints que existieron en el pasado y a veces siguen vivos sin estar enlazados desde ningún sitio.
Step 4 — Parameter discovery
# De URLs históricas
cat all_urls.txt | unfurl format "%s://%d%p?%q" | grep "?" | sort -u > params.txt
# Parameter mining con Arjun (uno por URL específica)
arjun -u https://api.target.tld/v1/users -m GET --stable
# Param-Miner (Burp extension) para headers ocultos y parámetros backend
Los parámetros que aparecen en wayback pero no en la versión actual del site son gold: el backend a veces sigue procesándolos sin que estén documentados.
Step 5 — Tech fingerprinting + categorización
# Detect tech stack
httpx -l live.txt -tech-detect -title -status-code -web-server -o tech.txt
# JS analysis para encontrar endpoints internos + secretos
cat live.txt | hakrawler -d 2 -plain | grep '\.js$' > js_files.txt
cat js_files.txt | xargs -I{} curl -s {} | grep -oE 'https?://[^"]*' >> hidden_urls.txt
# Buscar API keys en JS
cat js_files.txt | xargs -I{} curl -s {} | grep -E '(api[_-]?key|secret|token|password)' -i
SecretFinder y LinkFinder automatizan la búsqueda de endpoints y secretos en JS bundle.
Patrones de hunting tras el recon
Una vez tienes el mapa, prioriza:
| Tipo de subdominio | Probabilidad de hallazgo |
|---|---|
staging.*, dev.*, legacy.* | Alta (auth débil, debug endpoints) |
internal.*, admin.* | Alta (auth bypass, IDOR) |
api.*, *.api.* | Media-alta (broken access control, GraphQL) |
cdn.*, static.* | Baja (subdomain takeover, info disclosure) |
Subdominios .zip, .tar.gz en URLs | Crítica (source code leak) |
Recon continuo
Programas que llevan años abiertos están muy auditados. La diferencia la hace monitoreo continuo:
subfindercron diario → diff de subdominios → alertar nuevos.httpxsemanal sobre dominios live → detectar cambios de status/title.- GitHub watcher → monitorear
target.tldkeywords en commits públicos. nucleicon templates específicos sobre live hosts → escaneo de vulns conocidas.
Una vulnerabilidad lanzada hace 2 horas en un nuevo subdominio sin auditar es €1.000 fáciles para quien la encuentre primero.
Herramientas mínimas (gratis)
subfinder · dnsx · httpx · katana · gau · waybackurls
arjun · ffuf · nuclei · gf · hakrawler
Todas están en ProjectDiscovery / GitHub. Se instalan con go install o pip.
Recon ético — qué NO hacer
- No DoS. Throttling agresivo en cada herramienta (
-rate 50o menos). - No salirse del scope. Si el programa dice
*.target.tldexcluyendocustomer.*, respeta. - No bruteforce de auth. Recon es enumeración pasiva, no ataque activo.
- No subir nada a Internet (BurpCollaborator está bien para PoCs, pero no fuerces a víctimas reales a hits inducidos).
Labs relacionados
Practica el pipeline completo de recon sobre targets controlados: labs de recon y enumeración.
Practica esto en un lab
Recon
Sigue aprendiendo · cuenta gratis
Guarda tu progreso, desbloquea payloads avanzados y rankea tus flags.
Artículos relacionados
¿Qué es bug bounty? Guía completa para entender cómo funciona
Bug bounty explicado: programas, plataformas, tipos de vulnerabilidades, cómo se paga, ratios de duplicados y por qué algunos hunters viven de esto.
Análisis JavaScript client-side — endpoints, secrets y source maps
Extracción de endpoints ocultos de JS bundles, detección de secrets, análisis de source maps y dynamic instrumentation con Frida para auditar lógica client-side.
Recon completo — subdominios, fingerprinting, ASN y origin IPs
Metodología práctica de recon para bug bounty: enumeración pasiva/activa de subdominios, fingerprinting, ASN mapping, origin IPs bypass WAF y mining de git history.