jueves, 28 de febrero de 2019

Arquitectura tor: Servicios Ocultos

Se trata de servicios comunes que funcionan utilizando la red tor para envío y recepción de paquetes y el único requisito obligatorio que debe cumplir cualquier servicio oculto es que utilice protocolo TCP o un envoltorio para convertir cualquier paquete de datos en otros protocolos como UDP o TCP.
Como el lector podrá imaginarse, sichos servicios pueden contener fallos de seguridad, los cuales puede ser aprovechados por un atacante y de esta forma, conseguir romper su anonimato. Ejecutar procedimientos de pentesting contra servicios ocultos en Tor no es demaciado complejo y de hecho, es posible hacerlo sin conocimientos demaciados profundos sobre su arquitectura.

Instalación y configuración de servicio oculto

 

En primer lugar, un servicio oculto puede ser de cualquier tipo, un servidor HTTP, FTP, SSH, SMB, etc. Se trata de servicios comunes que funcionan utilizando la red Tor para el envío y recepción de paquetes, el único requisito obligatorio es que dichos servicios utilicen protocolo TCP. Evidentemente para seguir hablando de anonimato y privacidad tanto en el servicio como para sus clientes, la ubicacion de ambas partes debe ser desconocida y para ello, se siguen los siguientes pasos a la hora de instalar, configurar y acceder a un servicio Tor.

Opciones de configuración para servicios ocultos

Una vez comprendidos los conceptos básicos sobre el funcionamiento de los servicios ocultos en Tor, ahora es importante comprender como se puede configurar un servicio oculto es una instancia de Tor. El procesimiento no es complejo, solamente es necesario utilizar las opciones de configuración adecuadas y entender el efecto que producen. Para poder establecer un servicio oculto, en primer lugar se debe instalar, configurar e iniciar correctamente cualquier tipo tipo de servicio basado en TCP, por ejemplo un servidor HTTP, SSH, SMB, etc. Dicho servidor puede encontrarse en la misma máquina donde donde se ejecuta la instancia de Tor o en otra que sea accesible. A continuación se debe editar el archivo "torrc" y establecer las propiedades con sus correspondientes valores.

HiddenServiceDir

Esta dirección permite establecer el directorio en el que se almacena la clave privada del servicio y la dirección "onion" que se calcula a partir de dicha clave privada. Esta dirección debe ser distribuida a aquellos clientes a los que se destina el servicio y se compone por una cadena de texto de 16 caracteres, en donde solamente se admiten las letras de "a" y "z" y numeros de "2" a "7". Estas condiciones vienen definidas por el algoritmo Base32, el cual es utilizado por la instancia Tor para calcular las direcciones. Este directorio será creado automaticamente y en caso contrario intentará leer los ficheros "hostname" y "private_key" ya que asume que si el directorio se encuentra creado, es posible que el servicio oculto ya a sido creado anterioremente. Esto quiere decir que la clave privada generada la primera vez que se ejecuta es de vital importancia y puede ser utilizada en otras instancias que pueden estar hubicadas en otros ordenadores.

HeddenServicesPort

Con esta directiva de configuración es posible especidicar el puerto que se abrirá en la web profunda de Tor y que estará vinculado con la dirección que se ha generado con la propiedad "HiddenServiceDir". Esto quiere decir que el uso de esta propiedad depende de "HiddenServiceDir" para que surta el efecto esperado. Por otro lado, esta directiva permite crear un túnel entre la web profunda de Tor y una interfaz de red con un puerto que puede apuntar o bien a la maquina local o cualquier otra ubicación accesible por la instancia. En dicho puerto de existir un servicio que pueda procesar las peticiones entrantes. Es importante recordar que dicho servicio debe funcionar sobre el protocolo TCP. La forma en la que se debe utilizar esta opción de configuración en el fichero "torrc" es el siguiente:
HiddenServicePort 22 127.0.0.1:2222
El primer argumento de la directiva es el valor "22", que corresponde al puerto que se vinculará con la dirección ".onion" genera automáticamente por la propiedad "HiddenServiceDir".
Posteriormente, se  indica el "endpoint" de las peticiones realizadas contra la dirección ".onion" en el puerto "22", que en este caso concreto, serán redireccionadas a la máquina donde se ejecuta la instancia "127.0.0.1" en el puerto "2222".
Con el uso de estas dos opciones de configuración es subiciente para indicarle a la instancia que debe crear un servicio. Cabe notar que el uso de ambas opciones son oblicatorias y sus valores deben establecerse correctamente.
HiddenServiceDir    /home/adastra/hidden_service_SSH/
HiddenServicePort  22 127.0.0.1:2222
En el caso de utilizar las opciones de configuración que se indica más arriba, y se creará el directorio " /home/adastra/hidden_service_SSH/" y en él incluirán los ficheros "hostmane" y "private_key" del servicio oculto. Posteriormente, todas las peticiones entrantes a la dirección ".onion" generada en el fichero "hostname" por el puerto "22", serán enrrutadas automáticamente a la máquina local en el puerto "2222".

por Daniel Echeverri Montoya.

No hay comentarios.: