🔹 Laboratorio: Ataque y Defensa de SSH con Kali Linux y Ubuntu Server
🎯 ¡Servidor más seguro! Ahora tienes un entorno bien protegido contra ataques básicos de fuerza bruta. 🚀🔐 \[\[2- Gestión de Grupos]] \[\[2- Protección del Protocolo FTP]] \[\[5- Cómo Crear un Serv...
#CyberSecurity #HackingÉtico #Linux #KaliLinux #Ubuntu #SSH #Fail2Ban #Pentesting #EthicalHacking #InfoSec #CTF #RedTeam #BlueTeam #SeguridadInformática #ForenseDigital #SysAdmin #DevSecOps #Redes #Nmap #Hydra #Hardening
🔹 Laboratorio: Ataque y Defensa de SSH con Kali Linux y Ubuntu Server
Este laboratorio muestra cómo realizar un ataque de fuerza bruta a un servidor Ubuntu con Hydra desde Kali Linux y luego cómo protegerlo con Fail2Ban.
1️⃣ Configurar la red en VirtualBox o VMware
-
Inicia ambas máquinas virtuales:
- Ubuntu Server (objetivo).
- Kali Linux (atacante).
-
Configura el adaptador de red en modo puente para que ambas estén en la misma red.
-
Verifica que tienen direcciones IP en la misma subred:
ip a
2️⃣ Configurar el servidor SSH en Ubuntu
1. Cambiar contraseña de usuario
sudo passwd jeremyserver
- Usamos una contraseña débil para pruebas: password1.
2. Instalar y activar el servicio SSH
sudo apt update
sudo apt install openssh-server -y
sudo systemctl start ssh
sudo systemctl enable ssh
sudo systemctl status ssh
- Verificamos que SSH está corriendo.
3. Obtener la IP del servidor Ubuntu
hostname -I
- Supongamos que la IP del servidor es 192.168.0.108.
3️⃣ Ataque de fuerza bruta con Hydra desde Kali Linux
hydra -l jeremyserver -P /usr/share/wordlists/rockyou.txt ssh://192.168.0.108
Explicación de los argumentos:
-l jeremyserver
→ Usuario objetivo.-P /usr/share/wordlists/rockyou.txt
→ Lista de contraseñas.ssh://192.168.0.108
→ Protocolo y dirección IP del objetivo.
Resultado exitoso:
[22][ssh] host: 192.168.0.108 login: jeremyserver password: password1
🔴 SSH es vulnerable a ataques de fuerza bruta.
4️⃣ Escaneo con Nmap para detectar puertos abiertos
nmap -p- -sS -sC -sV --min-rate=5000 -n -vvv -Pn 192.168.0.108
Explicación de los argumentos:
-p-
→ Escanea todos los puertos (0-65535).-sS
→ Escaneo SYN stealth (rápido y sigiloso).-sC
→ Usa scripts básicos de reconocimiento.-sV
→ Detecta versiones de los servicios activos.--min-rate=5000
→ Acelera el escaneo.-n
→ No resuelve nombres de dominio (más rápido).-vvv
→ Muestra salida detallada.-Pn
→ No hace ping, asume que el host está activo.
Salida relevante:
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 3.0.5
22/tcp open ssh OpenSSH 9.6p1 Ubuntu 3ubuntu13.5 (Ubuntu Linux; protocol 2.0)
🔴 SSH está visible y expuesto en el puerto 22.
5️⃣ Mejorar la seguridad: Cambiar el puerto de SSH
1. Editar configuración de SSH
sudo nano /etc/ssh/sshd_config
-
Cambiar:
Port 22
Por:
Port 111
-
Guardar (
CTRL+X
,Y
,ENTER
).
2. Reiniciar el servicio SSH
sudo systemctl restart ssh
3. Verificar que SSH está corriendo en el nuevo puerto
sudo systemctl status ssh
4. Volver a escanear con Nmap
- SSH ya no estará en el puerto 22, sino en 111.
6️⃣ Atacar el nuevo puerto con Hydra
hydra -l jeremyserver -P /usr/share/wordlists/rockyou.txt.gz ssh://192.168.0.108 -s 111
Explicación adicional:
-s 111
→ Especifica el nuevo puerto SSH (111).
✔️ Hydra sigue funcionando, pero ahora en el puerto 111.
7️⃣ Instalar y configurar Fail2Ban para bloquear ataques
1. Instalar Fail2Ban
sudo apt install fail2ban -y
2. Configurar Fail2Ban para SSH
sudo nano /etc/fail2ban/jail.local
-
Agregar la configuración:
[sshd] enable = true port = 111 maxretry = 5 bantime = 600 findtime = 600
-
Guardar (
CTRL+X
,Y
,ENTER
).
3. Reiniciar Fail2Ban
sudo systemctl restart fail2ban
sudo systemctl status fail2ban
8️⃣ Probar Fail2Ban con Hydra
-
Volver a lanzar Hydra:
hydra -l jeremyserver -P /usr/share/wordlists/rockyou.txt.gz ssh://192.168.0.108 -s 111
-
Después de 5 intentos fallidos, aparece el error:
[ERROR] could not connect to ssh://192.168.0.108:111 - Connection refused
✔️ La IP de Kali ha sido bloqueada por Fail2Ban.
9️⃣ Verificar y gestionar las IPs bloqueadas
1. Revisar el estado de Fail2Ban
sudo fail2ban-client status sshd
✔️ Muestra cuántas IPs han sido baneadas.
2. Desbloquear una IP manualmente
sudo fail2ban-client set sshd unbanip 192.168.0.120
✔️ Si devuelve 0
, significa que la IP ha sido desbloqueada.
3. Listar todos los servicios protegidos por Fail2Ban
sudo fail2ban-client status
🔹 Conclusión
- ANTES:
- SSH estaba en el puerto 22 y vulnerable a ataques de fuerza bruta.
- Hydra pudo descubrir la contraseña fácilmente.
- DESPUÉS:
✅ Se cambió el puerto SSH a 111 para mayor seguridad.
✅ Se instaló Fail2Ban, que bloquea IPs maliciosas tras 5 intentos fallidos.
✅ Hydra ya no puede hacer ataques, y la seguridad del servidor ha mejorado significativamente.
🎯 ¡Servidor más seguro! Ahora tienes un entorno bien protegido contra ataques básicos de fuerza bruta. 🚀🔐
2- Gestión de Grupos 2- Protección del Protocolo FTP 5- Cómo Crear un Servidor SSH con OPENSSH 6- Gestión de Usuarios en Linux 11- Automatizar la Gestión de Usuarios en Linux