Usar PuTTy para conexión a un servidor SSH oculto con TOR

Iniciado por aaronduran2, 21 Agosto 2011, 00:59 AM

0 Miembros y 1 Visitante están viendo este tema.

aaronduran2

Hola. Estuve probando los servicios ocultos de TOR para ver cómo funcionaba. El primer intento, con una web por el puerto 80, fue perfecto. Con la dirección '.onion' y el proxy configurado podía acceder perfectamente.
Ahora lo estoy intentando con un servidor SSH, pero no doy con la manera para que PuTTy se conecte a él.

Configuración de 'torrc' en servidor Debian:

HiddenServiceDir /var/lib/tor/hidden_ssh/
HiddenServicePort 22 127.0.0.1:22


Cuando reinicio el servicio, obtengo perfectamente la URL que genera TOR para ese servicio. Pero no puedo conectarme con PuTTy.
Configuré el proxy del programa para que use Socks4 con IP 127.0.0.1 y puerto 9050 (por defecto de TOR), pero no es capaz de conectarse.
Pienso que el problema reside en la resolución de DNS, pero no estoy seguro.
¿A qué se podría deber? No consigo mucha información de esto en la red :-\

Gracias de antemano.

kichan992

hola amigo como estas lei tu pregunta y me parecio muy interesante pero hay algo q desconozco tu mencionas que lo pudistes crear una web y acaba mi pregunta
te muestra tu web en los servicios ocultos de la red tor me refiero si tu web tiene por alguna forma decirlo una direccion ".onion" y la otra pregunta es 
si una vez instalado y configurado tor Tu puedes ver los servicios ocultos de la red tor??? SI ES ASI ME PUEDES ENVIAR LA FORMA COMO TE MOSTRO ESOS SERVICIOS OCULTOS DE LO AGRADECERIA MUCHO 

GRACIAS.

adastra

Bien,
Tienes que modificar el fichero de configuración del cliente SSH para que funcione con un proxy.
Este tema en concreto lo voy a publicar la proxima semana en mi blog personal, durante los proximos 2 meses se publicarán entradas relacionadas con TOR y redes anonimas:

http://thehackerway.wordpress.com/2011/10/10/preservando-el-anonimato-y-extendiendo-su-uso-%e2%80%93-conceptos-esenciales-de-tor-%e2%80%93-parte-i/

http://thehackerway.wordpress.com/2011/10/12/preservando-el-anonimato-y-extendiendo-su-uso-%e2%80%93-medidas-para-garantizar-el-anonimato-%e2%80%93-parte%c2%a0ii/

Ya que aun no estan publicadas en el blog, te posteare un fragmento de la entrada completa aquí.

Como podras ver, tendras que editar el fichero de configuración del cliente ssh_config y utilizar la opcion ProxyCommand

Por otro lado, olvidate de resoluciones DNS, las rutas .onion no son dominios o subdominios DNS. Espero que el siguiente contenido aclare tus dudas, si tienes problemas, pregunta e intentaré contestarte.








Preservando el Anonimato y Extendiendo su Uso – Utilizando SSH y TOR juntos – Parte IX


CONEXIÓN A UN SERVICIO SSH EN LA RED DE TOR.

Aunque como se ha podido comprobar en la entrada anterior, realizar una conexión a un servidor web ubicado en algún nodo (ubicación real desconocida) en la red de TOR es tan sencillo como abrir un navegador web, dirigir el trafico a TOR (como por ejemplo con TorButton) y acceder a la dirección publica del servicio, finalizada con .onion, en el caso de SSH este procedimiento no es tan sencillo como simplemente acceder directamente a la dirección .onion creada por TOR para su posterior acceso, para acceder al servicio TOR desde el cliente SSH, es necesario utilizar un proxy o un relay SOCKS que permita recibir la petición del cliente SSH y enviarla por la red de TOR, para hacer esto pueden existir muchas alternativas sin embargo las mas conocidas son, utilizar SOCAT como relay o utilizar un proxy.

Utilizando connect-proxy

Se trata de una pequeña aplicación escrita en lenguaje C que actúa como un Relay entre un cliente y un proxy SOCKS o un túnel HTTP, esta funcionalidad permite a cualquier cliente realizar conexiones a dicho relay y enviar paquetes de datos a un destino determinado, para instalar esta utilidad basta con ejecutar el comando "APT"

    >apt-cache search connect-proxy

    connect-proxy – Establish TCP connection using SOCKS4/5 or HTTP tunnel

    >apt-get install connect-proxy

Posteriormente, su uso es sencillo, solamente basta con editar el fichero de configuración del cliente SSH ubicado en /etc/ssh/ssh_config e incluir la opción "ProxyCommand" tal como se indica a continuación:

    ProxyCommand connect -S localhost:9050 %h %p

Una vez editado el fichero de configuración, es posible realizar la conexión con el servicio SSH por medio de la red de TOR utilizando la dirección onion generada por SSH de la siguiente forma:

    >ssh adastra@mik3lryhrqkt6rts.onion -p 22

El comando anterior ejecutará antes que nada, el comando "connect" con los parámetros establecidos, de esta manera se podrá realizar una conexión directamente a TOR, (se asume que se encuentra en ejecución en el puerto por defecto 9050, en el caso de que sea otro distinto, indicarlo en el la opción ProxyCommand)

Utilizando SOCAT

Este caso es también muy sencillo, solamente es necesario utilizar SOCAT para abrir un puerto en la máquina local y posteriormente ejecutar el relay de cualquier conexión entrante por dicho puerto hacia el servidor remoto pasando por un servidor SOCKS (que en este caso es evidentemente el servicio de TOR).

La apariencia de dicho comando puede ser similar a la siguiente:

    >socat TCP4-LISTEN:4444,reuseaddr,fork SOCKS4A:127.0.0.1:ik3lryhrqkhDDSrts.onion:22,socksport=9050

En este caso, se abre el puerto 4444 en la maquina local, indicando que cualquier conexión debe ser bifurcada a un proceso hijo, de modo tal que si dicha conexión finaliza, aun el puerto continué abierto, por otro lado con la especificación SOCKS4A se indica que se utilizará un proxy SOCKS4A para realizar la conexión remota cuyo puerto es el 9050 (puerto por defecto de TOR, especificar otro en el caso que sea distinto a este), posteriormente se indica la dirección onion donde se encuentra localizado el servicio en la red TOR y su puerto correspondiente.

Una vez se ha iniciado este relay con SOCAT, se utiliza el cliente SSH para realizar la conexión con el servicio SSH remoto realizando la conexión con el puerto que se ha abierto con SOCAT (4444).

    >ssh adastra@localhost -p 4444

Se introduce la contraseña y con esto se completa la conexión con el host remoto.

Utilizando Corkscrew

Corkscrew es una herramienta escrita con el fin de realizar "tunneling" de sesiones SSH a través de proxies HTTP.

Dado que funciona como proxy HTTP no es posible utilizarlo junto con TOR, sin embargo se indica su uso ya que es otra solución de "tunneling" de sesiones SSH

En primer lugar es necesario instalar Corkscrew, la versión a la fecha de escribir este documento es la 2.0 y se puede descargar el código fuente, compilarlo e instalarlo. Descargar desde: http://www.agroman.net/corkscrew/corkscrew-2.0.tar.gz

Descomprimirlo y posteriormente instalar utilizando configure y make

    >./configure

    >make

    >make install

Posteriormente, editar el fichero de configuración del cliente SSH, que como ya se ha dicho se encuentra ubicado en /etc/ssh/ssh_config e incluir la linea que indica que se debe ejecutar el proxy

    ProxyCommand corkscrew proxy 8080 %h %p

Asumiendo evidentemente que en la maquina "proxy" se encuentra un proxy HTTP en ejecución en el puerto 8080.

Posteriormente, tal como ya se ha visto, se intenta realizar una conexión con el servicio SSH utilizando corkscrew

    >ssh -p 22 root@maquina_remota

Los mecanismos indicados permitirán realizar una conexión con la maquina remota sin conocer la ubicación real de la misma (sin conocer la dirección IP o algún nombre de dominio), aunque evidentemente, si el usuario que se conecta a la maquina remota no se encuentra en un entorno chrooted o los permisos de ejecución de ciertos comandos no se encuentran correctamente restringidos, para dicho usuario no será difícil saber exactamente donde se esta ejecutando el servicio, por este motivo se recomienda seguir las pautas pertinentes al momento de exponer este servicio por medio de TOR.