msntunnel: Tuneliza conexiones TCP usando MSN Messenger

Como hace bastante tiempo que no publico nada tengo un montoooooon de basura arrinconada en los portátiles; y por esto, he abierto un proyecto en googlecode (rusoblancogarbage) para ir subiendo todos los scripts y códigos curiosos que tengo por aquí.

Para empezar he subido msntunnel.py, este pequeño script permite conectarte a un puerto de un host remoto usando como pasarela una conexion de MSN Messenger.

Teoría

La teoría es bien simple, en la máquina origen de la conexión se pone un puerto a la escucha que es leido por msntunnel.py, cada uno de los paquetes que se leen en ese socket se codifica en base64 y se mandan usando una cuenta de messenger como un mensaje de chat a una segunda cuenta de messenger manejada por otro proceso msntunnel.py en el host remoto,  el mensaje se decodifica y se envía al host (normalmente localhost) y puerto de destino.

Ejemplo

No os distraigais con el pedazo de esquema que he hecho con el Dia; os pongo un ejemplo.

Digamos que tenemos dos cuentas de MSN Messenger (host_a@hotmail.com y host_b@hotmail.com) previamente asociadas entre si como contactos.

Si quisiéramos conectarnos al puerto 22 de HOST B desde HOST A haríamos lo siguiente:

En HOST A:

root@host_a# python msntunnel.py -u host_a@hotmail.com -p passhosta -r host_b@hotmail.com -L 2222

En HOST B:

root@host_b# python msntunnel.py -u host_b@hotmail.com -p passhostb -r host_a@hotmail.com -R 127.0.0.1 -P 22

Una vez ejecutados estos comandos en sus respectivas máquinas deberíamos tener el puerto 2222 abierto en HOST A que corresponde con el puerto 22 en HOST B.

Ventajas

  • La ventaja principal de este tipo de tunneling es que no es necesario conocer la dirección IP de la máquina destino ya que todo el routing de mensajes se hace a través de un servidor externo.
  • Otra de las ventajas es que no existe comunicación directa entre las máquinas y por lo tanto es un poquito más dificil de rastrear.

Limitaciones

  • En esta versión no se verifica que el tamaño del paquete codificado en base64 sea lo suficientemente pequeño para que el protocolo de messenger lo admita, por lo tanto los paquetes grandes dan un error de envio (más bien creo que no llegan xD). Lo dicho, como ésta versión falla con paquetes grandes, lo mejor es que la probeis con algo como SSH o quizas sea suficiente con bajar el MTU de loopback (no lo he probado).
  • Otra limitación es la velocidad que se ve bastante afectada.
  • El canal de comunicación es controlado por un tercero (Microsoft) por lo que la modificación/intercepción/almacenamiento de la comunicación es posible para el.

Posibilidades

  • No sería demasiado complicado reescribir modificar el código para usar interfaces TUN en vez de sockets y así poder tener más libertad en la conexión.
  • Otra mejora interesante sería permitir la comunicación simultanea con más de una cuenta de messenger de la lista de contactos y así tener un auténtico servicio de VPN sin un servidor dedicado (OpenVPN/Hamachi por messenger x”D).
  • Incluir otros servicios de mensajería instantanea como jabber, icq, irc…

Descargas

Advertisement

3 Respuestas a “msntunnel: Tuneliza conexiones TCP usando MSN Messenger”


  1. 1 Gabo 15/02/2010 a las 3:27 pm

    Excelente, muy buen aporte, estudio Telecomunicaciones y me es muy interesante!!!!!!!

    Gracias!!!
    Saludos

    • 2 nilp0inter 15/02/2010 a las 3:31 pm

      Gracias! Me alegra que lo encuentres interesante, y si te gusta el tema quizás puedas modificarlo para que fragmente paquetes grandes. El código es libre y gratis como el aire. :)

  2. 3 Rubén 06/11/2010 a las 9:26 pm

    Mmmm… si te digo la verdad, es la primera vez que entro en esta página… y he leido muchos artículos interesantes…

    Estoy estudiando y veo muchas posibilidades a lo que aquí has expuesto.

    Ya esto no es una “lammería” de niño de 15 años, sino que aquí has tratado el tema de tunneling y protocolos… que si te digo la verdad, ahora mismo, esta opción me puede ser muy útil, porque siempre tienes algún contacto conectado en MSN, y poder utilizar un tunel por ahí… puede dar mucho juego!

    Te agrego a favoritos… porque de verdad, me ha dejado impresionado todo el material que tienes aquí

    73


Deja un comentario

Fill in your details below or click an icon to log in:

Gravatar
Logo de WordPress.com

You are commenting using your WordPress.com account. Log Out / Cambiar )

Twitter picture

You are commenting using your Twitter account. Log Out / Cambiar )

Facebook photo

You are commenting using your Facebook account. Log Out / Cambiar )

Connecting to %s




 

enero 2010
L M X J V S D
    feb »
 123
45678910
11121314151617
18192021222324
25262728293031

Twitter


Seguir

Get every new post delivered to your Inbox.