Bash, el pegamento que ahorra tiempo
Automatizando el reconocimiento pasivo en bug bounty con Bash
Cuando empiezas en bug bounty, una de las primeras verdades incómodas que descubres es esta: el reconocimiento consume más tiempo que la explotación.
Aquí es donde Bash se convierte en una de las herramientas más infravaloradas pero más poderosas del arsenal de un hunter. No porque sea moderno o bonito, sino porque conecta herramientas, automatiza flujos y te permite repetir procesos sin pensar.
En este post vamos a:
-
Entender qué es Bash y por qué sigue siendo clave
-
Ver tips y aspectos esenciales para escribir scripts eficientes
-
Construir un pipeline real de reconocimiento pasivo listo para bug bounty
-
Nada de teoría vacía. Todo es usable desde el día uno.
¿Qué es Bash y por qué usarlo en bug bounty?
Bash (Bourne Again Shell) es un intérprete de comandos que permite:
-
Ejecutar comandos
-
Encadenarlos
-
Automatizarlos mediante scripts
En bug bounty, Bash no compite con Python o Go. Los complementa.
¿Por qué Bash es ideal para recon?
-
Es rápido de escribir
-
Vive en la terminal (donde ya trabajas)
-
Encadena herramientas existentes sin reinventar nada
-
Es perfecto para pipelines
Bash es el pegamento entre subfinder, amass, httpx, dnsx, nuclei, etc.
Conceptos básicos de Bash que debes dominar
Antes de escribir scripts de recon, hay 4 pilares que debes entender bien.
1. Variables
domain="example.com"echo $domainEvita bugs, usa siempre comillas cuando haya strings o rutas
"$domain"2. Pipes (|) – el alma del recon
Los pipes permiten que la salida de un comando sea la entrada del siguiente.
cat subs.txt | sort -u | dnsx | httpxCada herramienta hace una cosa bien. Bash las conecta.
3. Redirecciones (>, >>)
command > output.txt # sobrescribecommand >> output.txt # añadeEn recon:
-
Guarda resultados intermedios
-
Permite auditar lo que hiciste
-
Hace el proceso reproducible
4. Scripts ejecutables
Siempre empieza tus scripts con shebang
#!/bin/bashY luego:
chmod +x recon.sh./recon.sh example.comTips clave para escribir scripts Bash eficientes
Estos puntos marcan la diferencia entre un script amateur y uno profesional.
1. Usa set -euo pipefail
Menos falsos positivos, más control.
Qué hace:
-
-e → el script se detiene si algo falla
-
-u → error si usas variables no definidas
-
pipefail → detecta errores en pipes
set -euo pipefail2. Valida argumentos
if [ -z "${1:-}" ]; then echo "Uso: $0 <dominio>" exit 1fi3. Crea estructura de carpetas por target
Orden = productividad.
recon/ └── example.com/ ├── subs/ ├── alive/ └── raw/4. Usa herramientas silenciosas (-silent)
Menos ruido = mejor automatización.
Reconocimiento pasivo: enfoque y objetivos
El recon pasivo busca información sin interactuar agresivamente con el target.
Objetivos:
-
Enumerar subdominios
-
Resolver DNS
-
Identificar servicios web activos
Todo esto antes de escanear o atacar.
Pipeline de reconocimiento pasivo con Bash
Vamos a construir un script real, no de laboratorio.
Herramientas usadas
-
subfinder
-
assetfinder
-
dnsx
-
httpx
Script completo: recon pasivo automatizado
#!/bin/bashset -euo pipefail
if [ -z "${1:-}" ]; then echo "Uso: $0 <dominio>" exit 1fi
domain="$1"base_dir="recon/$domain"
mkdir -p "$base_dir"/{subs,alive,raw}
echo "[+] Enumerando subdominios..."
subfinder -d "$domain" -silent > "$base_dir/raw/subfinder.txt"assetfinder --subs-only "$domain" > "$base_dir/raw/assetfinder.txt"
cat "$base_dir/raw/"*.txt | sort -u > "$base_dir/subs/all.txt"
echo "[+] Resolviendo DNS y detectando hosts vivos..."
dnsx -l "$base_dir/subs/all.txt" -silent \ | httpx -silent \ > "$base_dir/alive/http.txt"
echo "[+] Recon pasivo finalizado"echo "[+] Resultados en: $base_dir"¿Qué obtienes al final?
-
Subdominios únicos
-
Hosts con DNS válido
-
Servicios HTTP activos
Conclusión
Bash no está obsoleto, es el pegamento perfecto para automatizar tus herramientas.
En bug bounty, Bash:
-
Automatiza
-
Ahorra tiempo
-
Te hace consistente
Si dominas Bash para recon, ahorras tiempo automatizando tareas repetitivas para enfocarte en otras tareas de análisis manual.
← Back to blog