DNS spoofing: cómo interceptar un stream RTMP

DNS spoofing: cómo interceptar un stream RTMP

@programacion

Lo esencial

  • DNS spoofing hace que el resolutor entregue la IP de un servidor propio en vez del oficial.
  • RTMP corre en texto plano por el puerto 1935; RTMPS cifra con TLS en el puerto 443.
  • En 2026, un investigador redirigió el stream RTMP de una PS5 con dnsmasq y nginx-rtmp, sin modificar la consola.
  • El truco falla en endpoints RTMPS porque no se puede instalar una CA propia en dispositivos cerrados.
  • DNSSEC firma las respuestas DNS y DoH las cifra, pero pocos dispositivos IoT los exigen por defecto.

Qué es RTMP y por qué tu consola confía en un dominio

En 2026, un investigador demostró que basta controlar el DNS de una red doméstica para que una PlayStation 5 envíe su transmisión en vivo a una laptop en lugar de a Twitch, sin exploits ni jailbreak.

RTMP (Real-Time Messaging Protocol) es el protocolo que usan Twitch, YouTube y Facebook Live para recibir video en vivo. Corre sobre TCP: en texto plano por el puerto 1935, o cifrado con TLS (RTMPS) por el puerto 443.

Cuando presionás "Transmitir" en la PS5, la consola no tiene la IP de Twitch guardada. Resuelve un hostname por DNS cada vez que empieza un broadcast, abre una conexión TCP contra la IP que reciba y empuja el video ahí. Esa decisión de diseño, resolver un nombre en lugar de fijar una IP, es lo que abre la puerta al ataque.

Cómo resuelve DNS el destino de un stream

Twitch usa dos resoluciones encadenadas. Primero la consola consulta ingest.twitch.tv, un endpoint de descubrimiento que responde con el servidor regional más cercano, algo como ap-southeast-1.prod.fi.contribute.live-video.net. Recién ahí empieza a empujar el video.

DNS responde por UDP en el puerto 53 y, salvo que uses DNSSEC, no valida quién contesta: gana el primer paquete válido que llegue. Esa falta de autenticación es la debilidad que explota el DNS spoofing, y existe desde que se definió el protocolo en 1987.

DNS spoofing: cambiar la respuesta sin tocar el emisor

Spoofing acá no significa interceptar tráfico ajeno en tránsito por internet, sino controlar el servidor DNS que tu propia red le entrega al cliente por DHCP. Si el router de tu casa le dice a la PS5 "tu DNS es 192.168.1.50" y ese servidor responde lo que vos quieras, la consola nunca se entera de que fue redirigida.

Esto es distinto del cache poisoning clásico contra un resolutor ajeno: acá el atacante es dueño de la infraestructura de red. Por eso la técnica es legítima para investigación y pruebas sobre equipos y redes propias, y deja de serlo en el momento en que apuntás a un router o un proveedor que no controlás.

El caso práctico: redirigir el stream con dnsmasq y nginx-rtmp

El investigador Yash Garg documentó el montaje completo en su blog: una Mac corriendo dnsmasq como servidor DNS y nginx-rtmp-module para recibir el video. La configuración de dnsmasq redirige los dominios de ingesta de Twitch hacia la IP local:

server=1.1.1.1
server=8.8.8.8

# Redirige el dominio de ingesta y sus subdominios regionales
address=/contribute.live-video.net/192.168.1.50
address=/ingest.global-contribute.live-video.net/192.168.1.50

log-queries
log-facility=/var/log/dnsmasq.log
listen-address=0.0.0.0

Del lado de nginx, basta con habilitar el módulo RTMP y abrir una aplicación que reciba cualquier stream entrante en el puerto 1935:

rtmp {
server {
listen 1935;
chunk_size 4096;

application live {
live on;
record off;
}
}
}

El último paso es que el router asigne esa IP como DNS solo al dispositivo objetivo. En un router con OpenWrt, eso se hace etiquetando su lease de DHCP y usando la opción 6 (servidor DNS) del protocolo.

Por qué RTMPS bloquea el truco y RTMP plano lo permite

Spoofear directamente ingest.twitch.tv no alcanza: ese endpoint usa RTMPS, RTMP sobre TLS, y la PS5 valida el certificado del servidor contra una lista de autoridades de confianza. Un certificado autofirmado no pasa esa validación, y en una consola cerrada no hay forma de instalar una CA propia.

Con YouTube, cuyo ingest usa RTMP en texto plano sin TLS, el redireccionamiento sí funcionó: la PS5 empezó a enviar el video a la Mac sin quejarse. Pero la consola también consulta periódicamente la API de YouTube para confirmar que el stream está en vivo; como YouTube nunca recibió nada, la transmisión se cortaba sola a los 60 segundos.

La solución fue buscar, dentro de la propia infraestructura de Twitch, un endpoint de ingesta que usara RTMP plano en lugar de RTMPS. Revisando los logs de consultas de dnsmasq mientras la consola transmitía apareció la pista:

sudo tail -f /var/log/dnsmasq.log
# query[A] ingest.global-contribute.live-video.net from 192.168.1.87
# reply aps30.contribute.live-video.net is 35.55.13.0

Ese subdominio, aps30.contribute.live-video.net, resultó ser un servidor de ingesta en RTMP plano. Spoofear todo el dominio padre, contribute.live-video.net, cubre a todos sus subdominios regionales y evita el problema del certificado por completo.

Cómo defenderte: DNSSEC, DoH y control de tu propia red

DNSSEC firma criptográficamente las respuestas DNS, así que una respuesta falsa no supera la validación de firma. El problema es que la mayoría de las consolas, cámaras IP y encoders de streaming no la exigen por defecto, así que igual aceptan cualquier respuesta que llegue primero.

DNS sobre HTTPS (DoH) o sobre TLS (DoT) cifran la consulta entre el cliente y un resolutor específico, así que un servidor DNS asignado por DHCP (el del atacante en este escenario) no puede reescribir la respuesta en silencio si el dispositivo ignora esa configuración de red y usa su propio resolutor cifrado.

El mismo mecanismo que redirige un stream ajeno es el que usa Pi-hole para bloquear anuncios en tu propia red: dnsmasq respondiendo lo que vos decidís en lugar de lo que diría el DNS público. La técnica es neutral; lo que cambia es a quién apunta.

Conclusión

La simplicidad de RTMP (resolver un hostname y empujar bytes por TCP sin más verificación que la del certificado, cuando lo hay) es también su superficie de exposición. Cualquier dispositivo que resuelva un dominio para transmitir en vivo, ya sea una consola, una cámara IP o un encoder de streaming, queda igual de expuesto si alguien controla el DNS de su red.

📖 Versión extendida con más detalle: https://elsolitario.org/2026/09/29/dns-spoofing-interceptar-stream-rtmp/?utm_source=telegraph&utm_medium=instant_view&utm_campaign=programacion

Report Page