# dnsx: resolución DNS y enumeración de registros en recon

> Cómo instalar y ejecutar dnsx, cómo se ve su salida de registros, y por qué Tandera resuelve cada hostname descubierto antes de sondearlo.

`dnsx` es un kit DNS rápido: resuelve hostnames, extrae registros y filtra una lista a lo que realmente existe. En una cadena de recon es el filtro entre el descubrimiento pasivo, que sobre-reporta, y el sondeo activo, que solo quieres apuntar a hosts reales.

## Instalación

```bash
go install -v github.com/projectdiscovery/dnsx/cmd/dnsx@latest
```

## Comandos principales

```bash
# conserva solo hostnames que resuelven
dnsx -l hosts.txt -silent

# resuelve y muestra los 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 una wordlist contra una raíz
dnsx -d example.com -w words.txt -silent
```

## Salida

```json
{"host":"api.example.com","a":["93.184.216.34"],"cname":["lb.example-cdn.net"],
 "status_code":"NOERROR"}
```

## Dónde encaja en Tandera

dnsx se ejecuta en **discovery** en `recon_web_lite` y `recon_web_full`, justo después de los productores pasivos de subdominios. Su papel en el pipeline es doble: descartar hostnames que ya no resuelven y capturar las cadenas de CNAME que el análisis de takeover lee después.

Ese segundo papel importa. El enriquecimiento `takeover` de Tandera compara objetivos de CNAME contra una lista de fingerprints de servicios "colgables" — la salida de dnsx es su entrada.

## Uso en un pentest

**Los CNAME son donde vive el subdomain takeover.** Un hostname que hace CNAME a un servicio que ya no existe es el finding clásico. Extrae los CNAME explícitamente (`-cname -resp`) en lugar de depender solo de los registros A, y busca objetivos que apunten a buckets de almacenamiento, apps PaaS y endpoints de CDN.

**Cuidado con el DNS wildcard.** Si cualquier cadena aleatoria resuelve, tu lista de subdominios es ficción. Pruébalo directamente:

```bash
echo "definitely-not-real-$RANDOM.example.com" | dnsx -silent -a -resp
```

Si eso devuelve una dirección, trata toda la enumeración como sospechosa y filtra con `-wd example.com` para quitar el ruido de wildcard.

**Los registros TXT filtran.** Las entradas SPF y DMARC nombran rutinariamente servicios de terceros y hostnames internos que la organización nunca pretendió publicar. `dnsx -txt -resp` sobre el dominio raíz son treinta segundos bien invertidos.

---

Canonical: https://tandera.io/es/tools/dnsx
This page as markdown: https://tandera.io/es/tools/dnsx.md
Index for agents: https://tandera.io/llms.txt

Every page here is also available as markdown: append `.md` to the path (e.g. `/recon.md`, `/index.md` for this homepage, `/blog/<slug>.md`), or request the canonical path with `Accept: text/markdown`.
