Tuneles: Conexiones INseguras convertidas en seguras

Hola. Esta vez vengo con un paper que a muchos les podra servir de útlidad. Vamos a hablar de los tuneles.

La definición & comprensión, al principio puede ser algo complicado, con lo que intentaré ser lo más claro posible.

¿Que es un Túnel?

Un tunel en la informática tiene el mismo significado que un túnel en nuestro lenguaje humano. Se trata de transportar un protocolo dentro de otro, y es lo que vamos a hacer a continuación.

No me quedo muy claro…

Vamos con un ejemplo entonces.

Imagina que la gente viaja en coche por un tramo, y este tiene gran porcentaje de accidentes con coche.

Por otro lado tenemos el tren por ejemplo que es mucho más seguro y los accidentes por este medio de transporte han sido muchisimos menos, con lo que es más seguro.

¿Que se haria si quisieramos bajar ese porcentaje de accidentes en ese tramo?

Lógicamente, meteriamos el coche dentro del tren y este, pasaria el tramo que es tan peligroso para el coche. Con esto  hemos creado un «tunel», hemos metido el coche dentro del tren para utilizar los beneficios del tren para nuestro vehiculo el coche….

Esto es exáctamente lo que vamos a hacer en este paper, utilizar ssh para obtener las grandes ventajas de su criptografia y asi que nuestras contraseñas/tráfico no viajen por la red en texto plano (totalmente legible).

Los pasos de la conexión

Los pasos que se siguen para crear un túnel son los siguientes:

– El cliente ssh (putty en este ejemplo), conecta con el servidor ssh. Este nos pide user y pass y lo introducimos.

– Una vez logeados correctamente, el serivdor ssh conecta con nuestra máquina por el puerto que hemos querido realizár el tunel.  Se realiza una conexión inversa (reverse). El servidor conecta con el cliente, y le facilita el servicio del túnel creado (en este caso Cpanel, puerto 2550).

Creando el túnel


Para crear el túnel necesitamos una ip de un servidor ssh que tengamos (en este caso 192.168.0.1).

– El puerto de que servicio queremos hacer el túnel (en este caso quiero hacerlo de un panel de control Cpanel que funciona por el puerto 2550)

– Abrir la conexión con el servidor ssh, logearnos con nuestros datos y mantener la sesión activa para que el túnel con el servidor ssh —–> nuestra máquina.   Sigan funcionando.

Manos a la obra……

Aunque parezca una tarea muy tediosa no lo és. Nosotros lo vamos a hacer con putty.

Introducimos en la ventana principal (Session), la ip y puerto de nuestro servidor ssh.

(IP: 192.168.0.1; Puerto: 22)

Connection —> SSH —> Tunnels

Buscamos el texto ‘Add new forwarded port:

Source port: (Escribimos el puerto al que nos conectaremos para abrir el servicio) (mi ejemplo 8888)

Destination: (Escribimos IP:Puerto. La ip del servidor que queremos hacer tunneling y el servicio (puerto)) ( mi ejemplo: 192.168.0.1:2550)

Pulsamos el boton Open.

Introducimos el usuario y password de nuestro servidor ssh y dejamos la sesión activa.

Ahora, como al servicio que queria acceder era un cpanel, y en Source Port hemos elejido de puerto Local 8888, lo único que tenemos que hacer es abrir una ventana de navegador y escribir:

http://192.168.0.1:8888

Con esto tendré acceso al servicio de 2550 del otro lado del túnel, pero pasando por el túnel de SSH, que convertirá la conexión en encriptada.

Un saludo.

ZaPa.

Share

Enviando ficheros con Netcat: La Navaja Suiza

Como muchos sabeis netcat se apoda «La navaja suiza» de los hackers, ya que, como muchos desconocen (yo también) permite hacer muchas más cosas de las que creemos.

Lo que vamos a hacer en este caso es transmitir un fichero con netcat, es muy sencillo.

1. EL SERVIDOR NETCAT (EL QUE ESCUCHA & RECIBE)

Lo primero que tenemos que hacer es en la máquina server (la que recibirá el fichero) dejar netcat a la escucha con el siguiente comando:

#############################
netcat -l -p 1111 > recibido.txt
##########################

Como podeis observar, dejamos netcat a la escucha en el puerto 1111.

Algunos os preguntareis «¿que significa ‘>’?»
Este caracter permite reedirecionar las salidas de los comandos a ficheros de todo nuestro sistema.
Con lo cual, con este comando lo que le decimos es que, la salida de netcat en todo momento lo guarde en el fichero recibido.txt
(Ahora aún no va a generar ningún contenido dentro de recibido.txt ya qué ningún cliente se nos ha conectado al servidor netcat)…

2. LA CONEXIÓN DEL CLIENTE.

Anteriormente hemos dejado el servidor a la «escucha» de que alguien se conecte. Pero nosotros vamos a realizár una conexión pero utilizando tuberias, es decir, «la salida de un comando la pasará a netcat y el servidor lo podrá recibir»…Manos a la obra:

################################
cat ficheroaenviar.txt | netcat IPSERVIDOR  1111
################################

Aquí utilizamos varias cosas nuevas.

– Tuberias (como he dicho anteriormente). Con cat leemos el ficheroaenviar.txt y la salida de cat (el contenido del fichero) se lo pasará a netcat.

– IPSERVIDOR – Este parámetro se debe completar para la conexión desde un cliente a un servidor netcat, si netcat no sabe la ip donde conectarse no realizará la conexión.

– Puerto – Utilizamos el puerto que definimos en el servidor, y es el (1111).

3. LEYENDO EL ARCHIVO

Si todo ha funcionado correctamente, nos dirijimos al terminal donde dejamos el servidor netcat funcionando y pulsamos ControlZ (Control y Z) para pausar la escucha de netcat.

Ahora simplemente nos queda hacer un:

#################
cat recibido.txt
#################

Y podemos observar que tenemos el contenido que creamos en el cliente con el nombre ‘ficheroaenviar.txt’.

Si aplicamos algo de ingenio a todo esto,podemos realizar transferencia de archivos de cualquier tipo,ficheros binarios y demás.

4. AGRADECIMIENTOS.

A todos los foreros de gentoo forums y en especial a Inodoro_Pererya que sin él este howto no hubiera sido posible.
Saludos para todos (;

Un saludo.
Att. ZaPa.

Share