Protocolo TR-069 - CWMP

Iniciado por Bael, Diciembre 31, 2017, 12:33:39 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Buenas UC!
Felices Fiests y todas esas cosas que se suelen decir. Como último post del año voy a hablar brevemente sobre TR-069 (Technical Report 069), ya que el tema de las telecomunicaciones me parece bastante interesante y no hay mucha información sobre este protocolo en el foro. Me parece importante aclarar que no es una investigación propia, si no una recopilación de distintas fuentes. Lo más interesante lo dejaré como enlace.


TR-069, también denominado como CWMP (CPE WAN Managemnet Protocol) es un protocolo de capa de aplicación, utilizado en telecomunicaciones para administración remota de dispositivos finales (CPE – Customer Premises Equipment o Equipo Local del Cliente), como pueden ser los router domésticos que tenemos por casa. En realidad yo muchos los dispositivos que se pueden controlar con este protocolo, pero como muchos de ellos se encuentras detrás de un Nateo, nos centraremos en el caso de los router.  Las operadoras suelen usar este protocolo para temas de diagnóstico, mantenimiento, actualización de firmware, etc. Cuando un usuario tiene un problema, y no tiene los conocimientos técnicos para comunicarse con el operador adecuadamente, se utilizan protocolos para la gestión remota como este. Aunque hay veces que es el personal técnico de la operadora quien no tiene ni idea, pero bueno, eso es otro tema...xD


TR-069 utiliza SOAP sobre HTTP/S para la comunicación entre el CPE y el servidor de configuración, que se suele conocer como ACS (Auto Configuration Server). SOAP es un protocolo que se utiliza para la comunicación de distintos procesos mediante XML, permite gran interoperabilidad al poder invocar procesos que funcionan sobre una gran cantidad de tipos de lenguajes. Además, permite autentificación. El puerto asignado para la utilización de TR-069 es el TCP 7547. Con una simple busqueda podemos observar que hay un par de dispositivos utilizando este protocolo.


Como se puede observar en la imagen siguiente, es siempre el CPE el encargado de iniciar la conexión, para los casos en los que el ACS tenga que comunicarse con el CPE, puede enviar una petición de conexión (Connection Request).


Vale, ahora que ya tenemos una pequeña idea de cómo funciona, vamos cómo han jugado con esta tecnología. Si os paráis a pensar, un buen punto inicio son los ACS, ya que de ellos cuelgan multitud de dispositivos. Y entre las tareas que realiza un ACS se encuentran actualización de parámetros, o de firmware. Si el ACS lo controlamos nosotros, pues bueno, imaginaros el resto vosotros, DNS, PPP y todos los colegas se unen a la fiesta. Además, también puede ser un punto de ataque interesante para recopilación de información, ya que podemos obtener información como el SSID, los hostnames, MAC de la red, y también cositas de VoIP.


Lo primero que vamos a hacer es buscar en internet distintos software de ACS, para ver que nos encontramos, y si tienen vulnerabilidades interesantes. Por un lado nos encontramos con GenieACS, una implementación de ACS escrita en Node.js, y que tiene un RCE (CVE-2014-4956). También nos topamos con FreeACS, OpenACS (CVE-2014-2840), Vision360 ACS... Una vez localizado el software tenemos dos posibilidades, o buscamos nosotros mismos una vulnerabilidad, o buscamos si ya existe en nuestros buscadores de CVE habituales. 


Como explotando vulnerabilidades nos metemos en un terreno un tanto fanganoso legalmente hablando, lo dejaremos aquí. Faltaría comentar qué podemos hacer para protegernos. Deberíamos comprobar si nuestro router domestico tiene activadas estas características, de ser así, ¿utiliza SSL? ¿Podemos averiguar que software corre en el ACS?¿Tiene vulnerabilidades conocidas? Si las respuestas a estas preguntas no nos convencen, siempre podemos desactivar TR-069... aunque no siempre se puede. Otra posibilidad sería añadir una capa extra de seguridad con un segundo router, a ser posible con firmware del estilo de OpenWRT y que realice funciones de Firewall. Cosa que está bien hacer tengamos TR-069 activado o no, pero con más motivo si lo tenemos.

Enlaces de interés:
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Sin mucho más que añadir, me despido. Espero que os resulte interesante.
Siempre vuestro, @Bael_x42

Gracias por el aporte! la verdad no conocía este protocolo y me pareció súper interesante, te deseo un buen año!

hola! alguien lo pudo implementar? yo lo instalé y todo va bien, veo los cpe de usuarios y algunos detalles de ellos pero no logro que desde el genieacs aplique los cambios que hago sobre los cpe.. parece un error de authenticacion pero no se ya que modificar en la configuracion del genie.

Buenísimo! Necesitaba info sobre TR-069 y me topé con tu post! Gracias