WebRTC DoS
Reading time: 3 minutes
tip
Aprende y practica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apoya a HackTricks
- Revisa los planes de suscripci贸n!
- 脷nete al 馃挰 grupo de Discord o al grupo de telegram o s铆guenos en Twitter 馃惁 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a HackTricks y HackTricks Cloud repos de github.
Este problema fue encontrado en esta publicaci贸n de blog: https://www.rtcsec.com/article/novel-dos-vulnerability-affecting-webrtc-media-servers/
La vulnerabilidad descrita en los servidores de medios WebRTC surge de una condici贸n de carrera durante la inicializaci贸n de sesiones de medios, espec铆ficamente entre la verificaci贸n de consentimiento de medios ICE y la iniciaci贸n de tr谩fico DTLS. Aqu铆 hay un desglose detallado:
Origen de la Vulnerabilidad
- Asignaci贸n de Puertos UDP: Cuando un usuario inicia una llamada WebRTC, el servidor de medios asigna puertos UDP para manejar los flujos de medios, con la IP y el puerto comunicados a trav茅s de se帽alizaci贸n.
- Procesos ICE y STUN: El navegador del usuario utiliza ICE para la verificaci贸n de consentimiento de medios, utilizando STUN para determinar la ruta de conexi贸n al servidor de medios.
- Sesi贸n DTLS: Tras la verificaci贸n exitosa de STUN, se inicia una sesi贸n DTLS para establecer claves maestras SRTP, cambiando a SRTP para el flujo de medios.
Mecanismo de Explotaci贸n
- Explotaci贸n de Condici贸n de Carrera: Un atacante puede explotar una condici贸n de carrera enviando un mensaje DTLS ClientHello antes que el usuario leg铆timo, potencialmente utilizando un conjunto de cifrado no v谩lido como
TLS_NULL_WITH_NULL_NULL
. Esto provoca un error DTLS en el servidor, impidiendo que se establezca la sesi贸n SRTP.
Proceso de Ataque
- Escaneo de Puertos: El atacante necesita adivinar qu茅 puertos UDP est谩n manejando sesiones de medios entrantes, enviando mensajes ClientHello con el conjunto de cifrado nulo a estos puertos para activar la vulnerabilidad.
- Diagrama del Ataque: La secuencia implica m煤ltiples mensajes ClientHello enviados por el atacante al servidor, entrelazados con se帽alizaci贸n leg铆tima y mensajes DTLS, lo que lleva a un fallo en el apret贸n de manos debido al conjunto de cifrado err贸neo.
Pruebas y Mitigaci贸n
- Pruebas Seguras: Usando herramientas como Scapy, los atacantes reproducen mensajes DTLS ClientHello dirigidos a puertos de medios espec铆ficos. Para pruebas 茅ticas, se utilizaron modificaciones en Chromium (por ejemplo,
JsepTransport::AddRemoteCandidates
) para imitar el comportamiento de la v铆ctima de manera segura. - Medidas de Mitigaci贸n: Las soluciones implican descartar paquetes de direcciones no verificadas, como se implementa en versiones m谩s nuevas de bibliotecas como libnice. La soluci贸n principal enfatiza confiar en el proceso de verificaci贸n ICE y solo procesar paquetes de combinaciones de IP y puerto validadas.
Escenarios No Vulnerables
- Configuraciones del Servidor DTLS: Las instancias en las que el navegador act煤a como un servidor DTLS o cuando el servidor de medios no utiliza puertos ef铆meros para sesiones de medios no son susceptibles a esta vulnerabilidad.
Conclusi贸n
Esta vulnerabilidad destaca el delicado equilibrio en los procesos de inicializaci贸n de sesiones de medios y la necesidad de mecanismos de temporizaci贸n y verificaci贸n precisos para prevenir la explotaci贸n. Se aconseja a los desarrolladores implementar las correcciones de seguridad recomendadas y asegurar procesos de verificaci贸n robustos para mitigar tales vulnerabilidades.
tip
Aprende y practica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apoya a HackTricks
- Revisa los planes de suscripci贸n!
- 脷nete al 馃挰 grupo de Discord o al grupo de telegram o s铆guenos en Twitter 馃惁 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a HackTricks y HackTricks Cloud repos de github.