jueves, 29 de enero de 2015

Experimentos sin sentido: TOR + Torrents

Debido al bloqueo de TPB de hace unos dias me entró una duda sobre como se podrian combinar Tor y uTorrent y si serviria para algo. He hecho mis averiguaciones sobre el protocolo, he trasteado un rato y aunque lo que he hecho me ha ofrecido resultados poco utiles, si que he podido aprender unas cuantas cosas.

Lo primero de todo, una advertencia que voy a poner en negrita:

Este experimento puede causar graves problemas al aplicarlo en torrents de trackers privados puesto que algunos prohiben el uso de proxys, e incluso puede conllevar la expulsion del usuario o un baneo permanente de ese tracker y otros servidores, si comparten una lista negra de baneos. Si pruebas esto que voy a describir asumes este riesgo. No me responsabilizo de posibles problemas.

Venga, pues vamos a entrar en materia. Lo primero, una capturilla:


En esta captura podemos una sección de las opciones de uTorrent, en la que permite utilizar un proxy para las conexiones, y en ella hay un par de casillas interesantes.

Existe la opcion de usar un proxy para "buscar anfitrión", lo que se hace conectando a los trackers, y la de conectar "compi-a-compi", o sea, con los demás equipos ya sean semillas o leechers.

De ahi me vino la duda, si Tor funciona configurado como un proxy, ¿no se podría encriptar la comunicación con el tracker mediante Tor? Esto me permitiria eludir un posible bloqueo gubernamental.

Entonces me puse a ello. Lo primero que necesitaria es poder acceder a Tor, asi que fui a la pagina del proyecto, www.torproject.org. Alli lo que se encuentra en la pagina principal es el Tor browser, que es un navegador preconfigurado para su uso con Tor. No se trata de lo que busco, asi que accedo a donde pone "View all downloads". Lo que necesito es descargar Vidalia, que es un panel de configuración de Tor y me encuentro tres opciones: Vidalia bridge bundle, Vidalia relay bundle y Vidalia exit bundle. Se puede descargar cualquiera de las tres, ya que solo se diferencian en la configuración predeterminada.

Descargamos e instalamos. Despues de la instalación nos muestra la opción de abrir el programa. Quizás nos muestre algún error dependiendo del paquete que hayamos descargado, pero podemos ignorarlo.

Si todo va bien se nos mostrará, aparte de un nuevo icono en el area de notificaciones, la siguiente pantalla:


Estamos ya conectados a Tor, pero no de la manera que queremos. Es el momento de presionar sobre "Settings" (aunque "Setup relaying" también nos lleva al mismo sitio que queremos modificar). En la pestaña Appeareance cambiamos el idioma:


Lo siguiente que vamos a hacer es desactivar que se inicie el programa al iniciar el sistema operativo. Quizás a otras personas le sirva, pero no es mi caso, así que vamos a la pestaña "General" y desmarcamos la casilla "Iniciar Vidalia cuando inicie mi sistema".


Y ahora cambiamos lo mas importante. En la pestaña "Compartiendo" marcamos la opcion de "Ejecutar como solo cliente".


A partir de este momento, en cuanto le demos a Aceptar, tendremos configurado nuestro sistema para usar Tor de una manera mas general de la que nos permitiria Tor browser, incluido configurarlo dentro de otras aplicaciones. Podemos detener y volver a iniciar Tor para que se apliquen los cambios.

Ahora, nuestro equipo tiene un proxy incorporado, que tendremos que configurar en el programa que queramos usar. Los datos de configuración que necesitamos son los siguientes:

Tipo de proxy: Socks5
Dirección IP: 127.0.0.1
Puerto: 9050

Seguramente lo de 127.0.0.1 os suene. Aparecía en la Parte III, pero no lo mencionaba. Un equipo tiene siempre, aunque no tenga ninguna conexión de red, una dirección IP para usar servicios internos diseñados para funcionar a traves de red, y esta dirección es la 127.0.0.1. Siempre que veais esa dirección o "localhost", se refiere a nuestro propio equipo, e incluso nos permite realizar un ping (aunque el tiempo que tarda es inferior a milisegundos).

Si quisieramos aplicarlo a cualquier programa tendriamos que usar esa información. Es importante remarcar que es un proxy Socks5, si se intenta establecer como proxy HTTP no funcionará.

Ahora bien, ¿que ocurre si lo intentamos usar en uTorrent? En principio, al conectar con un tracker le mandamos una serie de datos sobre nuestra IP, nuestro puerto, los datos que tenemos del torrent... Vamos, lo que os puse en este post del año pasado. Los datos que enviamos son datos correctos, con la IP externa real de nuestro programa. Eso si, algunos servidores rechazan las conexiones por proxy, o si la IP no concuerda entre la que se pasa en la información sobre el torrent con la conexión en si. De hecho, sería un sistema muy simple para realizar un ataque a un servidor. Se indica la dirección de un servidor al tracker diciendo que tiene un archivo muy buscado (por ejemplo, con una nueva version de Ubuntu) y todos los interesados se tirarán como un enjambre a realizar peticiones a ese servidor.

En las pruebas que he realizado, trackers como AsiaTorrents me han mostrado un mensaje de error, mientras que otros trackers publicos han funcionado correctamente. Mi consejo, podeis intentarlo, siempre que tengais dos clientes de torrents separados, uno para trackers privados y otro para trackers publicos.

Un saludo.

No hay comentarios:

Publicar un comentario