Enumeración de subdominios: Cómo descubrir la superficie de ataque

La enumeración de subdominios tiene como objetivo encontrar subdominios dentro de un dominio dado.

Esta estrategia es un paso importante en la fase de reconocimiento de un proyecto de hacking ético. Proporciona información útil para encontrar más puntos vulnerables para explotar.

En esta guía, aprenderá por qué realizar una enumeración de subdominios, las técnicas para hacerlo y las herramientas para realizar el trabajo.

¿Qué es un subdominio?

Los subdominios actúan como una extensión de un dominio para ayudar a organizar y navegar por diferentes secciones.

Un subdominio es un dominio que forma parte de un dominio más grande. Podemos crearlo simplemente agregando una parte adicional a un nombre de dominio.

Por ejemplo, «foro.dominio.com» es un subdominio de «dominio.com».

Los subdominios permiten hacer otro sitio independiente, pero aún usando el dominio raíz.

¿Por qué buscar subdominios?

En un hackeo ético, la enumeración de subdominios es una parte fundamental del reconocimiento, porque es probable que los subdominios contengan más vulnerabilidades que el dominio raíz.

Muchas empresas suelen esforzarse mucho en hacer que el dominio raíz sea lo más seguro posible. Sin embargo, olvidan los subdominios.

Los subdominios generalmente indican diferentes rangos de redes externas y apuntan a aplicaciones menos conocidas o no públicas que están dentro del alcance de nuestra evaluación de seguridad.

Por esta razón, encontrar aplicaciones que se ejecutan en subdominios ocultos u olvidados puede llevar a descubrir vulnerabilidades, ya que pueden ser menos seguras que las aplicaciones oficiales.

Estrategias para la enumeración de subdominios

Las principales estrategias para encontrar subdominios para un dominio determinado son las siguientes.

Zonas DNS

La forma más fácil es encontrar un servidor DNS que exponga una zona DNS completa. Sin embargo, los administradores de sistemas no suelen cometer este tipo de errores de configuración. Por lo tanto, es necesario probar otras estrategias también.

Diccionario de subdominios

Otra opción es usar un diccionario de nombres de subdominios comunes e intentar resolverlos. Este método es eficaz en algunos casos. Sin embargo, no incluye subdominios con nombres extraños.

Los motores de búsqueda

Además, es posible usar un motor de búsqueda para encontrar subdominios o rastrear el dominio de segundo nivel para encontrar enlaces a subdominios.

Examinar certificados

Finalmente, Subject Alternative Name (SAN) es una extensión en los certificados x.509 que proporciona diferentes nombres del sujeto en un certificado. Las empresas a menudo generan un certificado para múltiples subdominios para ahorrar dinero.

Puede usar herramientas automatizadas para examinar estos certificados y encontrar subdominios.

Herramientas para la enumeración de subdominios

En esta sección, presentamos las herramientas más populares para realizar la enumeración de subdominios.

1. Google Hacking

Las técnicas de hacking de Google pueden usarse para encontrar subdominios de un nombre de dominio. Esto puede devolver la lista completa de subdominios indexados de Google. Por ejemplo, puede usar el sitio de comando para encontrar los subdominios que Google u otros motores de búsqueda han encontrado. En este caso, utilizamos el dominio “dominio.com”.

site:dominio.com 

Podemos usar varios operadores para refinar las búsqueda. Por ejemplo, el operador menos sirve para excluir subdominios que no nos interesan:

site:*.dominio.com  -www -store -jobs -forum

2. Transferencia de zona

Se utiliza una transferencia de zona para copiar el contenido de una zona DNS entre servidores primarios y secundarios.

La mejor práctica aconseja a los administradores que permitan solicitudes AXFR solo desde servidores DNS autorizados. Por lo tanto, esta técnica probablemente no funcionará, a menos que el servidor no esté configurado correctamente.

La técnica más simple y básica para probar esto es probar una solicitud AXFR directamente en el servidor DNS:

dig axfr ejemplo.com @ns.example.com

3. Sublista3r

Sublist3r es una herramienta de Python para enumerar subdominios de un sitio web utilizando un motor de búsqueda. Utiliza resultados de muchas fuentes diferentes, incluidos Google, Yahoo, Bing, Baidu, Ask, Netcraft, Virustotal, ThreatCrowd, DNSdumpster y ReverseDNS.

Puede encontrar la guía de instalación y uso en su GitHub .

Si bien los datos son correctos en la mayoría de los casos, es posible que encuentre subdominios que no se pueden resolver. Esto se debe a que Sublist3r se basa en gran medida en datos pasivos y no válida si los subdominios encontrados realmente existen.

Este escáner de subdominios también incluye una característica genial que solo escanea subdominios que tienen ciertos puertos abiertos. Por ejemplo:

python sublist3r.py -d dominio.com -p 80,443

Esta solicitud realizará una enumeración de subdominio y filtrará solo aquellos hosts con 80 y 443 puertos abiertos.

4. AltDNS

AltDNS es una herramienta de descubrimiento de subdominios basada en alteraciones y permutaciones.

Puedes usar tu propia lista de palabras o la predeterminada.

5. SubBrute – Subdominio Bruteforcer

SubBrute es una herramienta precisa de enumeración de subdominios. Utiliza resolutores abiertos como una especie de proxy para eludir la limitación de velocidad de DNS. SubBrute no envía tráfico a los servidores de nombres directamente.

También puede funcionar como un spider para DNS que rastrea recursivamente los registros DNS enumerados, lo que lo convierte en un conjunto de herramientas completo basado en terminal.

6. Knock

Knock es una herramienta de Python para enumerar subdominios usando una lista de palabras. Puedes encontrar una guía de instalación y ejemplos en su GitHub.

7. DNSRecon

La herramienta DNSRecon está disponible en Kali Linux y es una excelente herramienta para verificar subdominios de fuerza bruta.

También proporciona muchas otras funciones, como verificar todos los registros NS del DNS para realizar transferencias de zona, enumerar registros DNS, búsqueda de registros PTR, entre otros.

8. Fierce

Fierce realiza técnicas de descubrimiento de fuerza bruta para generar listas de subdominios, la mayoría de las veces combinadas con listas de palabras.

9. Amass

Amass utiliza una variedad de técnicas de mapeo de subdominios que incluyen scrapping de fuentes de datos, fuerza bruta recursiva, el crawling de archivos web, permutación o alteración de nombres, barrido de DNS inverso y aprendizaje automático para obtener la lista completa de subdominios.

Puede encontrar una guía de instalación y ejemplos de uso en GitHub.

10. Aquatone

Aquatone-discover tarda un poco en ejecutarse, pero es bastante robusto y proporciona muchos resultados.

Puedes descubrir subdominios mediante el uso de fuentes abiertas, así como los enfoques más comunes de fuerza bruta del diccionario de subdominios.

3. Herramientas web

En esta sección encontrarás una lista de herramientas web para encontrar subdominios.

3.1. DNS Dumpster

DNSDumpster es una herramienta de investigación de dominios para encontrar información relacionada con el host que ha sido creada por la empresa HackerTarget.com.

Proporciona información sobre el subdominio, pero también sobre el servidor DNS, el registro MX y el registro TXT.

3.2. Censys.io

Censys.io es una interfaz para un subconjunto de datos publicados por Scans.io, que es un depósito de datos de escaneo en Internet. Esta herramienta permite buscar palabras clave en los certificados y así revelar potencialmente nuevos subdominios.

También hay una herramienta en Github para encontrar automáticamente subdominios con certificados Censys.io.

3.3. crt.sh

Crt.sh es un servicio en línea para la búsqueda de certificados proporcionado por COMODO. Utiliza un conjunto de datos diferente al de Censys, pero el principio es el mismo: encontrar subdominios en certificados.

Vale la pena señalar que, aunque algunos dominios responden con NXDOMAIN, aún pueden existir en la red interna. En ocasiones, los administradores reutilizan los certificados para servidores públicos en sus servidores de intranet.

3.4. Pentest-tools

Pentest-tools proporciona una herramienta para buscar subdominios. Utiliza múltiples métodos, como la transferencia de zona DNS, la enumeración de DNS basada en la lista de palabras y el motor de búsqueda público, el análisis de enlaces HTML, el DNS inverso en los rangos de IP de destino, etc.

3.5. NMMAPPER

NMMAPPER es un buscador de subdominios en línea que utiliza las herramientas: Sublist3r, DNScan, Anubis, Amass, Nmap-dns-brute.nse, Lepus, Findomain, Censys.

3.6. Spyse

Spyse es una herramienta en línea que le permite descubrir subdominios. Cuenta con otras herramientas como búsqueda de IP, escáner de puertos, búsqueda de DNS, MX, SSL y NS, whois, entre otras.

3.7. ImmuniWeb

Finalmente, ImmuniWeb proporciona muchas herramientas de escaneo, en particular, SSLScan permite encontrar subdominios mediante la inspección de certificados.