SSH o Secure Shell, es un protocolo de administración remota que le permite a los usuarios controlar y modificar sus servidores remotos a través de Internet a través de un mecanismo de autenticación.
Proporciona un mecanismo para autenticar un usuario remoto, transferir entradas desde el cliente al host y retransmitir la salida de vuelta al cliente. El servicio se creó como un reemplazo seguro para el Telnet sin cifrar y utiliza técnicas criptográficas para garantizar que todas las comunicaciones hacia y desde el servidor remoto sucedan de manera encriptada.
Si usas Linux o Mac, entonces usar el protocolo SSH es muy fácil. Si utilizas Windows, deberás utilizar un cliente SSH para abrir conexiones SSH.
Para iniciar un servicio SSH en Linux ejecutamos el comando ssh
, donde especificamos el usurio
y el host
separados por @
.
ssh [Usuario]@[Host]
ssh
: Le indica a tu sistema que desea abrir una Conexión de Shell Segura y cifrada.
Usuario
: Representa la cuenta a la que deseas acceder. Podemos acceder como root
si queremos tener máximos privilegios en el equipo cliente.
Host
: Hace referencia al equipo al que quieres acceder. Esto puede ser una dirección IP (10.10.10.10) o un nombre de
dominio (www.ejemplo.com).
Una vez establecida la conexión nos pedira la contraseña de la cuenta solicitada. La introducimos, pulsamos Enter
y finalmente tendremos control
del equipo.
La comunicación inalámbrica o por cable entre dos máquinas se realiza a través de puertos. Hay un total de 65,536 puertos de comunicación y la comunicación puede tener lugar a través de cualquiera de estos puertos. SSH se comunica por defecto a través del puerto 22. Cuando ejecutamos el comando anterior, la conexión entre el cliente local y el servidor se establece a través del puerto 22 y toda la comunicación se ejecuta a través de este puerto.
En ocasiones, se puede modificar el puerto por el cual se conecta SSH
. En caso de no especificar ningún puerto, SSH se conectará por defecto por
el puerto 22. En caso de querer especificar otro puerto lo podemos hacer con la opción -p
seguido del puerto en cuestión.
ssh [Usuario]@[Dirección] -p [Puerto]
La utilidad sshpass está diseñada para ejecutar SSH utilizando el modo de autenticación de contraseña interactiva con el teclado, pero de una manera no interactiva. De esta forma podemos especificar en la misma línea de comandos la contraseña antes de ejecutar el comando SSH. La contraseña debe establecerse entre comillas dobles:
sshpass -p ["Contraseña"] ssh [Usuario]@[Dirección] -p [Puerto]
Para realizar un ejemplo de como conectarnos a otro equipo empleando SSH vamos a utilizar la web https://overthewire.org
. Esta página está
enfocada en enseñar los parámetros básicos de Linux y SSH a través de distintos laboratorios. A estos laboratorios nos conectaremos a través de
SSH y la finalidad de cada práctica es encontrar la flag secreta oculta en cada sistema. La flag encontrada es la contraseña para poder conectarnos
al siguiente nivel.
En este ejemplo únicamente mostraremos como conectarnos a través de SSH, para ver todas prácticas de Over The Wire
podéis encontrarlas en la
sección de Laboratorios.
En primer lugar, abrimos la página oficial de Over The Wire:
Una vez abierta nos dirigimos al Nivel 0
:
Vemos como nos dice que el nombre del usuario es bandit0
que la contraseña es bandit0
también, la dirección es bandit.labs.overthewire.org
y nos indica que debemos utilizar el puerto 2220
:
ssh bandit0@bandit.labs.overthewire.org -p 2220
Una vez ejecutado el comando anterior, nos pedirá la contraseña, la introducimos y ya tendremos acceso al otro equipo: