Atacar servicios SMB con Hydra

HydraHydraBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, exploraremos cómo atacar servicios SMB utilizando Hydra, una poderosa herramienta de cracking de contraseñas. El laboratorio se centra en demostrar cómo identificar y explotar credenciales débiles en un servidor SMB.

El laboratorio comienza configurando un servidor SMB local utilizando Samba, lo que incluye instalar los paquetes necesarios, configurar el archivo smb.conf para crear un directorio compartido y establecer los permisos adecuados. Luego, prepararemos listas de usuarios y contraseñas para utilizar en el ataque de Hydra. Finalmente, ejecutaremos el ataque SMB de Hydra y revisaremos los resultados para ver si se crackearon con éxito algunas credenciales.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL hydra(("Hydra")) -.-> hydra/HydraGroup(["Hydra"]) hydra/HydraGroup -.-> hydra/installation("Installation and Setup") hydra/HydraGroup -.-> hydra/password_creation("Password List Creation") hydra/HydraGroup -.-> hydra/username_creation("Username List Creation") hydra/HydraGroup -.-> hydra/target_ip("Target IP Specification") hydra/HydraGroup -.-> hydra/target_service("Target Service Selection") hydra/HydraGroup -.-> hydra/multiple_targets("Multiple Targets Attack") hydra/HydraGroup -.-> hydra/success_detection("Login Success Detection") hydra/HydraGroup -.-> hydra/troubleshooting("Basic Troubleshooting") subgraph Lab Skills hydra/installation -.-> lab-550761{{"Atacar servicios SMB con Hydra"}} hydra/password_creation -.-> lab-550761{{"Atacar servicios SMB con Hydra"}} hydra/username_creation -.-> lab-550761{{"Atacar servicios SMB con Hydra"}} hydra/target_ip -.-> lab-550761{{"Atacar servicios SMB con Hydra"}} hydra/target_service -.-> lab-550761{{"Atacar servicios SMB con Hydra"}} hydra/multiple_targets -.-> lab-550761{{"Atacar servicios SMB con Hydra"}} hydra/success_detection -.-> lab-550761{{"Atacar servicios SMB con Hydra"}} hydra/troubleshooting -.-> lab-550761{{"Atacar servicios SMB con Hydra"}} end

Configuración del servidor SMB local

En este paso, configuraremos un servidor SMB (Server Message Block) local utilizando Samba. SMB es un protocolo de compartición de archivos de red que permite a las aplicaciones de una computadora acceder a archivos y recursos en un servidor remoto. Samba es una reimplementación de software libre del protocolo de red SMB. Esto proporcionará un objetivo para nuestro ataque SMB de Hydra en pasos posteriores.

Primero, instalemos Samba. Abra su terminal en el directorio ~/project.

sudo apt update
sudo apt install samba -y

Este comando actualiza las listas de paquetes y luego instala el paquete Samba. La bandera -y responde automáticamente "sí" a cualquier solicitud durante la instalación.

A continuación, necesitamos configurar Samba. Comenzaremos realizando una copia de seguridad del archivo de configuración original.

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

Ahora, creemos un nuevo archivo de configuración simplificado. Usaremos nano para editar el archivo de configuración.

sudo nano /etc/samba/smb.conf

Pegue la siguiente configuración en el editor nano. Esta configuración crea un directorio compartido llamado share que es accesible para todos en la red.

[global]
   workgroup = WORKGROUP
   server string = Samba Server %v
   netbios name = fileserver
   security = user
   map to guest = bad user
   name resolve order = bcast host lmhosts wins

[share]
   path = /home/labex/project/share
   browsable = yes
   writable = yes
   guest ok = yes
   read only = no

Presione Ctrl+X, luego Y, luego Enter para guardar el archivo.

Ahora, creemos el directorio compartido.

mkdir ~/project/share
sudo chmod 777 ~/project/share

Esto crea un directorio llamado share en su directorio ~/project y establece sus permisos en 777, lo que significa que todos tienen permisos de lectura, escritura y ejecución. Nota: En un escenario del mundo real, querría usar permisos más restrictivos. Estamos usando 777 por simplicidad en este entorno de laboratorio.

A continuación, necesitamos agregar un usuario de Samba. Este usuario se utilizará para autenticarse en el servidor SMB. Usaremos el usuario labex que ya existe en el sistema. Primero, establezcamos una contraseña de Samba para el usuario labex.

sudo smbpasswd -a labex

Se le pedirá que ingrese una nueva contraseña para el usuario labex. Ingrese una contraseña y confírmela. Recuerde esta contraseña, ya que la necesitará más adelante.

Finalmente, reiniciemos el servicio Samba para aplicar los cambios.

sudo systemctl restart smbd nmbd

Nota importante: El comando systemctl puede no funcionar directamente en el entorno del contenedor Docker. Si encuentra un error, puede intentar reiniciar los servicios de Samba utilizando los siguientes comandos:

sudo /etc/init.d/smbd restart
sudo /etc/init.d/nmbd restart

Ahora, su servidor SMB local está configurado. Ha creado un directorio compartido llamado share y ha agregado el usuario labex con una contraseña de Samba.

Preparación de listas de usuarios y contraseñas

En este paso, crearemos las listas de usuarios y contraseñas que Hydra utilizará para realizar el ataque SMB. Estas listas contendrán posibles nombres de usuario y contraseñas que Hydra intentará utilizar para autenticarse en el servidor SMB.

Primero, creemos la lista de usuarios. Usaremos nano para crear un archivo llamado users.txt en el directorio ~/project.

nano ~/project/users.txt

En este archivo, agregue los siguientes nombres de usuario, uno por línea:

labex
admin
guest
user

Presione Ctrl+X, luego Y, luego Enter para guardar el archivo.

Ahora, creemos la lista de contraseñas. Usaremos nano para crear un archivo llamado passwords.txt en el directorio ~/project.

nano ~/project/passwords.txt

En este archivo, agregue las siguientes contraseñas, una por línea:

password
123456
labex
admin
guest

Presione Ctrl+X, luego Y, luego Enter para guardar el archivo.

Estas son listas simples con fines demostrativos. En un escenario del mundo real, se utilizarían listas mucho más grandes y complejas.

Ahora ha creado dos archivos: users.txt que contiene una lista de nombres de usuario y passwords.txt que contiene una lista de contraseñas. Hydra utilizará estas listas en el siguiente paso para intentar crackear la contraseña del servidor SMB.

Ejecución de un ataque SMB con Hydra

En este paso, utilizaremos Hydra para realizar un ataque de fuerza bruta contra el servidor SMB que configuramos en el primer paso. Hydra es un cracker de contraseñas paralelizado que admite numerosos protocolos para realizar ataques.

Abra su terminal en el directorio ~/project.

Ahora, ejecutemos el comando de Hydra para atacar el servicio SMB.

hydra -L ~/project/users.txt -P ~/project/passwords.txt 127.0.0.1 smb

Desglosemos este comando:

  • hydra: Este es el comando para ejecutar la herramienta Hydra.
  • -L ~/project/users.txt: Esto especifica la ruta al archivo de la lista de usuarios.
  • -P ~/project/passwords.txt: Esto especifica la ruta al archivo de la lista de contraseñas.
  • 127.0.0.1: Esta es la dirección IP del servidor SMB objetivo (en este caso, el localhost).
  • smb: Esto especifica el servicio a atacar (SMB).

Hydra ahora comenzará a intentar iniciar sesión en el servidor SMB utilizando los nombres de usuario y contraseñas de las listas que proporcionó. Probará todas las combinaciones de nombre de usuario y contraseña hasta encontrar una válida o agotar todas las posibilidades.

La salida mostrará los intentos que se están realizando. Si Hydra encuentra una combinación válida de nombre de usuario y contraseña, la mostrará en la salida.

Nota importante: Este ataque se está realizando en un servidor SMB local con fines educativos. Realizar ataques no autorizados en sistemas remotos es ilegal y poco ético.

El comando puede tardar algún tiempo en completarse, dependiendo del tamaño de sus listas de usuarios y contraseñas. Observe la salida para ver si Hydra logra descifrar la contraseña.

Verificación de los resultados del ataque SMB

En este paso, analizaremos la salida del ataque SMB de Hydra para determinar si se han descifrado con éxito algunas credenciales.

Después de ejecutar el comando de Hydra en el paso anterior, examine detenidamente la salida en su terminal. Hydra mostrará cualquier combinación válida de nombre de usuario y contraseña que encuentre.

La salida tendrá un aspecto similar al siguiente si se encuentra un inicio de sesión exitoso:

[smb] host: 127.0.0.1   login: labex   password: <the_password>

Si Hydra tiene éxito, imprimirá el nombre de usuario y la contraseña que funcionan. En nuestro ejemplo, si la contraseña del usuario labex estaba en el archivo passwords.txt, Hydra la habría encontrado.

Si Hydra no encuentra ninguna credencial válida, mostrará un mensaje indicando que ha agotado todas las combinaciones de nombre de usuario y contraseña sin éxito.

Si ha descifrado con éxito la contraseña, anote el nombre de usuario y la contraseña. Luego puede utilizar estas credenciales para acceder a la compartición SMB que creamos en el primer paso.

Para probar las credenciales descifradas, puede utilizar el comando smbclient. Primero, instálelo si aún no está instalado:

sudo apt update
sudo apt install smbclient -y

Luego, utilice el siguiente comando para conectarse a la compartición SMB, reemplazando <the_password> por la contraseña descifrada:

smbclient //127.0.0.1/share -U labex -p <the_password>

Si el inicio de sesión es exitoso, se le presentará un aviso smb:\>, lo que indica que se ha conectado con éxito a la compartición SMB. Luego puede utilizar comandos SMB para explorar e interactuar con los archivos compartidos.

Si no ha descifrado la contraseña, puede intentar agregar más contraseñas comunes al archivo passwords.txt y ejecutar nuevamente el comando de Hydra. Recuerde que la eficacia de un ataque de fuerza bruta depende de la calidad y el tamaño de la lista de contraseñas.

Resumen

En este laboratorio, comenzamos configurando un servidor SMB local utilizando Samba para crear un objetivo para un ataque SMB de Hydra. Esto implicó instalar el paquete de Samba, hacer una copia de seguridad del archivo de configuración original y crear un nuevo archivo de configuración simplificado con un directorio compartido llamado share accesible para todos.

La configuración incluyó establecer el grupo de trabajo, la cadena del servidor, el nombre NetBIOS, la configuración de seguridad y definir la ruta del directorio compartido, su visibilidad, capacidad de escritura y acceso de invitados. También creamos el directorio compartido y establecimos sus permisos en 777 por simplicidad, señalando que se recomiendan permisos más restrictivos en escenarios del mundo real. El siguiente paso consiste en agregar un usuario de Samba.