Subdomain Takeover explicación y consejos
Subdomain Takeover explicación y consejos

Subdomain Takeover: Explicación Sencilla y Precauciones

El Sistema de Nombres de Dominio (DNS) se describe a menudo como la libreta de direcciones de Internet; los registros A y AAAA asignan un nombre de host amigable (por ejemplo, esgeeks.com) a una dirección IP amigable para la máquina (216.246.112.54, en este caso). También existen otros tipos de registros DNS; en particular, los registros CNAME son registros que asignan un nombre de host a otro nombre de host, delegando así la resolución IP a este último.

Como es lógico, el DNS no es inmune a la mala configuración, y una mala higiene del DNS abre la puerta a todo tipo de abusos que pueden causar estragos en la seguridad de tu organización y de sus partes interesadas. Por supuesto, si los atacantes obtienen acceso a la configuración de tu DNS y son capaces de crear registros o modificar los existentes, estarás en graves problemas.

¿Qué es un Subdominio?

Un subdominio es una parte adicional de un dominio que va antes del nombre del dominio principal (por ejemplo, geeks.tools). Los contenidos de los subdominios son en su mayoría independientes del sitio web principal, en este contexto, son la mejor manera de reunir y categorizar contenidos diferentes.

Para encontrar subdominios, hay muchas herramientas como subfinder, sublist3r, assetfinder, etc. Es mejor combinar varias herramientas para poder cazar más subdominios.

¿Qué es un Nombre Canónico (CNAME)?

Un nombre canónico (CNAME) es un tipo de registro de la base de datos del Sistema de Nombres de Dominio (DNS) que indica que un nombre de dominio es el apodo o alias de otro nombre de dominio. También denominado “nombre verdadero”, el CNAME es especialmente importante cuando varios servicios se ejecutan desde una misma dirección IP.

CNAME usado en Subdominios
CNAME usado en Subdominios

El CNAME se utiliza habitualmente en lugar de un registro A, que es un tipo de registro DNS que muestra la dirección IP de un dominio. Los registros CNAME deben apuntar a un dominio y no a una dirección IP. Un dominio con un registro CNAME puede apuntar a otro dominio con un registro CNAME o a un dominio con un registro A.

Funcionamiento del Registro CNAME
Funcionamiento del Registro CNAME

Del ejemplo anterior, podemos explicar lo siguiente:

  1. Un navegador o un dispositivo de red (cliente DNS) solicita una dirección específica sub.ejemplo.com. Así, se crea una solicitud DNS.
  2. Esta solicitud es recibida por el Resolutor de DNS, que encuentra el Servidor de Nombres Autorizado que tiene el archivo de Zona DNS con los registros DNS apropiados para el dominio ejemplo.com.
  3. El registro CNAME se devuelve al cliente.
  4. El cliente DNS entiende que sub.ejemplo.com es un alias del dominio raíz otrodominio.com y emite una nueva consulta DNS para otrodominio.com.
  5. Se repite el mismo proceso de solicitud y el resolutor devuelve el registro A de otrodominio.com con su dirección IP.
  6. El cliente se conecta a sub.ejemplo.com utilizando su dirección IP (1.2.3.4).

¿Qué es Subdomain Takeover?

La toma de control de un subdominio o Subdomain Takeover es el proceso de obtener el control de un determinado subdominio por parte de personas no autorizadas. El atacante que consigue hacerse con el subdominio tiene el control total del mismo y puede subir sus propios archivos, crear su propia base de datos, monitorizar el tráfico de la red, o incluso crear un clon del sitio web principal y enviar correos electrónicos de phishing, etc. Ya te imaginarás todo el riesgo.

Cómo funciona Subdomain Takeover o la Toma de Posesión de Subdominios
Cómo funciona Subdomain Takeover o la Toma de Posesión de Subdominios

El escenario más común de este proceso es el siguiente:

  • El nombre de dominio (por ejemplo, sub.esgeeks.com) utiliza un registro CNAME hacia otro dominio (por ejemplo, sub.esgeeks.com CNAME otrodominio.com).
  • En algún momento, otrodominio.com expira y está disponible para ser registrado por cualquiera.
  • Dado que el registro CNAME no se elimina de la zona DNS de esgeeks.com, cualquiera que registre otrodominio.com tiene pleno control sobre sub.esgeeks.com hasta que el registro DNS esté presente.

Nota

La adquisición de subdominios no se limita a los registros CNAME. Los registros NS, MX e incluso A también se ven afectados.

¿Qué Casos pueden Provocar la Toma de Posesión de Subdominios?

  1. Cuando existe el registro de un subdominio, pero la página no está en uso por alguna razón, se considera como posible. Las vulnerabilidades de toma de control de subdominio pueden ocurrir cuando el webmaster se olvida de configurar la página web de un subdominio creado previamente, también puede surgir cuando un subdominio innecesario/que no se utiliza no se elimina a tiempo. Además, si los servicios caducados no se reactivan, es probable que se produzcan vulnerabilidades de toma de posesión de subdominios.
  1. La mala configuración de los registros DNS o del servidor es una de las razones más comunes para la toma de control de subdominios. Especialmente en el caso de los subdominios de varios niveles, una configuración errónea puede causar literalmente la toma de control de subdominios.

Aquí hay una página de GitHub para comprobarlo, donde se recopilan algunos tipos de error que apuntan a un subdominio vacío. Puede ayudar a detectar qué estado de error es considerable para un determinado proveedor de terceros:

Dark Mode

can-i-take-over-xyz (este enlace se abre en una nueva ventana) por EdOverflow (este enlace se abre en una nueva ventana)

“Can I take over XYZ?” — a list of services and how to claim (sub)domains with dangling DNS records.

  1. Los proveedores de terceros (por ejemplo, GitHub, WordPress, AWS, Heroku, etc.) que apuntan a un servicio concreto que no está en uso actualmente permiten a un atacante tomar el control del subdominio. Un adversario tiene la posibilidad de crear una página web en el servicio que se está utilizando antes y apuntar a ese subdominio.

¿Cómo Detectar Manualmente los Subdominios Vulnerables?

Inicialmente, hay dos hechos principales que debemos considerar cuando se trata de identificar la vulnerabilidad de la toma de posesión del subdominio (Subdomain Takeover):

  1. El aspecto de la página web cuando se visita el sitio web del subdominio es un identificador importante. Ya que algunos errores que vemos en la página web indican que no se está sirviendo ningún contenido bajo este subdominio y puede ser vulnerable.
  2. El conocimiento de los registros DNS es necesario. Es crucial para definir a qué proveedor nos dirigían, ya que configuramos nuestra ruta de toma de posesión en función de esta información

Si consideramos un subdominio como sospechoso, podemos intentar dar el comando para ver cómo responder en un primer momento. El comando “host” parece apropiado para ello. Para dar un ejemplo, demos un comando “host” a “help.yandex.com

host help.yandex.com

En el caso anterior, la expresión “alias” destaca en la respuesta. Significa que, en teoría, la toma de posesión es factible. Sin embargo, para esta instancia, no es posible implementar la toma de posesión del subdominio ya que es un dominio activo. Por lo tanto, no hay que tener en cuenta este fallo. Para lograr la toma de posesión del subdominio, el dominio no debe estar actualmente en uso y tiene que devolver una página de error adecuada y única para el proveedor.

Cuando una determinada página de error aparece en la página web de un subdominio servido por un determinado proveedor externo, puede significar que nos encontramos con un subdominio que no está en uso.

Herramientas para Detectar la Toma de Posesión de Subdominios

Existe una herramienta llamada “Aquatone” que puede ser útil para identificar más fácilmente las vulnerabilidades de la toma de posesión de subdominios.

La herramienta se define en su página de GitHub como “Aquatone es una herramienta para la inspección visual de sitios web en un gran número de hosts y es conveniente para obtener rápidamente una visión general de la superficie de ataque basada en HTTP“.

Una vez que se comienza a escanear un determinado dominio a través de esta herramienta, ésta realiza tanto la caza de subdominios del dominio a través del comando “aquatone-discover” como la búsqueda de si existe o no una vulnerabilidad de toma de control de subdominio para cada subdominio utilizando el comando “aquatone-takeover“. Posteriormente, archiva todos estos resultados y los guarda con las extensiones de archivo .txt y .json en el directorio donde se encuentra. También encuentra los puertos abiertos a través de la herramienta “aquatone-scan” y toma capturas de pantalla a través de la herramienta “aquatone-gather“.

Otras herramientas útiles para el fin de Subdomain Takeover son: Sub404 y Subdomain-takeover.

¿Cómo Evitar la Adquisición de Subdominios o Subdomain Takeover?

Como propietario de un dominio:

  • Elimina todas las entradas DNS que estén activas pero fuera de uso. Elimina el registro CNAME en el archivo de zona DNS.
  • Si estás creando una nueva fuente, la creación del registro DNS debe ser el último paso que des en el proceso.
  • Comprueba continuamente tus entradas DNS para asegurarte de que no hay registros colgados.
  • Cierra la ventana de ataque. El hacker ético Edwin Foudil, en su repositorio can-i-take-over-xyz en GitHub, mantiene una lista de proveedores que no protegen a sus clientes contra la toma de control de subdominios.

Conclusión

Espero que la lectura de este artículo te haya hecho tomar conciencia de los riesgos asociados a la adquisición de subdominios. Por supuesto, este post sólo araña la superficie. Las adquisiciones de subdominios pueden estar implicadas en otros ataques más complejos (como el caso de saostatic.uber.com). Además, algunas formas avanzadas de adquisición de subdominios implican registros DNS distintos de los CNAME.

Si quieres profundizar, te recomiendo que leas el blog de Patrik Hudak, que entra en mucho más detalle sobre la mecánica y los impactos de la toma de subdominios que este artículo. El feed de HackerOne de informes de recompensas de errores revelados es también un excelente recurso sobre el tema.

Ahora, ve a auditar tus registros DNS, sé exigente con los proveedores y ten cuidado con la toma de subdominios o subdomain takeover.

Mi Carro Close (×)

Tu carrito está vacío
Ver tienda