Ataque de Fuerza Bruta Login Page con Burp Suite

> La fuerza bruta es descrita como un método para recuperar claves, nombres de usuarios o directorios de un servidor web probando todas las combinaciones... Windows

# ATAQUE de FUERZA BRUTA

La fuerza bruta es descrita como un método para recuperar claves, nombres de usuarios o directorios de un servidor web probando todas las combinaciones posibles. Para llevar a cabo el ataque, el atacante hace uso de un diccionario (documento de texto con salto de línea) en donde registra las posibles contraseñas débiles para descifrarla y ganar acceso. Dependiendo la herramienta, el procesador del equipo y el diccionario a utilizar, adivinar la contraseña requiere de mucho tiempo si no se cuenta con una enumeración detallada (palabras claves, caracteres especiales, números, símbolos, etc) que pueda dar con la misma. La fuerza bruta no es solo empleada para adivinar claves Wi-Fi, sino también para acceder a cuentas personales en redes sociales o bancos. En el caso de las redes sociales no es muy eficaz, pues, la mayoría de ellas cuentan con un sistema de protección y/o autenticación que límita el acceso a usuarios malintencionados (sobre todo para evitar que entren bots), dejando el ataque inutilizable; muchas veces se utilizan user-agents para simular las peticiones HTTP desde dispositivos diferentes.

Tipos de ataques de fuerza bruta:

  • Ataque por Diccionario: Su lógica es muy sencilla, consiste en probar todas las palabras del diccionario hasta averiguar con la contraseña. Este método de cracking es poco eficaz si la contraseña es muy fuerte (combinaciones de caracteres especiales y/o muy larga). En Internet hay diccionarios públicos para utilizar, la mayoría de ellos traen contraseñas débiles y más utilizadas que han sido recolectadas por usuarios (Ej: rockyou). Lo recomedable para llevar este ataque y tener éxito es crear un diccionario propio donde combinemos datos personales del objetivo (edad, nombres, direcciones, números teléfonicos, fechas, pasatiempos, gustos, etc). Si la víctima habla español, es una perdida de tiempo utilizar diccionarios con palabras en inglés (Ej: hello, john, iloveyou, etc) y tampoco utilizarían contraseñas fáciles de descifrar (Ej: nombre1234, fecha-de-cumpleaños, nombre-de-su-mascota123, etc). Un ataque de diccionario difícilmente tiene éxito si la contraseña es una frase larga.

  • Ataque de Tabla Arcoíris: Las rainbow tables (tablas arcoíris) son las más potentes para cracking de hash. Suele utilizarse para romper contraseñas que han sido cifradas en un hash, parten desde un conjunto enorme de hashes precalculados que se combinan entre sí en todos los caracteres especiales, letras y símbolos. En una tabla arcoíris puede caber más de 100.000 palabras en una sola fila, el valor del hash de un servidor web se compara con la lista de valores hash de la tabla Rainbow, el texto se compara con la contraseña a descifrar. El hash se reduce para obtener el siguiente texto original en la cadena, se recorre toda la cadena hasta llegar a un valor hash que coincida con la contraseña. Las Rainbow Tables son específicas con los caracteres empleados en la contraseña, es decir, si una contraseña es demasiada larga o utiliza caracteres que no están en la tabla, entonces no puede ser descifrada; normalmente pueden contener miles de millones de hashes.

  • Ataque Inverso (password spraying): En este caso se empieza por el final. El atacante empieza con una contraseña conocida e irá probando con una lista de miles de usuarios hasta encontrar una coincidencia. Para ello, necesitará recolectar en Internet una base de datos pública que contenga nombre de usuarios filtrados.

Ilustración del procedimiento
Ilustración del procedimiento 🔍 click para ampliar

# Brute Force Login Page | Burp Suite

Burp Suite es una poderosa herramienta escrita en Java que permite realizar pruebas de seguridad de aplicaciones web, cuenta con una versión gratuita y de paga. Su función básica se encuentra en el servidor proxy que permite interceptar el tráfico entre el navegador y aplicación destino, el cual posibilita inspeccionarlo y modificarlo.

Para este escenario voy a utilizar la máquina de Metasploitable 2, en la cual tiene un panel de login que podemos usar para practicar la fuerza bruta.

Ilustración del procedimiento
Ilustración del procedimiento 🔍 click para ampliar

Antes que nada, hay que ir al apartado de Configuraciones del navegador > Network Settings y copiar lo siguiente:

Manual Proxy Valor
HTTP Proxy 127.0.0.1
Port 8080

Ilustración del procedimiento
Ilustración del procedimiento 🔍 click para ampliar

En la pestaña de Proxy de Burp Suite tienen que tener estos valores configurado (por defecto) > ProxySettings.

Ilustración del procedimiento
Ilustración del procedimiento 🔍 click para ampliar

Lo primero que haremos será introducir un usuario y contraseña aleatorio, teniendo el intercep en modo ON.

Ilustración del procedimiento
Ilustración del procedimiento 🔍 click para ampliar

Ilustración del procedimiento
Ilustración del procedimiento 🔍 click para ampliar

Desde Burp Suite se captura la petición.

Ilustración del procedimiento
Ilustración del procedimiento 🔍 click para ampliar

Luego, le damos en Forward para enviar la petición.

Ilustración del procedimiento
Ilustración del procedimiento 🔍 click para ampliar

Nos dará un error de credenciales. En Burp Suite nos dirijimos a Proxy > HTTP History y en la petición hacemos clíc derecho y lo enviamos al módulo Intruder.

Ilustración del procedimiento
Ilustración del procedimiento 🔍 click para ampliar

En el módulo Intruder nos ubicamos en Positions, limpiamos haciendo clíc en Clear§. Seleccionamos el usuario y le damos en Add§, lo mismo con la contraseña.

Ilustración del procedimiento
Ilustración del procedimiento 🔍 click para ampliar

En el "tipo de ataque" seleccionamos modo Cluster bomb, este modo permite ir iterando en ambas posiciones del diccionario para probar todas las combinaciones.

Ilustración del procedimiento
Ilustración del procedimiento 🔍 click para ampliar

Luego de haber hecho lo anterior, nos dirijimos nuevamente a Intruder > Payloads. El Payload 1 indica que el primer diccionario es para descubrir el usuario y en el tipo de payloads lo dejamos en lista simple.

Ilustración del procedimiento
Ilustración del procedimiento 🔍 click para ampliar

Ya deberíamos contar con un diccionario propio o descargar uno. Por ejemplo, SecList es un repositorio completo que contiene muchos diccionarios de usuarios, contraseñas, payloads, etc.

Ilustración del procedimiento
Ilustración del procedimiento 🔍 click para ampliar

Ilustración del procedimiento
Ilustración del procedimiento 🔍 click para ampliar

En la posición de Payload 2 indicamos el segundo diccionario para descubrir la contraseña.

Ilustración del procedimiento
Ilustración del procedimiento 🔍 click para ampliar

El siguiente paso será ir a Intruder > Payloads > Settings y en la sección de "Grep Match" damos en Clear. En "Add" agregamos un mensaje que devolverá si la contraseña o usuario es incorrecta.

Ilustración del procedimiento
Ilustración del procedimiento 🔍 click para ampliar

Y por último, desactivan el proxy Intercep OFF, y en Intruder le dan a "Start Attack".

Ilustración del procedimiento
Ilustración del procedimiento 🔍 click para ampliar

Cuando el valor es "1" significa que el usuario o la contraseña son inválidas, pero cuando no, es porque fue descubierta. En este caso la solicitud 25 me indica que el usuario "admin" y contraseña "password" son válidos.

Ilustración del procedimiento
Ilustración del procedimiento 🔍 click para ampliar

# TIPS PARA MITIGAR ATAQUES DE FUERZA BRUTA

Mitigar los ataques de fuerza bruta es importante para la seguridad de cualquier aplicación. Estos son algunos de los métodos mas eficientes para prevenir estos ataques:

  • Implementar CAPTCHA: Implementar un límite de intentos fallidos de sesión por usuario o dirección IP es un buen mecanismo de defensar. Después de varios intentos fallidos, bloquea la cuenta temporalmente o muestra un CAPTCHA.

  • Contraseñas fuertes: Asegurarse de crear contraseñas fuertes como frases, uso de: símbolos, números, y combinación de las mismas.

  • Hashing: Almacenar las contraseñas de forma segura utilizando algoritmos de hashing fuertes como Bcrypt.

  • Registro de actividades / Logs: Mantener un registro detallado de todas las actividades de inicio de sesión para poder revisar y auditar en caso de un incidente de seguridad.

  • Autenticación MultiFactor: Requerir de un segundo factor de autenticación, como un código enviado al teléfono o al correo del usuario, para aumentar la seguridad.

Advertencia: Todo el contenido de este artículo es estrictamente educativo. No nos hacemos responsables del mal uso de esta herramienta o información. Practica únicamente en entornos controlados y con autorización.
× Imagen ampliada