Una de las fases más común en un ejercicio de pentesting o un CTF, es en la que ya tenemos reconocidos los servicios de red de un servidor y queremos intentar descubrir alguna contraseña de sus servicios (ssh, rdp, ftp, smb, http, etc…), para esto los pentesters tenemos una serie de herramientas capaces de realizar ataques de fuerza bruta a estos servicios. Hay varias, pero voy a hablaros de la que mas me gusta usar, THC-Hydra.

Un dato muy importante a tener en cuenta, es que este tipo de ataques generan mucho ruido; estos ataques suelen quedar registrados en los logs del sistema atacado y puede hacer que salten las alertas en los NDR, IDS, etc…

THC-Hydra

Esta es la herramienta mas conocida para este tipo de ataques y se puede dividir en 3 tipos:

  • Ataque de fuerza bruta por diccionario
  • Ataque de fuerza bruta en profundidad
  • Ataque de fuerza bruta en anchura

Fuerza bruta por diccionario:

En este tipo de ataques se usa un diccionario de palabras para atacar, este diccionario vale para contraseñas pero también para nombres de usuario. En el ejemplo se intenta averiguar el usuario y  la contraseña del servicio FTP de la ip 10.0.0.1:

hydra -L usuarios.txt -P contraseñas.txt -vV 10.0.0.1 ftp

  • -L: Fichero con los nombres de usuario
  • -P: Fichero con las contraseñas
  • -vV: Muestra toda la información por cada uno de los intentos de acceso
  •  ftp: El servicio al que estamos lanzando Hydra

De esta forma Hydra combinara los usuarios y las contraseñas que hay en los archivos hasta encontrar las credenciales validas.

Fuerza bruta en profundidad:

Este tipo de ataque se base en utilizar un fichero de contraseñas para una única cuenta de usuario:

hydra -l cova -P contraseñas.txt -vV 10.0.0.1 ssh

  • -l: Nombre de usuario
  • -P: Fichero con las contraseñas
  • -vV: Muestra toda la información por cada uno de los intentos de acceso
  •  ssh: El servicio al que estamos lanzando Hydra

En este ejemplo de arriba, se intenta descubrir la contraseña del servicio ssh para el usuario Cova.

Fuerza bruta en anchura:

En este tipo de ataque lo que se intenta es descubrir a que usuario pertenece una contraseña concreta, suponiendo que en un ejercicio de pentesting encontramos una posible contraseña de un servicio SMB y queremos saber a que usuario pertenece:

hydra -L usuarios.txt -p SeCr3tA -vV 10.0.0.1 smb

  • -L: Fichero con nombres de usuario
  • -p: La contraseña a probar
  • -vV: Muestra toda la información por cada uno de los intentos de acceso
  •  smb: El servicio al que estamos lanzando Hydra

 

Cómo evitar estos ataques

Para evitar este tipo de ataques hay varias herramientas dependiendo del servicio, una de las mas conocidas es Fail2Ban , esta herramienta se encarga de vigilar los intentos de inicio de sesión en un servicio de red (ssh, telnet, smb, rdp, http, etc…), si una ip externa intenta iniciar sesión un número determinado de veces y falla este acceso, fail2ban bloquea esta ip durante un tiempo determinado para que no pueda volver a intentar iniciar sesión.

También hay otra aplicaciones que protegen de estos ataques, por ejemplo si el servicio atacado es el http o https, para evitar el ataque esta ModSecurity, este mod de Apache puede bloquear los intentos de login cuando se esta intentando descubrir usuarios o contraseñas por fuerza bruta.

¿Tienes dudas? Contacta con nuestro equipo de ciberseguridad.