Cómo descubrir todos los dominios que usa un sitio web o una aplicación: guía de captura de tráfico y DevTools

Cómo descubrir todos los dominios que usa un sitio web o una aplicación: guía de captura de tráfico y DevTools

Cuando introduces la dirección de un sitio en la barra del navegador parece sencillo. Hay un dominio, entras en él y todo funciona. En realidad, cualquier sitio moderno es una infraestructura completa, a menudo distribuida en decenas de dominios y subdominios. En este texto explicaré cómo encontrar absolutamente todos los dominios con los que trabaja un sitio o una aplicación, ya sea una página simple o algo más complejo, como YouTube.

¿Por qué buscar dominios?

Supongamos que investigan la seguridad de una aplicación web. O quieren entender adónde se filtran los datos. Tal vez sea curiosidad técnica. En cualquier caso, si se quiere ver el panorama completo es importante conocer no solo el dominio principal, sino todos los asociados: desde API y CDN hasta analítica de terceros y rastreadores publicitarios.

Qué hay que saber antes de empezar

Antes de pasar a la práctica, un par de observaciones útiles:

  • Cuanto más interactúen con el sitio, más dominios revelará. Simplemente abrir la página principal no basta.
  • La mayoría de sitios añaden analítica, redes publicitarias y API de geolocalización. Esos dominios aparecen en la lista, pero no están directamente relacionados con el sitio.
  • La caché DNS puede interferir: usen modo incógnito y borren la caché, especialmente si los dominios no aparecen.

Comandos para limpiar la caché DNS:

  • Windows: ipconfig /flushdns
  • Ubuntu: sudo resolvectl flush-caches

Además: asegúrense de que el navegador tenga desactivado DoH (DNS over HTTPS). De lo contrario, no será posible analizar las consultas DNS a través de la interfaz de red: se cifrarán y no se verán.

DevTools en el navegador: inicio rápido

Método manual

Esta es la forma más simple de saber qué dominios visita un sitio al cargarlo en el navegador:

  1. Abrir una nueva pestaña en Chrome o Firefox
  2. Abrir DevTools: F12 o Ctrl+Shift+I
  3. Ir a la pestaña Red
  4. Ir al sitio y observar la columna Dominio

En sitios sencillos verán uno o dos dominios: el principal y, quizá, un subdominio para la API o la estática. En sitios complejos hay un bosque de peticiones. Por ejemplo: YouTube genera multitud de direcciones desde el inicio.

Automatización de la recopilación de dominios a través de la Consola

Para no copiar manualmente cada dominio, usamos un pequeño script:

window.domains = [...new Set(performance.getEntriesByType('resource').map(r => (new URL(r.name)).hostname))];
console.log(domains);

DevTools advertirá que pegar scripts es inseguro: escriban permitir pegar y pulsen Enter.

Obtenemos un arreglo de todos los dominios únicos. Por ejemplo, para YouTube puede verse así:

[
  "googleads.g.doubleclick.net",
  "yt3.ggpht.com",
  "static.doubleclick.net",
  "rr1---sn-gvnuxaxjvh-c35z.googlevideo.com",
  "www.youtube.com",
  "accounts.youtube.com",
  "play.google.com",
  "www.gstatic.com",
  "studio.youtube.com"
]

Analizamos:

  • doubleclick — publicidad, irrelevante
  • googlevideo — necesario (transmisión de video)
  • gstatic — entrega scripts y fuentes, puede ser útil
  • accounts, studio — interfaces del panel de YouTube, necesarios
  • play.google — probablemente no relacionado con el sitio en sí

Tengan en cuenta: el script no es perfecto. Algunos dominios, como fonts.gstatic.com, podrían no aparecer en la lista. Por eso sigue siendo útil revisar manualmente la pestaña Red.

Android: PCAPdroid

Para aplicaciones móviles DevTools no es adecuado. En cambio existe una excelente aplicación: PCAPdroid.

Funciona como una VPN local y puede interceptar el tráfico de una aplicación concreta:

  1. Instalar PCAPdroid (disponible en Google Play, F-Droid, GitHub)
  2. Seleccionar la aplicación o el navegador deseado
  3. Pulsar Listo y pasar a la pestaña Conexión
  4. Realizar las acciones necesarias en la app
  5. Guardar el archivo CSV desde el menú
  6. Transferirlo al PC — por ejemplo, mediante LocalSend

Procesamiento del archivo

En Linux/macOS:

awk -F ',' '{print $10}' PCAPdroid_DATE.csv | sort -u

En Windows con PowerShell:

Import-Csv -Path "PCAPdroid_DATE.csv" | Select-Object -ExpandProperty Info | Sort-Object | Get-Unique

iOS: Network Sniffer

La situación en iOS es algo más complicada. La aplicación que mejor funciona es Network Sniffer.

  1. Aseguren que HTTP/HTTPS Capture esté activado
  2. Presionar Iniciar
  3. Abrir la aplicación deseada y usarla
  4. Presionar Detener
  5. La pestaña Registro mostrará los dominios
  6. El botón ???? — lista alfabética de dominios

La función de exportar a HAR es de pago, pero la versión básica suele ser suficiente. Los registros se pueden reiniciar en la configuración de la app.

Windows: Microsoft Network Monitor y Wireshark

DevTools está bien, pero hay métodos más universales. Uno de ellos es Microsoft Network Monitor:

  1. Ejecutar Nueva captura → Iniciar
  2. Abrir la aplicación deseada
  3. Filtro: dns
  4. Ver la Descripción — ahí aparecen las consultas a dominios

Una herramienta más potente es Wireshark. Su versión de línea de comandos, tshark, es especialmente útil para automatizar.

tshark -f "src port 53" -n -T fields -e dns.qry.name -i 9

Antes conviene añadir la ruta de tshark al PATH mediante PowerShell:

[System.Environment]::SetEnvironmentVariable("PATH", $env:PATH + "C:Program FilesWireshark", [System.EnvironmentVariableTarget]::Machine)

Linux y macOS: tshark — nuestra herramienta principal

En estos sistemas basta con instalar Wireshark o simplemente tshark:

sudo tshark -f "src port 53" -n -T fields -e dns.qry.name

Se puede indicar la interfaz explícitamente:

sudo tshark -f "src port 53" -n -T fields -e dns.qry.name -i eth0

Para guardar en un archivo:

sudo tshark -f "src port 53" -n -T fields -e dns.qry.name > domains

Y luego ordenar:

sort -u domains

Si no se puede acceder al interior del dispositivo

¿Qué hacer si tienen una tetera inteligente o una bombilla y lo único que tienen es la dirección IP en la red local?

OpenWrt

En routers con OpenWrt se puede instalar tcpdump:

opkg update && opkg install tcpdump

Ver las consultas DNS del dispositivo:

tcpdump -i br-lan host 192.168.50.63 and port 53

RouterOS

En MikroTik se usa el comando torch:

/tool torch interface=bridge-local src-address=192.168.50.199 port=53

Importante: si el dispositivo usa DoH o DoT no verán las consultas DNS. Entonces habrá que analizar todo el tráfico y revisar SNI y otras señales.

Conclusión

En el artículo se han repasado prácticamente todas las maneras de extraer la lista de dominios a los que accede un sitio o una aplicación. Desde DevTools hasta el análisis del tráfico de una bombilla en OpenWrt. Cada método tiene sus ventajas y limitaciones, pero combinándolos se puede obtener la imagen más completa posible.

Personalmente suelo usar tshark y PCAPdroid. Para una vista rápida, el viejo y confiable DevTools. Si conocen otros métodos interesantes, cuéntenlos. Y si no, guarden este artículo en marcadores; puede ser útil.

Alt text