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.
La checklist que repaso en cada objetivo nuevo
47 comprobaciones ordenadas por coste: primero lo que te puede meter en un lío, luego lo barato, y al final lo caro — que es donde están los bounties grandes. Te la mando al correo ahora mismo.
Te das de baja en un clic, desde cualquier correo.
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.
