Fuerza Bruta de la Contraseña de Root en Linux con Sucrack e Hydra

Beginner

Introducción

En este laboratorio, exploraremos dos métodos y herramientas correspondientes para obtener la contraseña del usuario root mediante ataques de fuerza bruta en sistemas Linux. El laboratorio te ayudará a comprender los principios subyacentes y evitar errores comunes durante el proceso.

Usar sucrack para forzar la contraseña de root a través del comando su

En este paso, aprenderemos cómo utilizar la herramienta sucrack para forzar la contraseña del usuario root a través del comando su.

El comando su se utiliza para cambiar a la identidad de otro usuario en sistemas Linux. Excepto el usuario root, otros usuarios deben proporcionar la contraseña del usuario objetivo al utilizar este comando.

La herramienta que utilizaremos para forzar el comando su es sucrack. sucrack es una herramienta Linux multihilo diseñada para forzar las contraseñas de usuarios locales a través del comando su.

Dado que el comando su requiere entrada de usuario desde una shell TTY, un simple script de shell no puede realizar el ataque de fuerza bruta. sucrack está escrito en lenguaje C y admite multihilo, lo que hace que el proceso de fuerza bruta sea altamente eficiente.

Puedes consultar el sitio web oficial de sucrack para obtener más información.

En un escenario del mundo real, la máquina objetivo puede no tener acceso a Internet, por lo que puedes instalar sucrack utilizando uno de los siguientes dos métodos:

  • Descargar el código fuente de sucrack y cargarlo en la máquina objetivo, luego compilarlo y ejecutarlo.
  • Descargar el código fuente de sucrack, compilarlo localmente y luego cargar el binario compilado en la máquina objetivo.

En este laboratorio, ya hemos instalado sucrack para ti.

  1. Antes de intentar el ataque de fuerza bruta, configuraremos el entorno del laboratorio:

    Abre una terminal y navega al directorio del proyecto:

    cd /home/labex/project

    Ejecuta el script env_setup_1.sh para configurar el entorno del laboratorio:

    ./env_setup_1.sh

    Este script nos cambia al usuario no privilegiado www-data. Nuestro objetivo es obtener la contraseña del usuario root mediante fuerza bruta.

    Tenemos una lista de palabras pre - preparada en /tmp/common-wordlists.txt con fines de demostración. También puedes utilizar tu propia lista de palabras.

  2. La sintaxis para realizar un ataque de fuerza bruta al comando su utilizando sucrack es:

    sucrack -w <threads> [-u <username>] <wordlist>

    Los parámetros son:

    • -w: Especifica el número de hilos
    • <wordlist>: Especifica el archivo de la lista de palabras
    • -u: Especifica el nombre de usuario a forzar. Si no especificas un nombre de usuario, sucrack forzará la contraseña del usuario root por defecto.

    Intentemos realizar un ataque de fuerza bruta ejecutando el siguiente comando:

    sucrack -w 20 /tmp/common-wordlists.txt > ~/sucrack.log && reset

    La salida del ataque de fuerza bruta se redirige al archivo sucrack.log.

    Nota: El comando reset se utiliza para limpiar la pantalla de la terminal porque a veces después de usar sucrack, la terminal puede no mostrarse correctamente.

  3. Este ataque de fuerza bruta puede tomar algún tiempo. Después de un tiempo, verifica el archivo sucrack.log para confirmar la contraseña:

    cat ~/sucrack.log

    Salida esperada:

    password is: really
  4. Luego, podemos cambiar al usuario root utilizando:

    su - root

    Ingresa la contraseña really para cambiar al usuario root.

    really
  5. Crea un archivo llamado success_1.txt en el directorio /root para confirmar que has cambiado exitosamente al usuario root:

    echo "Success_1" > /root/success_1.txt

    Puedes verificar el archivo /root/success_1.txt para confirmar que has cambiado exitosamente al usuario root.

Has aprendido cómo utilizar sucrack para forzar la contraseña del usuario root.

Usar Hydra para forzar la contraseña de root a través de SSH

En este paso, aprenderemos cómo utilizar la herramienta hydra para forzar la contraseña del usuario root a través del protocolo SSH.

Con el paso anterior, todavía deberíamos ser el usuario root, y para este paso necesitamos cambiar al usuario labex. Puedes cambiar al usuario labex ejecutando el siguiente comando:

su - labex
  1. Asegúrate de que el directorio esté configurado en /home/labex/project:

    cd /home/labex/project

    Ejecuta el script env_setup_2.sh para configurar el entorno del laboratorio:

    ./env_setup_2.sh

    Al igual que en el paso anterior, después de ejecutar este script, cambiarás al usuario www-data.

  2. Antes de intentar forzar el protocolo SSH, necesitamos verificar si la máquina objetivo permite que el usuario root inicie sesión a través de SSH. Puedes verificar esto ejecutando el siguiente comando:

    cat /etc/ssh/sshd_config | grep -i permitrootlogin

    Si la salida muestra que PermitRootLogin está configurado en yes, entonces podemos continuar con el ataque de fuerza bruta. De lo contrario, no es necesario intentarlo.

  3. La herramienta que utilizaremos para forzar el protocolo SSH es hydra. hydra es una conocida herramienta de fuerza bruta que admite varios protocolos, incluyendo RDP, SMB, HTTP, MySQL y más. hydra está preinstalado en Kali Linux y en el entorno de Ubuntu de nuestro laboratorio.

    La sintaxis para forzar el protocolo SSH utilizando hydra es:

    hydra -l root -P passwords.txt -t 4 -V < IP > ssh

    Los parámetros son:

    • -l: Especifica el nombre de usuario
    • -P: Especifica el archivo de la lista de palabras
    • -t: Especifica el número de hilos
    • -V: Muestra el progreso y los detalles del ataque de fuerza bruta

    Intentemos forzar la contraseña del usuario root utilizando la lista de palabras /tmp/common-wordlists.txt y guardar la salida en el archivo hydra.log:

    hydra -l root -P /tmp/common-wordlists.txt -t 64 -V 127.0.0.1 ssh > ~/hydra.log

    Después de algún tiempo, la contraseña del usuario root se descifra con éxito.

    Verifica el archivo hydra.log para confirmar la contraseña:

    cat ~/hydra.log

    Ejemplo de salida:

    ...
    [22][ssh] host: 127.0.0.1   login: root   password: penguin
    1 of 1 target successfully completed, 1 valid password found
    ...
  4. Ahora que tenemos la contraseña del usuario root, podemos cambiar al usuario root ejecutando el siguiente comando:

    su - root

    Ingresa la contraseña penguin para cambiar al usuario root.

    penguin

    Ahora debes ser el usuario root. Puedes confirmar esto ejecutando el siguiente comando:

    whoami

    La salida debe ser root.

  5. Crea un archivo llamado success_2.txt en el directorio /root para confirmar que has cambiado exitosamente al usuario root:

    echo "Success_2" > /root/success_2.txt

    Puedes verificar el archivo /root/success_2.txt para confirmar que has cambiado exitosamente al usuario root.

Nota: Si estás utilizando una versión de hydra anterior a la v9.0, puede reportar falsos positivos al forzar el protocolo SSH. Puedes verificar la versión de hydra ejecutando hydra -v.

Resumen

En este laboratorio, aprendimos dos métodos para forzar la contraseña del usuario root en sistemas Linux: a través del comando su utilizando la herramienta sucrack, y a través del protocolo SSH utilizando la herramienta hydra. Cubrimos la instalación, el uso y los procedimientos paso a paso de cada método, lo que te ayudará a comprender los principios subyacentes y evitar errores comunes. Este laboratorio proporciona una valiosa experiencia práctica en técnicas de escalada de privilegios, que se pueden aplicar en diversos escenarios.