Esta pagina se ve mejor con JavaScript habilitado

Abrir puertos tras NAT mediante upnp.

 ·  🎃 kr0m

Tradicionalmente los hosts que se encuentran tras un un dispositivo que natea no tienen posibilidad de abrir puertos adicionales para servicios especiales como FTP o SIP, esto causa una serie problemas como audio inaudible en el caso de SIP o conexiones rechazadas en FTP. Upnp nos permitirá abrir puertos desde la parte del cliente, esta característica también puede llegar a ser útil en ciertos escenarios donde nos conviene poner un socket a la escucha y conectarnos desde el exterior, sin Upnp esta conexión sería rechazada por el equipo que natea.

Instalamos las librerias de python necesarias:

emerge -av dev-python/miniupnpc

El script en cuestión es el siguiente:

vi upnp.py

import miniupnpc
upnp = miniupnpc.UPnP()
upnp.discoverdelay = 10
upnp.discover()
upnp.selectigd()
port = 4321
# addportmapping(external-port, protocol, internal-host, internal-port, description, remote-host)
upnp.addportmapping(port, 'TCP', upnp.lanaddr, port, 'testing', '')

Lo ejecutamos:

python upnp.py

Ponemos a la escucha el socket:

nc -l -p 4321

Conectamos desde el exterior atravesando el nateo:

telnet WANIP 4321

Trying WANIP...
Connected to WANIP.
Escape character is '^]'.

Con esto queda demostrado que un nateo no nos guarda de ciertos ataques mas complejos como este.

Si te ha gustado el artículo puedes invitarme a un RedBull aquí