dnsx: resolução DNS e enumeração de registros no recon
dnsx · MIT
O dnsx é um kit DNS rápido: resolve hostnames, extrai registros e filtra uma lista para o que de fato existe. Numa cadeia de recon ele é o filtro entre a descoberta passiva, que super-reporta, e a sondagem ativa, que você só quer apontar para hosts reais.
Instalação
go install -v github.com/projectdiscovery/dnsx/cmd/dnsx@latest Comandos principais
# mantém só hostnames que resolvem
dnsx -l hosts.txt -silent
# resolve e mostra os registros A
dnsx -l hosts.txt -silent -a -resp
# tipos de registro específicos
dnsx -l hosts.txt -silent -cname -resp
dnsx -l roots.txt -silent -mx -resp
dnsx -l roots.txt -silent -txt -resp
# JSON para parsear
dnsx -l hosts.txt -json -o dns.jsonl -a -aaaa -cname
# brute-force de uma wordlist contra uma raiz
dnsx -d example.com -w words.txt -silent Saída
{"host":"api.example.com","a":["93.184.216.34"],"cname":["lb.example-cdn.net"],
"status_code":"NOERROR"} Onde ele entra no Tandera
O dnsx roda em discovery no recon_web_lite e no recon_web_full, logo depois dos produtores passivos de subdomínio. Seu papel no pipeline é duplo: descartar hostnames que não resolvem mais e capturar as cadeias de CNAME que a análise de takeover lê depois.
Esse segundo papel importa. O enriquecimento takeover do Tandera compara alvos de CNAME contra uma lista de fingerprints de serviços “dangláveis” — a saída do dnsx é a entrada dele.
Usando em um pentest
CNAMEs são onde vive o subdomain takeover. Um hostname que faz CNAME para um serviço que não existe mais é o finding clássico. Extraia os CNAMEs explicitamente (-cname -resp) em vez de depender só dos registros A, e procure alvos apontando para buckets de storage, apps PaaS e endpoints de CDN.
Cuidado com DNS wildcard. Se qualquer string aleatória resolve, sua lista de subdomínios é ficção. Teste diretamente:
echo "definitely-not-real-$RANDOM.example.com" | dnsx -silent -a -resp Se isso retornar um endereço, trate toda a enumeração como suspeita e filtre com -wd example.com para remover o ruído de wildcard.
Registros TXT vazam. Entradas SPF e DMARC rotineiramente citam serviços de terceiros e hostnames internos que a organização nunca pretendeu publicar. dnsx -txt -resp no domínio raiz são trinta segundos bem gastos.