Inicio > Hacking, Networking, Programacion, Services - Software > Preservando el Anonimato y Extendiendo su Uso – Conceptos Esenciales de TOR – Parte I

Preservando el Anonimato y Extendiendo su Uso – Conceptos Esenciales de TOR – Parte I


Hace algunas semanas en este blog se registro una entrada sobre el uso básico de Tor, en el que solamente se indicaba el procedimiento de instalación más sencillo y como otras herramientas como ProxyChains, TorTunnel y Vidalia. En esta ocasión se intentará ir “un poco más allá” e intentar explicar algunas características avanzadas de TOR para garantizar el anonimato de las peticiones realizadas sobre redes tipo TCP y las medidas que se deben tener presentes para no permitir “fugas” de paquetes de forma directa contra el destino sin pasar por la red TOR.

Como ya se ha indicado anteriormente en este blog, TOR es un servicio orientado al establecimiento de comunicaciones anónimas utilizando una serie de nodos conectados de forma segura que son también conocidos como “circuito virtual” tales nodos se encargan de cifrar los paquetes que viajan por medio de ellos, de esta forma se enmascara el origen de la petición cuando es entregada a su destino, sin embargo, todas las peticiones son soportadas únicamente bajo el protocolo TCP, por este motivo cuando se utilizan peticiones con un protocolo diferente como UDP o ICMP, dichas peticiones no pasan por medio del circuito virtual y en lugar de ello se establece una conexión directa entre el cliente y su destino, dejando de esta forma una potencial “fuga” de la identidad del cliente, esta es una de las consideraciones que se debe tener en cuenta a la hora de utilizar TOR, sin embargo no es la única, a lo largo de esta serie de entradas se intentará ir profundizando poco a poco sobre estos temas.

A continuación se indican los tópicos más relevantes en el uso TOR y herramientas relacionadas.

Instalación de Herramientas para garantizar el anonimato.

TOR

En la entrada anterior relacionada con TOR, se ha indicado el proceso de instalación de TOR partiendo de un repositorio especifico y utilizando el comando apt-get de Debian, sin embargo es conveniente tener las ultimas versiones estables de TOR en lugar de las versiones contenidas en la mayoría de repositorios de fuentes relacionados, para esto es necesario descargar el código fuente desde aquí: https://www.torproject.org/download/download.html.en (TOR se encuentra escrito en lenguaje C, lo que permite utilizar herramientas de compilación y construcción tales como gcc)

Posteriormente es necesario tener instaladas las librerías dependientes de TOR que en concreto son: libevent-dev y libssl-dev finalmente ejecutar los comandos de construcción de programas escritos en C:

>./configure

>make

>make install

>tor

Aug 26 23:33:00.915 [notice] We now have enough directory information to build circuits.

Aug 26 23:33:00.915 [notice] Bootstrapped 80%: Connecting to the Tor network.

Aug 26 23:33:01.201 [notice] Bootstrapped 85%: Finishing handshake with first hop.

Aug 26 23:33:01.754 [notice] Bootstrapped 90%: Establishing a Tor circuit.

Aug 26 23:33:02.823 [notice] Tor has successfully opened a circuit. Looks like client functionality is working.

Aug 26 23:33:02.823 [notice] Bootstrapped 100%: Done.

Con lo anterior se tiene TOR “up and running”, ahora se pueden utilizar herramientas y técnicas que permitan preservar el anonimato y extender su uso, como por ejemplo, utilizando TOR junto con otras aplicaciones, lo que es conocido como “Torify” de software. A parte de esto, el comando TOR tiene una serie de opciones que le permiten al usuario personalizar su comportamiento y distintos mecanismos de conexión. El listado de opciones y su significado se encuentran en: https://www.torproject.org/docs/tor-manual.html.en

Vidalia

Del mismo modo que se ha instalado TOR, es posible instalar Vidalia, es decir, a partir del código fuente y personalizar su funcionamiento, para ello es necesario descargar el software desde: https://www.torproject.org/projects/vidalia.html.en una vez descargado es necesario cumplir con una serie de dependencias y tener algunas herramientas instaladas como por ejemplo “cmake”

>apt-get install qt-sdk

>apt-get install cmake

Luego ejecutar algo como

>mkdir build && cd build

>cmake ..

Con el comando anterior se puede ejecutar el comando “make install” para crear los ejecutables y sus correspondientes enlaces simbólicos.

Proxychains

Proxychains es un programa que permite enrutar todas las peticiones TCP realizadas por un cliente por medio de un proxy soportando SOCKS4, SOCKS5, HTTP CONNECT, es útil en entornos donde la salida a internet es por medio de un proxy o para utilizar dos o mas proxies en cadena, además de lo anterior, otra característica importante, es que brinda la capacidad de ejecutar comandos que no tienen soporte para establecer un proxy para la conexión. Como se ha dicho en una entrada anterior, se puede instalar simplemente utilizando el comando apt-get, sin embargo, como las herramientas anteriores, resulta mucho mejor hacerlo desde el código fuente, se puede obtener desde aquí: http://proxychains.sourceforge.net/ Para instalarlo se sigue con el mismo procedimiento de los programas anteriores, es decir, compilar, construir e instalar.

>./configure

>make

>make install

Finalmente, para que este programa funcione correctamente es necesario ubicar el fichero de configuración proxychains.conf en la ruta adecuada, una vez se ejecuta proxychains, este buscará el fichero en las siguientes rutas en este mismo orden:

1. ./proxychains.conf

2. $(HOME)/.proxychains/proxychains.conf

3. /etc/proxychains.conf

Se puede ubicar en cualquiera de las anteriores ubicaciones, asegurándose que este mismo fichero no se encuentre en ninguna de las rutas anteriores para que no existan conflictos. Este fichero es importante ya que es allí donde se definirá el proxy o la cadena de proxies que utilizará proxychains para establecer una conexión con un host remoto. Se indicará con mayor detalle en la siguiente sección cuando se indique la instalación de privoxy

Privoxy

Privoxy es un proxy web con capacidades de filtrado y mejora de la privacidad del usuario, permite controlar el acceso a información personal y filtrar muchos ads de internet que pueden representar una amenaza o simplemente basura. El procedimiento de instalación, nuevamente es igual al que se ha indicado anteriormente (desde código fuente) sin embargo, desde la instalación es posible especificar parámetros que le permitirán ejecutarse de un modo más seguro.
En primer lugar, se recomienda NO ejecutar este comando como root, de hecho, no se recomienda en lo absoluto ejecutar ninguno de los comandos anteriores como usuario root, se recomienda la creación de un usuario y un grupo para este fin.

Una vez hecha esta aclaración, para instalar privoxy de forma segura se siguen los siguientes pasos:

>autoheader && autoconf

>./configure ––disable-toggle ––disable-editor ––disable-force

>make

>make -n install

Con los comandos anteriores quedará instalado Privoxy y ahora se puede utilizar con TOR, Proxychains y vidalia. Privoxy puede ser configurado por medio de las opciones incluidas en el fichero de configuración de Privoxy ubicado en /etc/privoxy/config desde allí se indican todas las opciones de configuración del proxy, incluyendo el puerto utilizado para recibir peticiones, si se ha instalado como servicio, es necesario ejecutar /etc/init.d/privoxy start (de este modo leerá el fichero de configuración en el directorio /etc/privoxy) si se ejecuta desde cualquier otro directorio es necesario tener el fichero de configuración ubicado en dicho directorio.

Uniendo Servicios

Privoxy, TOR y vidalia se pueden desde una única interfaz por medio del uso de las propiedades de Vidalia. Por defecto, Vidalia siempre intentará iniciar el servicio de TOR realizando todas las operaciones de conexión y establecimiento del circuito para conectarse con la red TOR, sin embargo, permite también iniciar un proxy local una vez se ha iniciado el servicio de TOR, es aquí donde se puede especificar que se debe iniciar privoxy para realizar las peticiones a sitios remotos, para hacer esto, desde Vidalia ir a “Preferencias → General” y en la opción “Aplicación Proxy” seleccionar “Iniciar una aplicación proxy cuando Tor se inicie” incluyendo como comando “/etc/init.d/privoxy” y como parámetro del comando “start”.

Finalmente, para utilizar proxychains junto con Privoxy y Tor es necesario establecer las propiedades de configuración correspondientes, en primer lugar, es necesario indicar a Privoxy que las peticiones entrantes deben de ser enviadas directamente al servicio de TOR (que por defecto se inicia en el puerto 9050) para esto se edita el fichero “/etc/privoxy/config” incluyendo la linea:

forward-socks5 / 127.0.0.1:9050 .

con esto, las peticiones que se envían al puerto 8118 (puerto por defecto de Privoxy son redireccionadas al puerto 9050 en la maquina local, donde se encuentra en ejecución el servicio de TOR. Finalmente es necesario configurar Proxychains para que todos los comandos ingresados desde consola utilizando este comando sean enviados directamente a Privoxy, el cual a su vez, enviará la petición a TOR. Para esto es necesario editar el fichero de configuración de proxychains que como ya se ha indicado anteriormente, se puede ubicar en /etc/proxychains.conf se debe incluir la siguiente linea:

socks5 127.0.0.1 8118

TorButton

TorButton es una extensión de Firefox y esta diseñada específicamente para navegar de forma anónima utilizando TOR, ademas de servir como puente entre TOR y el navegador, también realiza una serie de verificaciones sobre los sitios visitados para evitar fugas de identidad causadas por ads hostiles o cualquier plugin que intente acceder a información privada contenida en el navegador, por este motivo, plugins como Java, Flash entre otros, son desactivados por esta extensión por razones de seguridad, ademas de esto cambia el “user-agent” del navegador y también maneja de forma segura las cookies existentes y las nuevas después de haber iniciado TorButton. La instalación es muy sencilla, solamente es necesario descargar la extensión de Firefox y ejecutarla desde el navegador, dicha extensión puede ser automáticamente instalada desde aquí: https://www.torproject.org/torbutton/index.html.en

Una vez se reinicia el navegador web, la extensión queda correctamente instalada en el navegador y puede ser personalizada (debe ser personalizada) con el fin de garantizar el anonimato con esto en mente, es necesario establecer algunas opciones de configuración:

Establecer el proxy (privoxy instalado anteriormente) presionando click derecho sobre el icono de TorButton y en preferencias, seleccionar “Configuración del Proxy → Usar una configuración de proxy personalizada” y desde allí ingresar el servidor SOCKS5 en el puerto 8118 (donde se encuentra privoxy ejecutándose) también es necesario indicar el proxy HTTP y el proxy SSL indicando los mismos valores, es decir, host: 127.0.0.1 y el puerto 8118. Finalmente indicar que no hay proxies para: “localhost; 127.0.0.1; <local>”.

Para comprobar que todo ha ido bien, ir hacia el sitio de comprobación de TOR: https://check.torproject.org/ en dicha pagina se indicará si el navegador esta utilizando adecuadamente TOR para realizar las peticiones, por otro lado también es posible consultar la dirección IP desde un servicio como: http://www.cualesmiip.com/ se podrá apreciar que se enseñará una dirección IP completamente distinta a la que frecuentemente utiliza el ISP para realizar las peticiones en internet.

Con todos los pasos anteriores se tiene una plataforma base para navegar y realizar operaciones de forma anónima, ahora el usuario esta seguro que su identidad no se registrará en un sistema remoto, pero, realmente cuenta con dicha seguridad? Realmente su identidad es anónima en los sitios que visita? Lo mas probable es que la respuesta sea NO, ya que es necesario tener consideraciones adicionales para evitar determinadas fugas de información. En las próximas entradas se indicarán las medidas y las opciones de configuración que se deben tener en cuenta para evitar fugas de información privada.

  1. Sergio
    octubre 19, 2011 en 11:45 pm

    Excelente trabajo. Gracias.

  2. br3akl00p
    enero 23, 2012 en 12:56 pm

    Muy buen trabajo! Si me permites el comentario, en la parte de instalación de privoxy, yo recomendaría leer atentamente el fichero INSTALL, si no, no sale bien

  3. ernesto antonio
    enero 27, 2012 en 12:35 am

    Hola dastra, estoy totalmente deacuerdo con lo que dices y depronto esta inquietud le pueda ser de utilidad a otros users:

    Estaba tratando de conseguir el codigo fuente del Tor lo he bajado de este link:

    http://webscripts.softpedia.com/script/Networking-Tools/Tor-54065.html

    me gustaria saber tu punto de vista al respecto, por el momento lo he descargado compilado e instalado, ahi que tener en cuenta que la conexion hacia la red tor la estoy haciendo desde un pais hasta el cuello de dictaduras, por lo que en windows debo realizar un Bridge para poder utilizar el Tor browser, Ahora en linux al ejecutar este source code me sale lo siguiente:

    Jan 26 13:36:48.856 [notice] Tor v0.2.2.35 (git-b04388f9e7546a9f). This is experimental software. Do not rely on it for strong anonymity. (Running on Linux x86_64)
    Jan 26 13:36:48.857 [notice] Configuration file “/usr/local/etc/tor/torrc” not present, using reasonable defaults.
    Jan 26 13:36:48.858 [notice] Initialized libevent version 1.4.13-stable using method epoll. Good.
    Jan 26 13:36:48.858 [notice] Opening Socks listener on 127.0.0.1:9050
    Jan 26 13:36:48.933 [notice] Parsing GEOIP file /usr/local/share/tor/geoip.
    Jan 26 13:36:49.108 [warn] You are running Tor as root. You don’t need to, and you probably shouldn’t.
    Jan 26 13:36:49.171 [notice] OpenSSL OpenSSL 0.9.8k 25 Mar 2009 [9080bf] looks like it’s older than 0.9.8l, but some vendors have backported 0.9.8l’s renegotiation code to earlier versions, and some have backported the code from 0.9.8m or 0.9.8n. I’ll set both SSL3_FLAGS and SSL_OP just to be safe
    Jan 26 13:36:49.188 [notice] Bootstrapped 5%: Connecting to directory server.
    Jan 26 13:36:49.188 [notice] I learned some more directory information, but not enough to build a circuit: We have no network-status consensus.
    Jan 26 13:43:58.144 [warn] Problem bootstrapping. Stuck at 5%: Connecting to directory server. (No route to host; NOROUTE; count 6; recommendation warn)
    Jan 26 13:55:08.757 [notice] Bootstrapped 10%: Finishing handshake with directory server.
    Jan 26 14:25:38.527 [warn] Problem bootstrapping. Stuck at 10%: Finishing handshake with directory server. (No route to host; NOROUTE; count 10; recommendation warn)

    Creo que no se ha podido establecer la conexion con la red Tor porque desde aca deben estar bloqueando la solicitud hacia el nodo por defecto, me imagino que si vuelvo hacer un Bridge no tendria problemas para establecer la conexion, pero la verdad nose como.

    Saludos

  4. enero 27, 2012 en 8:53 am

    Efectivamente, tu conexión con la red de TOR no ha podido ser establecida, muy probablemente el error esta en que los bridges que estas usando ya no estan activos y/o se encuentran bloqueados. Has intentado establecer un relay (repetidor) en tu instancia de TOR? para solucionar el problema (independiente de las restricciones que existan en tu pais) tienes las siguientes opciones:

    1. Crearte un relay en tu instancia de TOR y quitar la opción de UseBridges de tu fichero torrc.
    2. Usar un listado actualizado de bridges de TOR (los que te envien por correo, un día pueden funcionar pero al siguiente no, por lo tanto tienes que estar consultando constantemente cuales son los bridges activos en el momento de usar TOR y actualizarlos en tu fichero de configuración torrc)

    Estos pasos se explican en estas publicaciones:

    http://thehackerway.com/2011/10/19/preservando-el-anonimato-y-extendiendo-su-uso-%E2%80%93-relay-y-bridges-en-tor-%E2%80%93-parte-v/

    http://thehackerway.com/2011/10/21/preservando-el-anonimato-y-extendiendo-su-uso-%E2%80%93-relay-y-bridges-en-tor-%E2%80%93-parte-vi/

    http://thehackerway.com/2011/10/24/preservando-el-anonimato-y-extendiendo-su-uso-%E2%80%93-relay-y-bridges-en-tor-%E2%80%93-parte-vii/

    Ya nos contaras si tienes problemas con tu configuración, si es así publica tu fichero torrc y le hechamos un vistazo.

    Un Saludo.

  5. ernesto antonio
    enero 28, 2012 en 12:08 pm

    Uy man :/ nose como agradecerte enserio :/ no te imaginas lo bien que se siente que alguien te heche una mano :) intentare todo lo que me dices y te comento, de ante mano muchas gracias y tambien cuentas con mi apoyo para lo que necesites!

    • enero 31, 2012 en 3:11 pm

      De nada hombre, para eso estamos, para ayudarnos entre todos…
      Un Saludo.

  6. lio
    febrero 2, 2012 en 3:29 am

    ernesto antonio :
    no te imaginas lo bien que se siente que alguien te heche una mano…. de ante mano muchas gracias y tambien cuentas con mi apoyo para lo que necesites!

    Maldición, estoy totalmente de acuerdo….

    Había perdido esa “sed de conocimiento”, pero siento como vuelve lentamente…
    Se te agradece man.. ;)

  7. elrabana
    julio 20, 2012 en 11:05 pm

    hola e estado como una semana tratando de intalar tor pero no puedo

    tengo backtrack 5 genoma 32 bit r2 y por fin pude que ande vidala pero nose porque no se conecta con firefox ni con chrome e intentado de todo
    en chrom sale

    514 Authentication required.

    y en firefox uso el que biene con backtrack y intale TorButton y puse los puertos y nada me pueden ayudar porfa!!!!

  8. Jose
    noviembre 29, 2012 en 11:59 pm

    Hola Adastra,
    No se si empezar a considerar todo esto o si valga la pena, pues se me complica un tanto el asunto cuando veo que al cerrarse ubuntu aparece una pagina, o pantalla, en negro, con mucha informacion y en la misma dice: “SSL tunnel is disable”. Si el servidor ha desconectado la opcion de encriptamiento que sentido tiene configurar Tor?.
    Esta es la duda que tengo pues yo no he desabilitado nada en mi sistema. Ni siquiera se como se hacen estas cosas. Gracias por vuestra atencion.

    • noviembre 30, 2012 en 8:25 am

      Has leído solo la primera parte, son 42.
      Normalmente se suele utilizar SSH para cifrar el trafico “end-to-end” a nivel de capa de transporte, de este modo se evitan muchos de los ataques que son comunes en TOR.
      Sigue leyendo y esforzándote más para encontrar las respuestas a tus preguntas.

  1. marzo 3, 2014 en 9:02 am
  2. marzo 10, 2014 en 9:00 am

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

Únete a otros 927 seguidores

%d personas les gusta esto: