lunes, febrero 16, 2009

Ataque al UPnP en Red (II)

Panorama del Protocolo UPnP

El protocolo UPnP utiliza la dirección de multidifusión 239.255.255.250 y el puerto TCP 1900. Los dispositivos que ofrecen servicios UPnP periódicamente envian NOTIFICACIONES SSDP al 239.255.255.250:1900, anunciandose a sus clientes que están escuchando. Si ves el tráfico en tu LAN con un router UPnP, es muy probable que notes como evía ráfagas de avisos de NOTIFICACION SSDP cada pocos segundos, es porque la mayoría de los rOuters actuales se anuncian como múltiples dispositivos UPnP, y envian una notificación por cada tipo de dispositivo.

Del mismo modo, los clientes UPnP pueden enviar requerimientos SSDP M-SEARCH al 239.255.255.250:1900 para ver si alguno dispositivos UPnP responden. Los Clientes pueden enviar un "requerimiento" M-SEARCH buscando algún dispositivo UPnP cualquiera, o pueden especificar que están buscando un dispositivo UPnP en particular, o pueden hacer "requerimientos" sólo a dispositivos UPnP que soporten un tipo de servicio determinado. Los hosts UPnP en los que coincidan el dispositivo-servicio con los solicitados van a responder con un mensaje de RESPUESTA SSDP, que contiene la misma información enviada en un mensaje de NOTIFICACION SSDP.

Un mensaje de NOTIFICACION SSDP es enviado por el host UPnP que contiene una cabecera de 'Localización' donde especifica la ubicación de un archivo XML. Este archivo XML contiene datos que indican, entre otras cosas, el tipo (s) de dispositivo UPnP y los servicios soportados por el host, así como rutas adicionales a los documentos XML que describen los diversos servicios en detalle. Para descubrir todas las capacidades de un IGD UPnP, hay que analizar todos los archivos XML para extraer los tipos de dispositivos, servicios y acciones que ofrece el IGD.



Los dispositivos UPnP tienen varios servicios que avisan del tipo de acciones que soportan. Un cliente UPnP puede enviar una solilcitud a un dispositivo UPnP en cualquier momento, lo que podría ser una solicitud para abrir un puerto, cambiar el servidor DNS por defecto, o cualquier otra cosa con el que el dispositivo sea compatible con UPnP. Los datos de entrada y salida de las acciones solicitadas se envían utilizando SOAP, que utiliza XML para estructurar la información enviada entre dos partes. Las peticiones SOAP son fundamentalmente peticiones "HTTP POST", con algunas cabeceras SOAP adicionales incluidas en las cabeceras HTTP.

Auditando manualmente los dispositivos UPnP

Para descubrir si un router es compatible con UPnP, puedes ir a la interfaz de administración del router, y comprobar si hay una opción para activar o desactivar UPnP, mientras que la mayoría de los routers tienen UPnP habilitado por defecto, algunos no lo hacen.

En realidad para auditar la configuración de un dispositivo UPnP, tienes que instalar y ejecutar el programa Wireshark (u otro husmeador) y buscar por paquetes de NOTIFICACION SSDP enviados a la dirección de multidifusión 239.255.255.250 en el puerto 1900; estas notificaciones serán dispositivos UPnP anunciandose a la red. Una vez que los mensajes de NOTIFICACION SSDP son capturados, puede examinar las cabeceras SSDP del volcado (dump) del Wireshark para obtener la ubicación del archivo XML raiz. Una vez que consigues ese archivo (simplemente a través de una petición HTTP GET), se puede examinar para ver qué dispositivos y servicios soporta ese host UPnP. A continuación, puedes solicitar otros archivos XML adicionales desde el host (un archivo por cada servicio) y analizar esos documentos XML para determinar qué acciones soporta cada servicio y, a continuación, correlacionar cualquier estado de las variables (variables de entrada y salida) que utiliza cada acción, así como la identificación de las variables que se utilizan para la entrada, y la que se utiliza para la salida (una acción puede utilizar una variable como un parámetro de entrada, mientras que otra utiliza la misma variable como un parámetro de salida).

Obviamente, la auditoría de hosts UPnP manualmente puede necesitar mucho tiempo y nos obliga a generar las solicitudes a dispositivos UPnP de forma manual para ejecutar acciones UPnP en contra de ellos. Utilizando una herramienta para automatizar el proceso hace que todo sea más fácil.

Fin de la segunda Parte. En la tercero empiezo con el programa Miranda.

Carmelo C.

No hay comentarios: