Introducción
En este laboratorio, aprenderás a atacar objetivos IPv6 utilizando Hydra. El laboratorio se centra en la configuración de un servidor con una dirección IPv6 y luego en el uso de Hydra para atacar su servicio SSH.
El laboratorio comienza configurando el servidor con la dirección IPv6 2001:db8:1::1/64 en la interfaz eth0 utilizando el comando ip. A continuación, activarás la interfaz y verificarás la configuración. Finalmente, utilizarás Hydra con la opción -6 para atacar el servicio SSH IPv6 y verificar los resultados del ataque.
Configurar el Servidor con Dirección IPv6
En este paso, configurarás la máquina virtual LabEx con una dirección IPv6. Este es un paso crucial para habilitar la comunicación IPv6 y prepararte para el posterior ataque al servicio SSH IPv6.
Primero, comprendamos los fundamentos de la direccionamiento IPv6. Las direcciones IPv6 son direcciones de 128 bits, típicamente representadas en notación hexadecimal. Una dirección IPv6 típica se ve así: 2001:0db8:85a3:0000:0000:8a2e:0370:7334.
Para simplificar la configuración, asignarás la dirección 2001:db8:1::1/64 a la interfaz eth0. La interfaz eth0 es un nombre de interfaz de red común en sistemas Linux.
Ahora, configuremos la dirección IPv6. Utilizarás el comando ip, una herramienta potente para administrar interfaces de red.
Añadir la dirección IPv6 a la interfaz
eth0:Abre tu terminal en la máquina virtual LabEx. Ejecuta el siguiente comando:
sudo ip addr add 2001:db8:1::1/64 dev eth0Este comando añade la dirección IPv6
2001:db8:1::1/64a la interfazeth0. El/64especifica la longitud del prefijo de red, que determina el tamaño de la subred IPv6.Activar la interfaz
eth0:sudo ip link set dev eth0 upEste comando activa la interfaz
eth0, permitiéndole enviar y recibir tráfico de red.Verificar la configuración de la dirección IPv6:
Para verificar que la dirección IPv6 se ha configurado correctamente, utiliza de nuevo el comando
ip addr:ip addr show eth0La salida debería incluir la dirección IPv6
2001:db8:1::1/64en la seccióninet6. Deberías ver algo similar a lo siguiente:2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:16:3e:08:6d:7a brd ff:ff:ff:ff:ff:ff altname enp0s5 altname ens5 inet 172.16.50.97/24 metric 100 brd 172.16.50.255 scope global dynamic eth0 valid_lft 1892159937sec preferred_lft 1892159937sec inet6 2001:db8:1::1/64 scope global valid_lft forever preferred_lft forever inet6 fe80::216:3eff:fe08:6d7a/64 scope link valid_lft forever preferred_lft foreverLa línea
inet6 2001:db8:1::1/64 scope globalconfirma que la dirección IPv6 se ha configurado correctamente.
Preparación para el Ataque SSH IPv6
En este paso, te prepararás para el ataque al servicio SSH IPv6 comprendiendo y utilizando la opción -6 con las herramientas de red. La opción -6 se utiliza comúnmente para especificar la preferencia por IPv6 al interactuar con servicios de red. Esto es importante porque, de forma predeterminada, algunas herramientas podrían preferir IPv4 si ambas direcciones IPv4 e IPv6 están disponibles.
Para asegurarte de que estás apuntando a la dirección IPv6 configurada en el paso anterior, utilizarás el comando ping con la opción -6. Esto verificará que puedes alcanzar el servidor utilizando su dirección IPv6.
Ping a la dirección IPv6:
Abre tu terminal en la máquina virtual LabEx. Ejecuta el siguiente comando:
ping -6 2001:db8:1::1Este comando envía paquetes ICMP Echo Request a la dirección IPv6
2001:db8:1::1. Si el servidor es alcanzable a través de IPv6, deberías ver respuestas del servidor. La salida debería ser similar a esto:PING 2001:db8:1::1(2001:db8:1::1) 56 data bytes 64 bytes from 2001:db8:1::1: icmp_seq=1 ttl=64 time=0.026 ms 64 bytes from 2001:db8:1::1: icmp_seq=2 ttl=64 time=0.041 ms 64 bytes from 2001:db8:1::1: icmp_seq=3 ttl=64 time=0.035 ms 64 bytes from 2001:db8:1::1: icmp_seq=4 ttl=64 time=0.032 ms ^C --- 2001:db8:1::1 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3078ms rtt min/avg/max/mdev = 0.026/0.033/0.041/0.005 msPresiona
Ctrl+Cpara detener el comando ping después de algunos paquetes.Entendiendo la opción
-6:La opción
-6indica al comandopingque utilice IPv6. Muchas otras herramientas de red, comossh,curlywget, también admiten la opción-6. Usar esta opción asegura que la herramienta intenta conectarse al host de destino utilizando IPv6.En el siguiente paso, utilizarás Hydra para atacar el servicio SSH. Utilizarás la opción
-6con Hydra para apuntar específicamente a la dirección IPv6 del servidor SSH. Esto asegura que estás probando la seguridad de la configuración SSH IPv6.
Atacar el Servicio SSH IPv6
En este paso, utilizarás Hydra para realizar un ataque de fuerza bruta al servicio SSH que se ejecuta en la dirección IPv6 que configuraste anteriormente. Hydra es una potente herramienta de descifrado de contraseñas que admite varios protocolos, incluido SSH.
Antes de comenzar, crearás una lista de contraseñas simple. Esta lista contendrá las contraseñas que Hydra intentará usar para autenticarse en el servicio SSH.
Iniciar el servicio SSH:
Primero, necesitas asegurarte de que el servicio SSH se esté ejecutando en el sistema. Ejecuta el siguiente comando para iniciar el servicio SSH:
sudo systemctl start sshPuedes verificar que el servicio SSH se esté ejecutando comprobando su estado:
sudo systemctl status sshLa salida debería mostrar que el servicio está activo y en ejecución.
Configurar SSH para escuchar en IPv6:
De forma predeterminada, SSH solo puede escuchar en direcciones IPv4. Necesitas configurarlo para que también escuche en IPv6. Primero, comprueba en qué direcciones está escuchando actualmente SSH:
ss -tlnp | grep :22Deberías ver una salida como
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*, lo que significa que SSH solo está escuchando en IPv4.Ahora, edita el archivo de configuración de SSH para habilitar la escucha en IPv6:
sudo nano /etc/ssh/sshd_configBusca la línea que contiene
#AddressFamily anyoAddressFamily inety cámbiala a:AddressFamily anySi la línea no existe, agrégala. Esto indica a SSH que escuche en direcciones IPv4 e IPv6.
Guarda el archivo presionando
Ctrl + X, luegoYpara confirmar el guardado yEnterpara confirmar el nombre del archivo.Reinicia el servicio SSH para aplicar los cambios:
sudo systemctl restart sshVerifica que SSH ahora esté escuchando en IPv4 y IPv6:
ss -tlnp | grep :22Ahora deberías ver a SSH escuchando tanto en
0.0.0.0:22(IPv4) como en[::]:22(IPv6).Crear una lista de contraseñas:
Abre tu terminal en la máquina virtual LabEx. Actualmente estás en el directorio
~/project. Usa el editornanopara crear un archivo llamadopasswords.txten este directorio:nano passwords.txtAgrega las siguientes contraseñas al archivo, una contraseña por línea:
password 123456 qwerty admin labexGuarda el archivo presionando
Ctrl + X, luegoYpara confirmar el guardado yEnterpara confirmar el nombre del archivo.Ejecutar Hydra para atacar el servicio SSH IPv6:
Ahora, usarás Hydra para atacar el servicio SSH. Utilizarás la opción
-6para especificar que deseas atacar la dirección IPv6. También especificarás el nombre de usuario a atacar (por ejemplo,labex), la lista de contraseñas que creaste (passwords.txt) y la dirección IPv6 del servidor SSH (2001:db8:1::1).Ejecuta el siguiente comando:
hydra -6 -l labex -P passwords.txt ssh://[2001:db8:1::1]Desglose del comando:
hydra: El comando para ejecutar la herramienta Hydra.-6: Especifica que Hydra debe usar IPv6.-l labex: Especifica el nombre de usuario a atacar. En este caso, estás atacando al usuariolabex.-P passwords.txt: Especifica la lista de contraseñas a usar. En este caso, estás usando el archivopasswords.txtque creaste en el directorio actual~/project.ssh://[2001:db8:1::1]: Especifica el servicio SSH de destino. El prefijossh://indica que estás atacando un servicio SSH, y[2001:db8:1::1]es la dirección IPv6 del servidor encerrada entre corchetes (requerido para direcciones IPv6 en Hydra).
Hydra comenzará a probar las contraseñas del archivo
passwords.txtcontra el servicio SSH. Si Hydra encuentra una contraseña válida, mostrará las credenciales. La salida puede ser similar a esto si no se encuentra ninguna contraseña:(Salida de Hydra sin contraseña válida omitida)
Si no se encuentra ninguna contraseña, puedes intentar agregar más contraseñas comunes a tu archivo
passwords.txt. También puedes usar la opción-Vpara ver una salida detallada que muestre cada intento.(Salida de Hydra con contraseña válida omitida)
Esta salida indica que Hydra descifró con éxito la contraseña del usuario
labex.Nota importante: Forzar el acceso a contraseñas en un sistema sin autorización es ilegal y poco ético. Este laboratorio es solo para fines educativos, y solo debes usar estas técnicas en sistemas que poseas o tengas permiso explícito para probar.
Verificar Resultados del Ataque IPv6
En este paso, verificarás los resultados del ataque Hydra al servicio SSH IPv6. Comprobarás si Hydra descifró correctamente la contraseña y, en caso afirmativo, intentarás iniciar sesión en el servicio SSH utilizando las credenciales descifradas.
Revisar la salida de Hydra:
Revisa cuidadosamente la salida del comando Hydra del paso anterior. Busca una línea que indique el descifrado exitoso de la contraseña. La salida debería ser similar a esta:
[22][ssh] host: 2001:db8:1::1 login: labex password: [found_password]Si ves esta línea, significa que Hydra descifró correctamente la contraseña del usuario
labex. Si no se encontró ninguna contraseña, esto demuestra que la lista de contraseñas actual no contiene la contraseña correcta, lo cual es una buena señal de seguridad.Intentar iniciar sesión en el servicio SSH (si se encontró la contraseña):
Si Hydra encontró una contraseña, puedes intentar iniciar sesión en el servicio SSH usando el comando
ssh. Utilizarás la opción-6para especificar que deseas conectarte a la dirección IPv6.Ejecuta el siguiente comando, utilizando la contraseña que Hydra encontró:
ssh -6 labex@2001:db8:1::1Cuando se te solicite la contraseña, ingresa la contraseña descifrada. Si el inicio de sesión es exitoso, iniciarás sesión en el servidor SSH.
Si Hydra no encontró ninguna contraseña, aún puedes probar la conectividad SSH IPv6 intentando conectarte (te pedirá una contraseña, pero puedes presionar Ctrl+C para cancelar):
ssh -6 labex@2001:db8:1::1El hecho de que se te solicite la contraseña confirma que SSH está configurado correctamente para IPv6 y que Hydra pudo conectarse al servicio.
Recomendaciones de seguridad:
Este laboratorio demostró la importancia de usar contraseñas seguras e implementar las mejores prácticas de seguridad para proteger tu servicio SSH. Aquí hay algunas recomendaciones:
- Usa contraseñas seguras: Usa contraseñas de al menos 12 caracteres que contengan una combinación de letras mayúsculas y minúsculas, números y símbolos.
- Desactiva la autenticación por contraseña: Considera desactivar la autenticación por contraseña y usar claves SSH en su lugar. Las claves SSH son más seguras que las contraseñas porque son mucho más difíciles de descifrar.
- Implementa limitación de velocidad: Usa herramientas como
fail2banpara implementar la limitación de velocidad en los intentos de inicio de sesión SSH. Esto evitará que los atacantes intenten demasiadas contraseñas en un corto período de tiempo. - Mantén tu software actualizado: Asegúrate de que tu software del servidor SSH esté actualizado con los últimos parches de seguridad.
Resumen
En este laboratorio, has configurado un servidor con una dirección IPv6, un paso crucial para habilitar la comunicación IPv6. Esto implicó comprender los fundamentos de la direccionamiento IPv6 y usar el comando ip para asignar la dirección 2001:db8:1::1/64 a la interfaz eth0.
Luego, has habilitado la interfaz y verificado la configuración usando ip addr show eth0, asegurándote de que la dirección IPv6 se asignó correctamente. También has configurado SSH para escuchar en direcciones IPv6 modificando el archivo de configuración de SSH y reiniciando el servicio.
Finalmente, has utilizado Hydra con la opción -6 para atacar el servicio SSH IPv6 y has realizado con éxito un ataque de fuerza bruta. Luego, has verificado los resultados del ataque iniciando sesión en el servicio SSH utilizando las credenciales descifradas. Este laboratorio ha demostrado la capacidad de Hydra para atacar objetivos IPv6 y ha destacado la importancia de contraseñas seguras y las mejores prácticas de seguridad para los servicios SSH.


