subfinder: descubrimiento pasivo de subdominios para recon de pentest
subfinder · MIT
subfinder enumera subdominios de forma pasiva. Nunca toca el objetivo: consulta fuentes públicas — logs de certificate transparency, proveedores de DNS pasivo, índices de búsqueda — y devuelve los hostnames que esas fuentes ya conocen. Esa propiedad es lo que lo hace seguro para ejecutar primero, antes de confirmar el alcance y antes de autorizar cualquier acción activa.
Instalación
go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest Hay releases binarios en la página de releases del repositorio, si prefieres no compilar. En Kali y derivados de Debian apt install subfinder también funciona, aunque la versión empaquetada va por detrás del upstream.
La mayoría de las fuentes pasivas necesitan claves de API para ser útiles. Sin ellas subfinder igual funciona, pero sobre una fracción de los datos:
mkdir -p ~/.config/subfinder
$EDITOR ~/.config/subfinder/provider-config.yaml Comandos principales
# un dominio, lista simple de hosts en stdout
subfinder -d example.com -silent
# líneas JSON, con la fuente que produjo cada host
subfinder -d example.com -oJ -o subs.jsonl -cs
# muchas raíces a la vez, todas las fuentes, recursivo
subfinder -dL roots.txt -all -recursive -o subs.txt Flags que conviene conocer: -silent suprime el banner para que la salida fluya limpia en un pipe, -all habilita todas las fuentes configuradas (más lento, más amplio), -cs registra qué fuente encontró cada host, y -nW descarta resultados de wildcard.
Salida
Con -oJ cada línea es un objeto JSON:
{"host":"api.example.com","input":"example.com","source":"crtsh"} Sin eso obtienes un hostname por línea, que es lo que quieres al encadenar directamente hacia dnsx o httpx.
Dónde encaja en Tandera
subfinder se ejecuta en la fase de discovery tanto de recon_web_lite como de recon_web_full. Es uno de los tres productores pasivos de subdominios que Tandera agenda — findomain y cero son los otros — y sus resultados se combinan y deduplican antes de que cualquier etapa posterior los vea. Ejecutar tres productores es deliberado: las fuentes pasivas discrepan, y la unión es notablemente mayor que la salida de cualquier herramienta por sí sola.
Por ser no intrusivo, subfinder está permitido dentro de recon_web_lite, que tiene un techo de riesgo NonIntrusive.
Uso en un pentest
La enumeración pasiva es lo primero que haces y lo último en lo que confías. Dos hábitos importan:
Todo lo que devuelve es una afirmación, no un activo. Certificate transparency recuerda hostnames dados de baja hace años. Resuelve la lista (dnsx) y sondéala (httpx) antes de tratar cualquier cosa como dentro del alcance.
Contrasta los resultados con tu documento de alcance antes de sondear. El descubrimiento pasivo trae rutinariamente hostnames de otra unidad de negocio, de un socio o de una adquisición que nunca estuvo en el engagement. Encontrarlos está bien. Escanearlos no.
La cadena de apertura estándar:
subfinder -d example.com -silent
| dnsx -silent -a -resp
| httpx -silent -title -tech-detect -status-code