subfinder: descoberta passiva de subdomínios para recon de pentest
subfinder · MIT
O subfinder enumera subdomínios de forma passiva. Ele nunca toca no alvo: consulta fontes públicas — logs de certificate transparency, provedores de DNS passivo, índices de busca — e devolve os hostnames que essas fontes já conhecem. É essa propriedade que o torna seguro para rodar primeiro, antes do escopo ser confirmado e antes de qualquer coisa ativa ser autorizada.
Instalação
go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest Há releases binários na página de releases do repositório, caso você prefira não compilar. Em Kali e derivados do Debian o apt install subfinder também funciona, embora a versão empacotada fique atrás do upstream.
A maioria das fontes passivas precisa de chaves de API para ser útil. Sem elas o subfinder ainda roda, mas sobre uma fração dos dados:
mkdir -p ~/.config/subfinder
$EDITOR ~/.config/subfinder/provider-config.yaml Comandos principais
# um domínio, lista simples de hosts no stdout
subfinder -d example.com -silent
# linhas JSON, com a fonte que produziu cada host
subfinder -d example.com -oJ -o subs.jsonl -cs
# muitas raízes de uma vez, todas as fontes, recursivo
subfinder -dL roots.txt -all -recursive -o subs.txt Flags que valem conhecer: -silent suprime o banner para a saída fluir limpa em pipe, -all habilita todas as fontes configuradas (mais lento, mais amplo), -cs registra qual fonte encontrou cada host, e -nW descarta resultados de wildcard.
Saída
Com -oJ cada linha é um objeto JSON:
{"host":"api.example.com","input":"example.com","source":"crtsh"} Sem isso você recebe um hostname por linha, que é o que você quer ao encadear direto em dnsx ou httpx.
Onde ele entra no Tandera
O subfinder roda na fase de discovery tanto do recon_web_lite quanto do recon_web_full. É um dos três produtores passivos de subdomínio que o Tandera agenda — findomain e cero são os outros — e seus resultados são combinados e deduplicados antes de qualquer etapa seguinte vê-los. Rodar três produtores é deliberado: fontes passivas divergem, e a união é significativamente maior do que a saída de qualquer ferramenta isolada.
Por ser não intrusivo, o subfinder é permitido dentro do recon_web_lite, que tem teto de risco NonIntrusive.
Usando em um pentest
Enumeração passiva é a primeira coisa que você faz e a última em que você confia. Dois hábitos importam:
Tudo que ele retorna é uma alegação, não um ativo. Certificate transparency lembra de hostnames desativados há anos. Resolva a lista (dnsx) e sonde-a (httpx) antes de tratar qualquer coisa como dentro do escopo.
Confira os resultados contra seu documento de escopo antes de sondar. A descoberta passiva rotineiramente traz hostnames de outra unidade de negócio, de um parceiro ou de uma aquisição que nunca esteve no engajamento. Encontrá-los é normal. Escaneá-los não é.
A cadeia de abertura padrão:
subfinder -d example.com -silent
| dnsx -silent -a -resp
| httpx -silent -title -tech-detect -status-code