PDF de programación - Protege tus comunicaciones. Túneles SSH, VPN y TLS(SSL) - HACKING SCHOOL

Imágen de pdf Protege tus comunicaciones. Túneles SSH, VPN y TLS(SSL) - HACKING SCHOOL

Protege tus comunicaciones. Túneles SSH, VPN y TLS(SSL) - HACKING SCHOOLgráfica de visualizaciones

Publicado el 28 de Enero del 2019
756 visualizaciones desde el 28 de Enero del 2019
1,6 MB
46 paginas
Creado hace 4a (08/04/2015)
HACKING
SCHOOL

Protege tus comunicaciones.
Túneles SSH, VPN y TLS(SSL)

Antonio F. Díaz
(afdiaz at ugr.es)
2015

Contenido

 Introducción
 SSH

 Túneles SSH. Ej. VNC
 Reencaminamiento (Forwarding)
 Túneles remotos.
 Reencaminamiento dinámico (Dynamic Port Forwarding)

 Túneles HTTP
 SOCAT
 Redes Tor

 VPN

 VPN con SSH
 OpenVPN

 Creando servicios ocultos
 Alternativas

 TLS: Transport Layer Security (versión anterior: SSL)



Interceptando tráfico SSL

2

La comunicación:

 Las aplicaciones y servicios procesan datos que no

suelen estar cifrados.

 Las capas de comunicaciones deber ser rápidas y

ligeras.
 Comunicación por defecto sin cifrar
 Hardware / software: más sencillo.
 Paquetes TCP/UDP, protocolos, perfectamente descritos
 Entre nodos el tráfico puede circular por diversidad de

equipos y redes.
 Redes Wifi permiten que el tráfico esté visible entre los

nodos que tienen acceso a dicha subred

3

¿Por qué hacer segura la
comunicación?

 Multitud de herramientas de análisis de tráfico (Sniffers)

 Genéricos

 Específicos

 Wireshark, Shark for Root (Android)
 Iris (Windows)

 XPLICO: http://www.xplico.org

 Si la información es crítica,

hay que cifrar:

 Aplicación
 Capas de comunicaciones.

 Ocultar el rastro

 Origen, destino, protocolo

4

Recursos de conexión

 Túneles

 Encapsulan un protocolo sobre otro.
 Permiten utilizar protocolos y aplicaciones ya existentes con un

número reducido de cambios.

 Ej: Túneles sobre HTTP, Túneles SSH, Túneles SSL

 Reencaminamiento de puertos

 Acceso a puertos de otros equipos

 VPN

 Red privadas virtuales. Pueden permitir acceso completo.

 Socks / Servidores Proxy

 Protocolo para enrutar paquetes a través de un servidor Proxy.
 Aplicaciones adaptadas: Clientes web, …
 Permite filtrar por: usuarios, máquinas, hora, ...

ssh

5

¿Por qué son necesarios
túneles, VPNs, …?
 Subredes privadas

 Acceso hacia Internet

 Acceso a nodos internos / Cortafuegos

 Reencaminando puertos
 Cortafuegos

ssh

6

Soluciones

 NAT

 VPN

 Acceso transparente a los nodos.

7

 Traducción de direcciones
 De salida: S-NAT
 De entrada: D-NAT
 Reencaminamiento dinámico de puertos del enrutador

al cliente
 UpnP: Internet Gateway dDevice
 NAT-PMP: NAT Port Mapping Protocol
 PCP: Port Control Protocol

 Servidores proxy: Protocolos: SOCK4/SOCK5

 Genéricos
 Servidores con caché para HTTP (Squid)

Elementos de seguridad

 Cifrado

 Simétrico: AES, DES, IDEA, Blowfish, RC4

 Rápido, robusto, menor número de bits para las llaves.

 Asimétrico: RSA, DSA

 Lento, mayor número de bits.
 Gran ventaja: Llaves distintas cifrar/descifrar. Llave pública, llave
privada.

 Ambos elementos se combinan:

 Intercambio de llaves privadas (aleatorias) mediante cifrado
asimétrico.

 Hash: SHA-256, SHA-512, Whirlpool, RDM-160, MD5 (Inseguro)

 Algoritmos que devuelve un valor (firma) para una secuencia de valores de

entrada.
 Checksum: Sumatoria valores módulo N. Muy sencillo. Poco fiable.
 CRC: Comprobación de redundancia cíclica. Ej:CRC32. Comprobación integridad

 Algoritmos robustos criptográficamente:

 Evitar cómo manipular una secuencia que obtenga el mismo resultado
 Evitar obtener información de la secuencia.

8

SSH (Secure Shell)

entre un cliente y servidor.

 Protocolo que permite comunicar de forma segura
 Conexión de terminal, transferencia de datos, ...
 Mecanismos de autenticación

 Password
 Llave pública/privada: RSA y DSA

 Implementación:

 Linux: ssh (cliente), sshd (servidor)
 Windows: putty (cliente), Freesshd (servidor)
 Android: Connectbot

 Puerto 22 (defecto)

Cliente

Servidor

ssh usuario@mimaquina.ugr.es

9

¿Qué podemos hacer con SSH?
 Conexión terminal segura

 Reemplaza: telnet, rsh (inseguros)

 Reencaminamiento puertos
 Tráfico X (Gráficos Unix)

 ssh -X ...

 Acceso a repositorios: GIT, SVN


Intercambio de ficheros:
 gftp, scp (Linux)

 scp -rp usuario@mimaquina.ugr.es:dir_y .

 WinSCP (Windows)
 Filezilla
 Rsync

 rsync -Cavuzn usuario@mimaquina.ugr.es:/home/usuario/misdatos /home/usuario
 sshfs: Acceso a ficheros remotos como sistema de ficheros

 sudo apt-get install sshfs
 sudo sshfs usuario@mimaquina.ugr.es:/ /mnt/dir_x
 sudo umount /mnt/dir_x

10

Creando claves públicas y privadas

 La clave privada es secreta y permite autentificar al cliente.
 Las claves se generan en el cliente.
 La clave pública se copia en los nodos remotos (servidores) y

autorizarán el acceso al cliente que tenga la clave privada asociada.

 ssh-keygen -t rsa

 .ssh/id_rsa.pub ( fichero con clave pública)
 .ssh/id_rsa (fichero con clave privada)

 ssh-copy-id usuario@mifrontend.ugr.es

script que copia la clave pública en el host remoto en el fichero
.ssh/authorized_keys

11

VNC (Virtual Network Computing)

 http://www.realvnc.com (TightVNC, UltraVNC, Remmina)
 Permite control remoto de ordenadores

 Servidor: Ordenador a controlar remotamente
 Cliente: Ordenador desde el que accedemos al sistema (Terminal)

 Multiplataforma (Windows, Linux, Mac, Java, Android, etc)


 Linux: Se puede utilizar diversos “Windows Manager”: GNOME,

Independencia Cliente – Servidor.
KDE, IceWM, …

 Ocupa muy poco espacio.
 Permite conexiones compartidas (varios clientes sobre un servidor)
 Adaptable al ancho de banda disponible: Cambio de profundidad
 Inconveniente: No cifra el tráfico  Solución … Túneles SSL, SSH o

vídeo, compresión,…
VPN

12

Iniciando VNC

En el servidor:
vncserver :1



# Inicio servidor 1 (puerto 5901) puerto 59XX

script de inicio en $HOME/.vnc/xstartup

Otras opciones para el servidor:
vncserver –kill :1
vncpasswd
el password queda en $HOME/.vnc/passwd
Otros parámetros interesantes: -geometry -depth

# elimina el servidor 1


# cambio de password

En el cliente:
vncviewer servidor:1

# Inicia conexión con el servidor:1

Otras opciones para cliente:
vncviewer –shared servidor:1
vncviewer –listen 4722


# Conexión compartida
# Es el cliente el que escucha

13

Reencaminamiento de puerto local con
SSH (Ejemplo con VNC)

 Ej. VNC

 ssh –L 5905:localhost:5905 mifrontend.ugr.es
 vncviewer localhost:5 (en el cliente)

5905

5905

mifrontend.ugr.es

ssh(22)

 Es como si el puerto local “conecta” directamente con el nodo remoto
 El reencaminamiento se puede desactivar en /etc/ssh/sshd_config

 AllowTcpForwarding No

14

Reencaminamiento de puerto local con SSH

 ssh –L puertoAA:hostBB:puertoBB hostSS

 (-g para abrir 0.0.0.0:puertoAA en lugar de 127.0.0.1:puertoAA)

puertoAA

hostSS

hostBB

ssh(22)


 Ej. VNC a un nodo detrás de un frontend

 ssh –L 5905:192.168.2.3:5905 mifrontend.ugr.es
 vncviewer localhost:5

puertoBB

5905

mifrontend.ugr.es

192.168.2.3

ssh(22)

5905

15

Forwarding con SSH
 Crear el fichero $HOME/.ssh/config

Host mifrontend
Hostname mifrontend.ugr.es
User antonio
ServerAliveInterval 60

Host nodo3
ProxyCommand ssh mifronted nc 192.168.2.3 22

 Ej. VNC directo a un nodo detrás de un frontend

 ssh –L 5905:localhost:5905 nodo3
 vncviewer localhost:5
 Se puede acceder al nodo3 de forma transparente: scp, rsync, etc
192.168.2.3

mifrontend.ugr.es

5905

ssh(22)

5905

nodo3

16

Reencaminamiento de puerto remoto con
SSH (Ejemplo con VNC)

 Ej. VNC

 ssh –R 5905:localhost:5905 mifrontend.ugr.es
 El escritorio local queda visible externamente

5905

mifrontend.ugr.es

5905

ssh(22)

 Alguien que acceda al puerto 5905 de mifrontend.ugr.es

realmente accede al nodo

17

Reencaminamiento de puerto remoto con
SSH
 ssh –R puertoAA:hostBB:puertoBB mifrontend.ugr.es

 Permite acceder incluso a nodos que están dentro de la misma

subred interna.

hostBB

puertoBB

Mifrontend.ugr.es

puertoAA

ssh(22)

18

Combinando túneles locales y remotos con
SSH

 ssh –R 5905:localhost:5905 mifrontend.ugr.es

Mifrontend.ugr.es

5905

ssh(22)

 ssh –L 5905:localhost:5905 mifrontend.ugr.es

 El escritorio local queda visible externamente

ssh(22)

5905

5905

19

Openport
Acceso remoto sin “mifrontend”

 https://openport.io
 Acceso gratuito limitado (tiempo/ 10 MB)
 Para abrir un puerto al exterior:

 openport 22
 Pasar el enlace al nodo remoto para que se autorice el acceso a

 Acceder al enlace web para autorizar el acceso (del cortafuegos

ioport.io:XXXX

openport.io)

 ssh -pXXXX usuario@openport.io

 Otra alternativa: (Utilizar Amazon EC2) (gratuito 1 año):

 http://acooke.org/cute/ReverseRem0.html

20

Túneles SSH
en Windows (Putty)

 Reencaminamiento local de un puerto:
 Conf. VNC
 Puerto local

 5901

 Puerto remoto



localhost:5901

Permite definir puertos:
 Locales
 Remotos
 Dinámicos:Socks4/5

21

Opciones usuales para
clientes SSH

 -p: Cambia el puerto (defecto:22)
 -C: Compresión
 -D puerto: Reencaminamiento dinámico

 Servidor proxy

 -X: Reencaminamiento X

22

Túneles HTTP (Httptunnel)

 http://www.nocrew.org/software/httptunnel.html
(Linux gratis), (Windows gratis, versión algo antigua).



 http://http-tunnel.sourceforge.net/
 Suele haber configuraciones de cortafuegos bastante estrictas que sólo permiten el paso

del tráfico HTTP a sus clientes.

 Permite establecer una conexión TCP de un puerto local a un puerto remoto encapsulado

sobre tráfico HTTP.

 Permite atravesar proxy-cache.
 Se suele utilizar en combinación con otro software de VPN para interconectar redes.



Limitación: Sólo se puede abrir una conexión contra el servidor activado.

 Otras alternativas:



Software propietario, crea una VPN con tráfico cifrado lo que permite utilizar diversos programas.

 OpenVPN
 http://www.bypass.cc/
 http://www.http-tunnel.com/html/

 (Multiplataforma, Gratis (baja velocidad))

 Sólo Windows, Gratis (baja velocidad)

23

Configurando HTTPTunnel

 Cliente

 htc -- forward-port 4320 maquina.ugr.es:80
Si el cliente está detrás de un proxy:
 htc --
  • Links de descarga
http://lwp-l.com/pdf15006

Comentarios de: Protege tus comunicaciones. Túneles SSH, VPN y TLS(SSL) - HACKING SCHOOL (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad