Atacar Objetivos IPv6 con Hydra

HydraBeginner
Practicar Ahora

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.

  1. 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 eth0

    Este comando añade la dirección IPv6 2001:db8:1::1/64 a la interfaz eth0. El /64 especifica la longitud del prefijo de red, que determina el tamaño de la subred IPv6.

  2. Activar la interfaz eth0:

    sudo ip link set dev eth0 up

    Este comando activa la interfaz eth0, permitiéndole enviar y recibir tráfico de red.

  3. 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 eth0

    La salida debería incluir la dirección IPv6 2001:db8:1::1/64 en la sección inet6. 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 forever

    La línea inet6 2001:db8:1::1/64 scope global confirma 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.

  1. Ping a la dirección IPv6:

    Abre tu terminal en la máquina virtual LabEx. Ejecuta el siguiente comando:

    ping -6 2001:db8:1::1

    Este 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 ms

    Presiona Ctrl+C para detener el comando ping después de algunos paquetes.

  2. Entendiendo la opción -6:

    La opción -6 indica al comando ping que utilice IPv6. Muchas otras herramientas de red, como ssh, curl y wget, 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 -6 con 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.

  1. 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 ssh

    Puedes verificar que el servicio SSH se esté ejecutando comprobando su estado:

    sudo systemctl status ssh

    La salida debería mostrar que el servicio está activo y en ejecución.

  2. 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 :22

    Deberí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_config

    Busca la línea que contiene #AddressFamily any o AddressFamily inet y cámbiala a:

    AddressFamily any

    Si la línea no existe, agrégala. Esto indica a SSH que escuche en direcciones IPv4 e IPv6.

    Guarda el archivo presionando Ctrl + X, luego Y para confirmar el guardado y Enter para confirmar el nombre del archivo.

    Reinicia el servicio SSH para aplicar los cambios:

    sudo systemctl restart ssh

    Verifica que SSH ahora esté escuchando en IPv4 y IPv6:

    ss -tlnp | grep :22

    Ahora deberías ver a SSH escuchando tanto en 0.0.0.0:22 (IPv4) como en [::]:22 (IPv6).

  3. Crear una lista de contraseñas:

    Abre tu terminal en la máquina virtual LabEx. Actualmente estás en el directorio ~/project. Usa el editor nano para crear un archivo llamado passwords.txt en este directorio:

    nano passwords.txt

    Agrega las siguientes contraseñas al archivo, una contraseña por línea:

    password
    123456
    qwerty
    admin
    labex

    Guarda el archivo presionando Ctrl + X, luego Y para confirmar el guardado y Enter para confirmar el nombre del archivo.

  4. Ejecutar Hydra para atacar el servicio SSH IPv6:

    Ahora, usarás Hydra para atacar el servicio SSH. Utilizarás la opción -6 para 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 usuario labex.
    • -P passwords.txt: Especifica la lista de contraseñas a usar. En este caso, estás usando el archivo passwords.txt que creaste en el directorio actual ~/project.
    • ssh://[2001:db8:1::1]: Especifica el servicio SSH de destino. El prefijo ssh:// 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.txt contra 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 -V para 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.

  1. 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.

  2. 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 -6 para 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::1

    Cuando 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::1

    El hecho de que se te solicite la contraseña confirma que SSH está configurado correctamente para IPv6 y que Hydra pudo conectarse al servicio.

  3. 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 fail2ban para 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.