Hacking de Redes UPnP – Parte III

======================= 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 II“ Una Introducción a Miranda Miranda es una herramienta de administración de UPnP escrita en Python. Lleva consigo una línea de comandos que soporta autocompletado e historial de comandos, y provee la habilidad de guardar tu trabajo en un archivo que puede ser recargado para su posterior análisis. También puedes alterar las configuraciones del programa sobre la marcha, y registrar todos tus comandos en un archivo log, de manera que puedas saber exactamente lo que ejecutaste y cuando lo ejecutaste. Miranda puede descubrir hosts UPnP tanto activamente como pasivamente, y con un simple comando pueden ser enumerados todos los tipos de dispositivos, servicios, acciones y variables. Las variables de estado del servicio pueden ser automáticamente correlacionadas con sus acciones asociadas, e identificadas tanto sus variables de salida y/o entrada para cada acción. Miranda almacena la información de todos los hosts en una estructura única de datos y te permite desplegar directamente toda la información y ver su contenido. Finalmente, puedes ejecutar cualquier acción soportada por el host UPnP; si la acción requiere algún valor de entrada, se te informará su nombre y su tipo (string, 4 byte entero, 2 byte entero, etc), así como los valores permitidos o rangos de valores que el host UPnP ha suplido, y se le pedirá que ingrese el valor. Descubriendo hosts UPnP con Miranda Cuando inicias Miranda por primer vez, te llevará a una shell interactiva con un prompt ‘upnp>’ a la espera de ejecución de comandos. La primera cosa que probablemente quieras hacer es descubrir si hay algún host UPnP en tu red; esto puede ser realizado con los comandos ‘pcap’ o ‘msearch’. Cuando es ejecutado el comando ‘pcap’, Miranda se pondrá en escucha (modo pasivo) buscando mensajes SSDP NOTIFY, mientras que el comando ‘msearch’ consultará los dispositivos UPnP usando un mensaje M-SEARCH. Por defecto, ‘msearch’ buscará todos los dispositivos UPnP, pero también se le puede especificar que busque un determinado tipo de dispositivo o servicio si así se desea. En este ejemplo, simplemente buscaremos algún dispositivo: Código: upnp> msearch Entering discovery mode for 'upnp:rootdevice', Ctl+C to stop... **************************************************************** SSDP reply message from 192.168.0.1:5678 XML file is located at http://192.168.0.1:5678/igd.xml Device is running Embedded UPnP/1.0 *************************************************************** Discover mode halted... Aquí podemos ver que hay un host UPnP en la red, el cual resulta ser un router DI-524. También podemos ver que es reportado el tipo de servidor UPnP (‘Embedded UPnP/1.0¿), y la ubicación del archivo XML raíz. Ejecutando el comando ‘host...

Leer Más

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...

Leer Más

Hacking de Redes UPnP – Parte I

======================= Hacking de Redes UPnP – Parte I Hacking de Redes UPnP – Parte II Hacking de Redes UPnP – Parte III ======================= UPnP (Universal Plug-N-Play) es un protocolo que permite que varios dispositivos de red se autoconfiguren por si mismos. Uno de los usos mas comunes de este protocolo es permitir que dispositivos o programas abran puertos en tu router casero con el objetivo de comunicarse apropiadamente con el mundo exterior (El Xbox, por ejemplo, lo hace). El protocolo UPnP está basado en protocolos y especificaciones pre-existentes, más precisamente en UDP, SSDP, SOAP y XML. Este artículo tratará sobre algunos problemas de seguridad relacionados con UPnP, brevemente describe el funcionamiento interior del protocolo, y muestra como identificar y analizar los dispositivos UPnP en una red usando herramientas open source. En el artículo nos enfocaremos en IGDs (Internet Gateway Devices ó Dispositivos de pasarela a Internet, por ejemplo, routers), pero es importante recordar que hay muchos otros dispositivos y sistemas que soportan UPnP también, y pueden ser vulnerables a ataques similares. El problema con UPnP Permitir que programas legítimos alteren la configuración del router a medida que lo vayan necesito hace la vida de los usuarios de Joe mucho más fácil – desafortunadamente, también hace la vida de los hackers de Joe más fácil. Con el fin de que UPnP sea verdaderamente “plug-n-play”, no hay ninguna autenticación en este protocolo; es decir, cualquier programa puede usar UPnP para alterar la configuración del router (o de cualquier otro dispositivo UPnP). A principios de este año, PDP (de GNUCITIZEN) publicó una investigación que había realizado sobre la seguridad de UPnP. Si bien los problemas de seguridad de UPnP no son nuevos, es un protocolo que normalmente solo funciona dentro de una red local, forzando al atacante a infiltrarse en la red antes de explotar cualquier vulnerabilidad de UPnP. Sin embargo, PDP mostró que era posible usar Flash para enviar peticiones UPnP desde dentro del navegador de un cliente a un router con UPnP habilitado y cambiar la configuración del firewall de este. Dado que el archivo Flash puede ser embebido dentro de una página maliciosa, o inyectada dentro de una página confiable via XSS o SQL Injection, un atacante podría usar esto para remotamente alterar la configuración del router. Lo que es peor es que en la mayoría de los casos, estos cambios en la configuración no son reflejados en la interfaz administrativa del router, dejando la víctima completamente sin conocimiento de lo que ha ocurrido. Por supuesto, para las redes inalámbricas UPnP es peligroso incluso sin el ataque Flash, tanto que un atacante puede mantener distancia física de la red...

Leer Más

Siguenos!

O Puedes Subscribete

ANTES DE

SALIRTE ...

NO TE

ARREPENTIRÁS

!Gracias¡

NO OLVIDES NUESTRAS REDES SOCIALES