hacktricks/pentesting-web/domain-subdomain-takeover.md

123 lines
10 KiB
Markdown

# Toma de control de dominio/subdominio
{% hint style="success" %}
Aprende y practica Hacking en AWS:<img src="../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../.gitbook/assets/arte.png" alt="" data-size="line">\
Aprende y practica Hacking en GCP: <img src="../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Apoya a HackTricks</summary>
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos de github.
</details>
{% endhint %}
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Usa [**Trickest**](https://trickest.com/?utm\_source=hacktricks\&utm\_medium=text\&utm\_campaign=ppc\&utm\_term=trickest\&utm\_content=domain-subdomain-takeover) para construir y **automatizar flujos de trabajo** fácilmente, impulsados por las **herramientas comunitarias más avanzadas** del mundo.\
Obtén acceso hoy:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=domain-subdomain-takeover" %}
## Toma de control de dominio
Si descubres algún dominio (domain.tld) que está **siendo utilizado por algún servicio dentro del alcance** pero la **empresa** ha **perdido** la **propiedad** de este, puedes intentar **registrarlo** (si es lo suficientemente barato) y avisar a la empresa. Si este dominio está recibiendo alguna **información sensible** como una cookie de sesión a través de un parámetro **GET** o en el encabezado **Referer**, esto es sin duda una **vulnerabilidad**.
### Toma de control de subdominio
Un subdominio de la empresa apunta a un **servicio de terceros con un nombre no registrado**. Si puedes **crear** una **cuenta** en este **servicio de terceros** y **registrar** el **nombre** que está en uso, puedes realizar la toma de control del subdominio.
Hay varias herramientas con diccionarios para verificar posibles tomas de control:
* [https://github.com/EdOverflow/can-i-take-over-xyz](https://github.com/EdOverflow/can-i-take-over-xyz)
* [https://github.com/blacklanternsecurity/bbot](https://github.com/blacklanternsecurity/bbot)
* [https://github.com/punk-security/dnsReaper](https://github.com/punk-security/dnsReaper)
* [https://github.com/haccer/subjack](https://github.com/haccer/subjack)
* [https://github.com/anshumanbh/tko-sub](https://github.com/anshumanbh/tko-subs)
* [https://github.com/ArifulProtik/sub-domain-takeover](https://github.com/ArifulProtik/sub-domain-takeover)
* [https://github.com/SaadAhmedx/Subdomain-Takeover](https://github.com/SaadAhmedx/Subdomain-Takeover)
* [https://github.com/Ice3man543/SubOver](https://github.com/Ice3man543/SubOver)
* [https://github.com/m4ll0k/takeover](https://github.com/m4ll0k/takeover)
* [https://github.com/antichown/subdomain-takeover](https://github.com/antichown/subdomain-takeover)
* [https://github.com/musana/mx-takeover](https://github.com/musana/mx-takeover)
* [https://github.com/PentestPad/subzy](https://github.com/PentestPad/subzy)
* [https://github.com/Stratus-Security/Subdominator](https://github.com/Stratus-Security/Subdominator)
* [https://github.com/NImaism/takeit](https://github.com/NImaism/takeit)
### Generación de Toma de Control de Subdominio a través de DNS Wildcard
Cuando se utiliza un wildcard de DNS en un dominio, cualquier subdominio solicitado de ese dominio que no tenga una dirección diferente explícitamente será **resuelto a la misma información**. Esto podría ser una dirección IP A, un CNAME...
Por ejemplo, si `*.testing.com` está wildcard a `1.1.1.1`. Entonces, `not-existent.testing.com` apuntará a `1.1.1.1`.
Sin embargo, si en lugar de apuntar a una dirección IP, el administrador del sistema lo apunta a un **servicio de terceros a través de CNAME**, como un subdominio de G**ithub** por ejemplo (`sohomdatta1.github.io`). Un atacante podría **crear su propia página de terceros** (en Github en este caso) y decir que `something.testing.com` apunta allí. Porque, el **CNAME wildcard** permitirá que el atacante **genere subdominios arbitrarios para el dominio de la víctima apuntando a sus páginas**.
Puedes encontrar un ejemplo de esta vulnerabilidad en el informe de CTF: [https://ctf.zeyu2001.com/2022/nitectf-2022/undocumented-js-api](https://ctf.zeyu2001.com/2022/nitectf-2022/undocumented-js-api)
## Explotando una toma de control de subdominio
La toma de control de subdominio es esencialmente un spoofing de DNS para un dominio específico a través de internet, permitiendo a los atacantes establecer registros A para un dominio, llevando a los navegadores a mostrar contenido desde el servidor del atacante. Esta **transparencia** en los navegadores hace que los dominios sean propensos al phishing. Los atacantes pueden emplear [_typosquatting_](https://en.wikipedia.org/wiki/Typosquatting) o [_dominios Doppelganger_](https://en.wikipedia.org/wiki/Doppelg%C3%A4nger) para este propósito. Especialmente vulnerables son los dominios donde la URL en un correo electrónico de phishing parece legítima, engañando a los usuarios y evadiendo filtros de spam debido a la confianza inherente del dominio.
Revisa este [post para más detalles](https://0xpatrik.com/subdomain-takeover/)
### **Certificados SSL**
Los certificados SSL, si son generados por atacantes a través de servicios como [_Let's Encrypt_](https://letsencrypt.org/), añaden legitimidad a estos dominios falsos, haciendo que los ataques de phishing sean más convincentes.
### **Seguridad de Cookies y Transparencia del Navegador**
La transparencia del navegador también se extiende a la seguridad de las cookies, regida por políticas como la [política de mismo origen](https://en.wikipedia.org/wiki/Same-origin\_policy). Las cookies, a menudo utilizadas para gestionar sesiones y almacenar tokens de inicio de sesión, pueden ser explotadas a través de la toma de control de subdominio. Los atacantes pueden **recopilar cookies de sesión** simplemente dirigiendo a los usuarios a un subdominio comprometido, poniendo en peligro los datos y la privacidad del usuario.
### **Correos Electrónicos y Toma de Control de Subdominio**
Otro aspecto de la toma de control de subdominio involucra servicios de correo electrónico. Los atacantes pueden manipular **registros MX** para recibir o enviar correos electrónicos desde un subdominio legítimo, mejorando la eficacia de los ataques de phishing.
### **Riesgos de Orden Superior**
Más riesgos incluyen la **toma de control de registros NS**. Si un atacante obtiene control sobre un registro NS de un dominio, puede potencialmente dirigir una parte del tráfico a un servidor bajo su control. Este riesgo se amplifica si el atacante establece un alto **TTL (Tiempo de Vida)** para los registros DNS, prolongando la duración del ataque.
### Vulnerabilidad de Registro CNAME
Los atacantes podrían explotar registros CNAME no reclamados que apuntan a servicios externos que ya no se utilizan o han sido descontinuados. Esto les permite crear una página bajo el dominio de confianza, facilitando aún más el phishing o la distribución de malware.
### **Estrategias de Mitigación**
Las estrategias de mitigación incluyen:
1. **Eliminar registros DNS vulnerables** - Esto es efectivo si el subdominio ya no es necesario.
2. **Reclamar el nombre de dominio** - Registrando el recurso con el proveedor de nube respectivo o recomprando un dominio expirado.
3. **Monitoreo regular de vulnerabilidades** - Herramientas como [aquatone](https://github.com/michenriksen/aquatone) pueden ayudar a identificar dominios susceptibles. Las organizaciones también deben revisar sus procesos de gestión de infraestructura, asegurando que la creación de registros DNS sea el último paso en la creación de recursos y el primer paso en la destrucción de recursos.
Para los proveedores de nube, verificar la propiedad del dominio es crucial para prevenir tomas de control de subdominio. Algunos, como [GitLab](https://about.gitlab.com/2018/02/05/gitlab-pages-custom-domain-validation/), han reconocido este problema e implementado mecanismos de verificación de dominio.
## Referencias
* [https://0xpatrik.com/subdomain-takeover/](https://0xpatrik.com/subdomain-takeover/)
* [https://www.stratussecurity.com/post/subdomain-takeover-guide](https://www.stratussecurity.com/post/subdomain-takeover-guide)
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Usa [**Trickest**](https://trickest.com/?utm\_source=hacktricks\&utm\_medium=text\&utm\_campaign=ppc\&utm\_term=trickest\&utm\_content=domain-subdomain-takeover) para construir y **automatizar flujos de trabajo** fácilmente, impulsados por las **herramientas comunitarias más avanzadas** del mundo.\
Obtén acceso hoy:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=domain-subdomain-takeover" %}
{% hint style="success" %}
Aprende y practica Hacking en AWS:<img src="../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../.gitbook/assets/arte.png" alt="" data-size="line">\
Aprende y practica Hacking en GCP: <img src="../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Apoya a HackTricks</summary>
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos de github.
</details>
{% endhint %}