miércoles, 12 de julio de 2017

¡Ese UPnP como mola, se merece una ola!

No hace mucho tiempo, en una auditoria de red interna (intranet), un protocolo del cual no se habla demasiado dio una clave fundamental para poder hacerme con la red.

Esta clave vino a ser: usuarios totalmente validos, que permitieron hacer otras muchas cosas.

El responsable de dicha revelación fue el protocolo de comunicaciones: UPNP (Universal plug and Play).

Se recoge la definición de dicho protocolo desde Wikipedia

Universal Plug and Play (UPnP) es un conjunto de protocolos de comunicación que permite a periféricos en red, como computadoras personales, impresoras, pasarelas de Internet, puntos de acceso Wi-Fi y dispositivos móviles, descubrir de manera transparente la presencia de otros dispositivos en la red y establecer servicios de red de comunicación, compartición de datos y entretenimiento. UPnP está diseñado principalmente para redes de hogar sin dispositivos del ámbito empresarial.

Más información:
https://es.wikipedia.org/wiki/Universal_Plug_and_Play
https://tools.ietf.org/html/rfc6970

Entre los datos que devuelve el protocolo,  encontraremos el tag: <friendlyName>. Dicho tag, trae consigo  datos relativos al: nombre de la máquina y a un nombre de usuario valido.

La estructura que presentaba se correspondía al siguiente patrón:

<friendlyName> NOMBRE MÁQUINA:USUARIO </friendlyName>

Este protocolo utiliza dos puertos:

1.- 1900/UDP, que devuelve la URL donde se puede visualizar los datos.
2.- 2869/TCP, sobre el que se monta un servicio web que devuelve la información estructurada en formato XML

Si queremos buscar activos que posean el puerto 1900/UDP, y así conseguir la URL donde se encuentra la información, se puede utilizar una herramienta terriblemente útil: NMAP. Más concretamente uno de sus script (.NSE: upnp-info.nse. Este script nos permite obtener la URL donde se podrán visualizar los datos del host.

Más información:
https://nmap.org/nsedoc/scripts/upnp-info.html

Un ejemplo de la información que se obtiene con dicho script es:

Uso del script: upnp-info.nse, de la herramienta nmap

Si se visita dicha URL, obtendremos la siguiente información:


Información del servicio UPnp en formato "xml"

Si nos fijamos en el tag: <friendlyName>, podemos ver:

1.- El nombre de la máquina: GRANHERMANO
2.- El usuario: 4null0

Personalmente, me cree un pequeño script en bash para que dado una red (en formato CIDR) me detectará aquellas que tenga el puerto 1900/UDP abierto y me diera los datos correspondientes al nombre de la máquina y a el usuario.

El código es:


Código del script en bash

Un ejemplo de lo que devuelve el script es:

Información devuelta por el script



Lo que hagas con la información es cosa tuya, no mía ... pero ten conciencia.

No hay comentarios:

Publicar un comentario