Hacking de Redes UPnP - Parte II
=======================
Hacking de Redes UPnP - Parte I
Hacking de Redes UPnP - Parte II
Hacking de Redes UPnP - Parte III
=======================
Continúa desde “Hacking de Redes UPnP - Parte I“
Una vista general sobre el protocolo UPnP
EL protocolo UPnP usa la dirección mulicast (multidifusión) 239.255.255.250 y el puerto TCP 1900. Los dispositivos que ofrecen servicios UPnP periódicamente enviarán mensajes SSDP NOTIFIY a 239:255:255:250:1900, anunciándose a cualquier cliente UPnP que en este en escucha. Si observas el tráfico en tu LAN que use un router con los servicios UPnP activos, notarás que éste envía una ráfaga de mensajes SSDP NOTIFY cada pocos segundos; esto ocurre porque la mayoría de los routers en realidad se anuncian como multiples dispositivos UPnP, y envían una notificación por cada tipo de dispositivo.
Asimismo, los clientes UPnP pueden enviar peticiones SSDP M-SEARCH a 239:255:255:250:1900 para ver si algún dispositivo UPnP responde. Los clientes pueden enviar una petición M-SEARCH buscando algún dispositivo UPnP, o pueden especificar que están buscando algún dispositivo en particular, o pueden consultar solo por algún dispositivo que soporte un servicio UPnP específico. Los hosts UPnP que concuerden con los dispositivos/servicios pedidos responderán con un mensaje SSDP RESPONSE, el cual contiene la misma información que la enviada en un mensaje SSDP NOTIFIY.
Un mensaje SSDP NOTIFY enviado por un host UPnP contiene una cabecera 'Location' la cual especifica la ubicación de un archivo XML. Este archivo XML contiene datos indicando, entre otras cosas, el tipo de dispositivo y los servicios soportados por el host, así como las rutas a otros documentos XML adicionales que describen los servicios detalladamente. Para descubrir las capacidades UPnP completas de un IGD, se debe analizar todos los archivos XML para extraer los tipos de dispositivos, servicios, y acciones ofrecidas por el IGD.
Los servicios UPnP soportan varios servicios que a su vez anuncian las acciones que soportan. Un cliente UPnP puede enviarle alguna petición al dispositivo UPnP en cualquier momento, esta podría ser una petición para abrir un puerto, cambiar el servidor DNS por defecto, o cualquier otra que el dispositivo soporte. Los datos enviados/devueltos en cualquier petición o respuesta son enviados usando SOAP, el cual usa XML para estructurar la información enviada entre las dos partes. Las peticiones SOAP son esencialmente peticiones HTTP POST con alguna cabecera SOAP adicional incluida en las cabeceras HTTP.
Auditando dispositivos UPnP manualmente
Para descubrir si algún router soporta UPnP, puedes ir a la interfaz administrativa de este y verificar si hay alguna opción para habilitar/deshabilitar UPnP, mientras que la mayoría de los routers tienen UPnP habilitado por defecto, algunos no.
Para realmente auditar la configuración de algún dispositivo UPnP, puedes encender Wireshark y buscar paquetes SSDP NOTIFIY siendo enviados a la dirección multicast 239.255.255.250 al puerto 1900; estas notificaciones serán dispositivos UPnP anunciándose a la red. Una vez los mensajes SSDP NOTIFIY son capturados, puedes examinar las cabeceras SSDP de los datos arrojados para obtener la ubicación del archivo XML raíz. Una vez tengas ese archivo (simplemente haciendo una petición HTTP GET), puedes examinarlo para ver que dispositivos y servicios soporta el host UPnP. Luego, puedes solicitar los archivos XML adicionales al host (uno por cada servicio) y analizar esos archivos XML para determinar que acciones soporta cada servicio, y luego correlacionar las posibles variables de estado (variables de entrada/salida) usada para cada acción, así como identificar cuales variables son usadas como "entrada", y cuales como "salida" (una acción puede usar una variables como parametro de entrada, mientras que otras usan la misma variable como parametro de salida).
Obviamente, auditar hosts UPnP manualmente puede consumir extremadamente mucho tiempo y nos forza a generar manualmente peticiones a los dispositivos UPnP para lanzar ataques contra ellos. Usar una herramienta para automatizar el proceso haría nuestra vida mucho más fácil... Esto será lo que trataremos en la parte III del artículo.
=======================
Hacking de Redes UPnP - Parte I
Hacking de Redes UPnP - Parte II
Hacking de Redes UPnP - Parte III
=======================
Segunda parte del articulo Plug-N-Play Network Hacking traducido por Cortex en nuestra seccion Traducción de Artículos de La Comunidad.