Bash, el pegamento que ahorra tiempo Bash, el pegamento que ahorra tiempo

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

Terminal window
domain="example.com"
echo $domain

Evita bugs, usa siempre comillas cuando haya strings o rutas

Terminal window
"$domain"

2. Pipes (|) – el alma del recon

Los pipes permiten que la salida de un comando sea la entrada del siguiente.

Terminal window
cat subs.txt | sort -u | dnsx | httpx

Cada herramienta hace una cosa bien. Bash las conecta.

3. Redirecciones (>, >>)

Terminal window
command > output.txt # sobrescribe
command >> output.txt # añade

En recon:

  • Guarda resultados intermedios

  • Permite auditar lo que hiciste

  • Hace el proceso reproducible

4. Scripts ejecutables

Siempre empieza tus scripts con shebang

#!/bin/bash

Y luego:

Terminal window
chmod +x recon.sh
./recon.sh example.com

Tips 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

Terminal window
set -euo pipefail

2. Valida argumentos

Terminal window
if [ -z "${1:-}" ]; then
echo "Uso: $0 <dominio>"
exit 1
fi

3. Crea estructura de carpetas por target

Orden = productividad.

Terminal window
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/bash
set -euo pipefail
if [ -z "${1:-}" ]; then
echo "Uso: $0 <dominio>"
exit 1
fi
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