1-7: Secure Shell - SSH
Mr. kl0nk Manson
kl0nk@0ri0n.org
Indice
- Introduccion
- Un Poquito de su historia
- Para que nos sirve esto?
- Tipos de Ataques que proteje el SSH
- Protocolos de Secure Shell
- Caracteristicas de:
- a.- Protocolo de autenticacion
- b.- Protocolo de conexion
- c.- Protocolo de Transporte
- Algoritmos de encripcion que utiliza el SSH
- a.- Cifrado para la encripcion
- b.- Cifrado para la autentificacion
- Protocolos desarrollados sobre SSH
- De donde lo puedo bajar?
- Comandos
- Conclusion
Introduccion
Secure Shell (SSH) es un programa que permite realizar conexiones con otras maquinas a traves de una red, ejecutar programas en una maquina remota, y copiar archivos de una maquina a otra.
SSH provee fuerte autenticacion y comunicacion segura sobre un canal inseguro.
SSH nace como un remplazo a los comandos rlogin, rsh, y rcp, los cuales proporcionan gran flexibilidad en la administracion de una red, sin embargo, presenta grandes riesgos en la seguridad de un sistema.
Un Poquito de su historia
Secure Shell fue desarrollado por Tatu Ylonen en la Universidad Tecnologica de Helsinki en Finlandia [Como que los genios salen de Alli ... ], buscando desarrollar los mecanismos necesarios para garantizar una comunicacion segura sobre un canal abierto, proporcionando un mecanismo de fuerte autenticacion independientemente del medio.
Sobre una red la comunicacion viaja en claro, es decir, cuando se realiza una conexion a una estacion de trabajo remota usando por ejemplo telnet o ftp, los login y password viajan tal como son tecleados, esto representa un gran riesgo si llega a existir sobre la red un programa que escuche la comunicacion entre maquinas, la comunicacion en claro se muestra en la grafica siguiente.
__________ __________
/| _______ | | ________ |\
/ || || || || \
/ || || || || \
/ ||_______|| ||________|| \
|___|_________| Login: kl0nk Password:ytelodije |__________|___|
\_________\ ==================================> /__________/
En el caso de SSH la comunicacion se seguira realizando sobre la misma red, sin embargo la comunicacion se transmite totalmente cifrada. Este tipo de conexion se muentra en la grafica siguiente.
__________ __________
/| _______ | | ________ |\
/ || || || || \
/ || || || || \
/ ||_______|| ||________|| \
|___|_________| 803658954744251695821433620101010 |__________|___|
\_________\ ==================================> /__________/
Para que nos sirve esto?
- Los servicios r (rlogin, rsh, rcp) son vulnerables a cierto tipo de ataques. Cualquiera que tenga acceso a una maquina en la red puede llegar por ciertos trucos obtener acceso no, o acceso fisico a la red de computo, puede obtener acceso no autorizado por una gran variedad de formas.
- Con SSH, se puede crear una sesion X remota segura que permanece transparente al usuario.
- Proteccion de ataques sobre protocolo de comunicaciony el medio.
Tipos de Ataques que proteje el SSH
- a.- IP spoofing: donde un host remoto envia paquetes a otro host aparentando ser un host conocido por este.
- b.- Ruteo de IP spoofing: donde un host puede pretender que un paquete de IP proviene de otro hosts valido.
- c.- DNS spoofing: cuando un ataque provoca que los registros de servidor de nombre se pierdan.
- d.- Interseccion de password en claro: u otra informacion intercambiada entre dos hosts. Manipulacion de datos que se encuentran en intercambio entre hosts.
Protocolos de Secure Shell
SSH trabajo sobre tres protocolos:
a.- Protocolo de autenticacion
b.- Protocolo de conexion
c.- Protocolo de Transporte
Caracteristicas
a.- Caracteristicas del protocolo de autenticacion
- Mecanismo de negociacion y autenticacion.
- Soporte de multiples mecanismos de autenticacion.
- Soporte de banner pre-autenticacion.
- Autenticacion basada en llave de cliente.
b.- Caracteristicas del protocolo de conexion
- Paso de variables de ambiente.
- Agente de autenticacion.
- Control de flujo y se~ales.
c.- Caracteristicas del protocolo de Transporte
- Corre sobre TCP/IP, pero puede trabajar sobre UDP.
- Manejo de regeneracion de llaves.
- Verificacion de identidad de cliente mediante el uso de llave publica.
- Negociacion a traves de mecanismo de secreto compartido
Algoritmos de encripcion que utiliza el SHH
a.- Cifrado para la encripcion
----------------------------------
| Cifrado | SSH1 | SSH2 |
----------------------------------
| DES | Si | No |
| 3DES | Si | Si |
| IDEA | Si | No |
| Blowfish | Si | Si |
| Twofish | No | Si |
| Arcfour | No | Si |
| Cast128-cbc | No | Si |
----------------------------------
b.- Cifrado para la autentificacion
----------------------------------
| Cifrado | SSH1 | SSH2 |
----------------------------------
| RSA | Si | No |
| DSA | No | Si |
----------------------------------
Protocolos desarrollados sobre SSH
SSH1: Este protocolo lo encontramos en la version 1.2.27 para Unix que puede ser utilizada libremente para propositos no comerciales.
SSH2: Provee licencias mas estrictas que SSH1 ya que es de caracter comercial, la version Unix de ssh es la 2.2.13 puede ser utilizada libremente utilizando una licencia expresa.
De donde lo puedo bajar?
Pueden Bajarlo de http://www.ssh.com/download/, alli podras encontar el software cliente y server para todo tipo de Unix y una version cliente (demostracion, 30 dias) para windows, tambien puedes bajar un cliente para windows en mi deposito de software, que es http://kl0nk.hypermart.net/windows/ (Este Cliente no trae la utilidad del scp).
Comandos Basicos
Bueno, para poder hacer conexion a una maquina remota solo debemos hacer:
$ssh -l mi-login maquina.remota
Ejemplo:
$ssh -l kl0nk pleyades.0ri0n.org
NOTA: Donde -l es el login (en mi caso kl0nk)
Tambien podemos correrlo sin la opcion -l , pero el automaticamente tomara el usuario que estamos utilizando en la shell (en el caso de estar en un sistema tipo Unix) o simplemente pedira el login y el passwd.
Ejemplo:
$ssh maquina.remota
login: kl0nk
password:xxxxxxx
o tambien se puede especificar de esta forma:
$ssh tu-login@maquina.remota
Bueno, hay una utilidad para la transferencia de archivos y es la "scp" (sin comillas), con ella podemos tranferir a una maquina remota archivos y estar seguro que nuestro passwd no va a ser descubierto por alguien.
La forma a utilizar es la siguiente:
$scp tu-login@maquina.remota:/home/kl0nk/xploit.c /xploit/
En este caso entrara a una maquina remota con la cuenta tu-login en el directorio /home/kl0nk/ y obtendra el archivo que colocara en el directorio local /xploit/
$scp /home/kl0nk/xploit.c tu-login@maquina.remota:~/xploit/
En este caso realizara una copia desde un archivo local /copias/archivo a una maquina remota colocando el archivo en el directorio /xploit/ del home de tu-login
Conclusion
Esta es una gran herramienta para hacer conexiones seguras remotamente, si tienes un server que tenga salida a la I-Net, es recomendable instalar esta aplicacion, ya que sera dificil que personas ajenas puedan descubrir tu password. Bueno espero que les halla gustado el articulo y cualquier duda me pueden escribir a mi email, ok.