Ataque de reenlace de DNS

Feb 08 2023
La revinculación de DNS es un método para eludir la política del mismo origen mediante la manipulación de la resolución de DNS. ¿Cómo bloquea el navegador un ataque general de origen cruzado? Aquí, el navegador entiende que la página de respuesta del origen del atacante está solicitando una página de otro origen (es decir,

DNS Rebinding es un método para eludir la Política del mismo origen mediante la manipulación de la resolución de DNS

¿Cómo se bloquea un ataque general de origen cruzado por el navegador?

Navegador que bloquea la solicitud de origen cruzado

Aquí, el navegador entiende que la página de respuesta del origen del atacante está solicitando una página de otro origen (es decir, de localhost) ³ . Dado que es una 'solicitud no simple' con 'origen cruzado', el navegador bloquea la solicitud de forma predeterminada.

Para acceder al servidor local, debemos omitir SOP

Aquí viene DNS Rebinding a nuestro rescate...

Escenario de ataque

Ataque de reenlace de DNS que pasa por alto la política del mismo origen

En la resolución DNS inicial, attacker.com se resuelve en 6.6.6.6 ² . Por lo tanto, el navegador envía una solicitud a 6.6.6.6 y recibe la respuesta del atacante. La respuesta del atacante puede contener una solicitud de recuperación nuevamente a atacante.com. Aquí, dado que la página del origen del atacante solicita un recurso del origen del atacante, por lo tanto, el mismo origen⁵ .

Mientras configura el servidor DNS, el atacante establecerá el TTL (Tiempo de vida) en un valor pequeño (por ejemplo, 2 segundos)² .

Por lo tanto, el navegador, mientras ejecuta la solicitud de búsqueda en attacker.com, vuelve a solicitar al servidor DNS la resolución de attacker.com ⁵ , que ahora se resuelve en 127.0.0.1⁶ (el atacante establecerá dos registros A en la configuración del servidor DNS).

Luego, el navegador ejecuta la siguiente solicitud en la página del atacante, que es una solicitud de recurso DELETE a 127.0.0.1 ⁸ . Dado que es una solicitud al host local que tiene el mismo origen que 127.0.0.1, el navegador la ejecuta sin bloquearse.
El recurso se elimina⁹

¿Cómo puedo activar un servidor DNS rápidamente?

Puedes usar la aplicaciónhttp://lock.cmpxchg8b.com/rebinder.html(código fuente también disponible)

¿Algún otro escenario de ataque?

  1. Infraestructura confusa del lado del servidor

Restricciones para el atacante / mitigaciones para el desarrollador

1. Si se requiere autenticación

2. Si el certificado SSL está presente

3. Si el servidor verifica el encabezado del Host

4. Si se define y utiliza un controlador de protocolo personalizado (p. ej., chrome:// ) para acceder a las aplicaciones locales

Referencias:

  • DEF CON 25 — Luke Young
  • Aplicación web para resolución de URI de ataque o DNS por Tavis Ormandy
  • Recompensa de errores | $2000 para la omisión de SSRF mediante el reenlace de DNS por Leet Cipher
  • Conferencia sobre ataques de reenlace de datos a cargo de Feross
  • Gerald Doussot — Estado de los ataques de reenlace de DNS y singularidad de origen — Conferencia DEF CON 27
  • SSRF a través de DNS Rebinding (CVE-2022–4096) por Basavaraj
  • Herramienta de singularidad