¿Qué es un ataque de fuerza bruta?

Un ataque de fuerza bruta es una técnica utilizada en ciberseguridad para descifrar contraseñas, claves de cifrado u otros datos protegidos mediante la prueba sistemática de todas las combinaciones posibles hasta encontrar la correcta. Este método se basa en la potencia de cálculo y la capacidad de generar y probar rápidamente una gran cantidad de posibles combinaciones.

¿Qué significa ataque de fuerza bruta en informática?

En el contexto informático, un ataque de fuerza bruta implica la automatización del proceso de prueba de combinaciones de credenciales (como nombres de usuario y contraseñas) utilizando software especializado que más adelante veremos. Este tipo de ataque es comúnmente utilizado para acceder a cuentas protegidas, redes y servicios restringidos.

Diferencias entre ataque de fuerza bruta y ataque de diccionario

  • Ataque de fuerza bruta: Prueba todas las combinaciones posibles de caracteres hasta encontrar la correcta. Es exhaustivo y garantiza encontrar la contraseña, pero puede ser muy lento si la contraseña es larga o compleja.
  • Ataque de diccionario: Utiliza una lista predefinida de posibles contraseñas (un diccionario) en lugar de probar todas las combinaciones posibles. Es más rápido que un ataque de fuerza bruta simple, pero depende de la calidad y relevancia del diccionario utilizado.

Tipos de ataques de fuerza bruta

  • Ataque de fuerza bruta simple: Intenta todas las combinaciones posibles de caracteres sin ninguna optimización.
  • Ataque de diccionario: Utiliza listas de palabras y frases comunes como posibles contraseñas.
  • Ataque híbrido: Combina un ataque de diccionario con variaciones como agregar números o caracteres especiales a las palabras del diccionario.
  • Ataque inverso de fuerza bruta: En lugar de adivinar contraseñas para un usuario específico, adivina un nombre de usuario para una contraseña conocida o común

Ataque de fuerza bruta en contraseñas

Los ataques de fuerza bruta en contraseñas son uno de los usos más comunes de esta técnica. Los atacantes prueban sistemáticamente todas las combinaciones posibles de caracteres hasta encontrar la contraseña correcta. Esto puede realizarse tanto de manera manual como automatizada, utilizando herramientas que facilitan y aceleran el proceso. Este tipo de ataque es efectivo contra contraseñas débiles o cortas, pero puede ser muy lento y poco práctico contra contraseñas largas y complejas.

Ataque de fuerza bruta a aplicaciones web

En las aplicaciones web, los ataques de fuerza bruta suelen dirigirse a formularios de inicio de sesión, áreas de administración o cualquier punto de entrada protegido por contraseña. Los atacantes utilizan scripts automatizados para probar múltiples combinaciones de nombres de usuario y contraseñas en un corto período de tiempo. Herramientas como Hydra y Burp Suite son frecuentemente utilizadas para este propósito. Las aplicaciones web vulnerables a estos ataques pueden ser comprometidas, permitiendo a los atacantes acceder a datos sensibles o controlar la aplicación.

Ataque de fuerza bruta a redes (WiFi, WPS)

Los ataques de fuerza bruta también pueden dirigirse a redes inalámbricas, especialmente aquellas protegidas por contraseñas WPA/WPA2 o utilizando el estándar WPS. En el caso de WPA/WPA2, los atacantes capturan el handshake entre el dispositivo y el router, y luego intentan descifrar la contraseña probando todas las combinaciones posibles. Para las redes con WPS habilitado, los atacantes pueden aprovechar vulnerabilidades específicas de WPS para reducir significativamente el tiempo necesario para descubrir la contraseña de la red.

Ataque de fuerza bruta a protocolos y servicios (RDP, SSH, FTP)

Los protocolos y servicios que permiten acceso remoto, como RDP (Remote Desktop Protocol), SSH (Secure Shell) y FTP (File Transfer Protocol), son objetivos comunes de los ataques de fuerza bruta. Los atacantes intentan acceder a estos servicios probando una gran cantidad de combinaciones de credenciales hasta encontrar la correcta. Estos ataques pueden ser especialmente peligrosos si los servicios están expuestos a Internet sin medidas de protección adecuadas, como la limitación de intentos de inicio de sesión o la implementación de autenticación de dos factores.

Cómo Realizar Ataques de Fuerza Bruta

Antes de hablar de las diferentes herramientas y métodos para realizar ataques de fuerza bruta es importante dejar claro que esta información es con intenciones meramente académicas para estudiantes y profesionales del Hacking ético que quieran realizar auditorías, test de penetración, etc. para evaluar los sistemas y políticas de contraseñas de empresas y particulares con el objetivo de reforzarlas. Castigamos toda acción de ciberdelincuencia y nuestro objetivo es mantener un internet libre y seguro para todos.

Ataque de fuerza bruta con Hydra

Hydra es una herramienta popular y versátil para realizar ataques de fuerza bruta a diversos servicios y protocolos. Es capaz de realizar ataques contra protocolos como FTP, HTTP, SMB, RDP, SSH, y muchos más.

Hydra está preinstalado en Kali Linux, una distribución de Linux especializada en pruebas de penetración y auditorías de seguridad, facilitando su uso para profesionales de la seguridad.

Ataque a un formulario web con Hydra

Si conoces el usuario pero desconoces la contraseña deberás iniciar la herramienta de Hydra en tu Kali Linux y utilizar el siguiente comando

root@Kali

> hydra -l admin -P /path/to/passwords.txt <target-ip> http-post-form ‘/login.php:user=^USER^&pass=^PASS^:F=incorrect’

>

En este ejemplo admin seria el nombre que conocemos y para el cual queremos averiguar los credenciales, la ruta /path/to/passwords.txt donde está nuestro diccionario de claves comunes, <target-ip> la ip donde se encuentra el formulario (esta ip se pone sin comillas ni caracteres) y /login.php entre las comillas es la ruta donde está el formulario en dicha ip. Lo último que debes tener en cuenta es utilizar el mensaje e error que devuelve cuando intentas acceder, este texto lo deberás de colocar detrás de F= que en nuestro ejemplo es incorrect.

Ataque a un puertos o servicio y protocolos con Hydra

Si de nuevo conoces el nombre del usuario de un dispositivo, por ejemplo una máquina con windows pero desconoces la contraseña se pueden ver los posibles puertos abiertos con Nmap como por ejemplo ftp, ssh o smb. Una vez que hayamos identificado cual podemos utilizar el comando sería muy parecido al anterior.

root@Kali

> hydra -l admin -P /path/to/passwords.txt ftp://

>

Ataque de fuerza bruta en WordPress con WPScan

WPScan es una herramienta especializada en la seguridad de WordPress, capaz de realizar una variedad de análisis, incluyendo ataques de fuerza bruta contra el formulario de inicio de sesión de WordPress.

Esta herramienta también viene preinstalada en Kali Linux y es fácil de usar y muy efectiva para auditar la seguridad de sitios web basados en WordPress.

En este caso se puede usar tanto para encontrar usuarios (primer comando) y descifrar contraseñas (segundo comando).

root@Kali

> wpscan –url https://www.test.com/ –enumerate u

> wpscan –url https://www.test.com/ –passwords /path/to/passwords.txt –usernames admin

Ataque de fuerza bruta con Burp Suite

Burp Suite es una plataforma integral para pruebas de seguridad en aplicaciones web, que incluye herramientas para realizar ataques de fuerza bruta. Puedes descargar Burp Suite desde su página oficial.

Configuración del Proxy en Burp Suite:

  • Abre Burp Suite y navega a la pestaña Proxy.
  • Asegúrate de que el proxy está habilitado y configurado para interceptar el tráfico HTTP/HTTPS de tu navegador.
  • Configura tu navegador para que use el proxy de Burp Suite. Normalmente, esto implica cambiar la configuración del proxy en tu navegador para que apunte a localhost en el puerto 8080 (o el puerto que hayas configurado en Burp Suite).

Capturar una solicitud de inicio de sesión:

  • Navega a la página de inicio de sesión del sitio web objetivo con tu navegador configurado para usar el proxy de Burp Suite.
  • Introduce unas credenciales falsas (nombre de usuario y contraseña) y envía la solicitud de inicio de sesión.
  • Burp Suite interceptará esta solicitud. Examina la solicitud en la pestaña Intercept dentro de la pestaña proxy.

Enviar la solicitud a Intruder:

  • En la ventana de Burp Suite, con la solicitud interceptada visible, haz clic derecho y selecciona Send to Intruder.
  • Ve a la pestaña Intruder, selecciona la solicitud que acabas de enviar y navega a la pestaña Positions.

Configurar las posiciones de los parámetros:

  • En la pestaña Positions, verás la solicitud interceptada con algunos valores resaltados. Estos son los parámetros que Burp Suite intentará atacar.
  • Selecciona y ajusta los parámetros que quieres atacar. Por ejemplo, selecciona el valor de la contraseña y haz clic en Add § para marcarlo como una posición de ataque.

Configurar el ataque:

  • Ve a la pestaña Payloads.
  • En el panel Payload Options, selecciona Simple list como el tipo de carga útil.
  • Introduce o carga una lista de posibles contraseñas que Burp Suite intentará.

Iniciar el ataque:

  • Haz clic en el botón Start attack para comenzar el ataque de fuerza bruta.
  • Burp Suite comenzará a enviar solicitudes de inicio de sesión utilizando las contraseñas de tu lista, e intentará encontrar la correcta.

Ataque de fuerza bruta con Nmap

Nmap es una herramienta de escaneo de redes que también puede realizar ataques de fuerza bruta a través de scripts NSE (Nmap Scripting Engine). Por ejemplo para atacar un servicio SSH ( contra el puerto 22) podrías utilizar el siguiente comando:

root@Kali

> nmap -p 22 –script ssh-brute <target-ip>

>

Ataque de fuerza bruta con Wifislax

Wifislax es una distribución de Linux centrada en la auditoría de redes inalámbricas, que incluye herramientas para realizar ataques de fuerza bruta a redes WiFi.

Para realizar un ataque contra una red WPA/WPA2, puedes usar herramientas como Aircrack-ng, que están incluidas en Wifislax y con un diccionario:

root@Kali

> airmon-ng start wlan0

> airodump-ng –bssid –channel –write

> aircrack-ng -w /path/to/passwords.txt -b <target-bssid> <capture-file>

>

En el primer comando buscamos monitorear las redes WiFi y capturar los handshakes necesarios. Para ello necesitamos poner nuestro adaptador de red inalámbrica en modo monitor (airmon-ng):

Una vez que nuestro adaptador está en este modo pasamos escuchar y monitorizar la red. Para ello debemos conocer el BSSID (Basic Service Set Identifier) es decir la dirección MAC (Media Access Control) que identifica de manera única al punto de acceso inalámbrico (AP) que queremos atacar. El canal en el que opera la red WiFi objetivo.

Después se establece el nombre del archivo que guardará estás capturas (capture-file). El capture-file es un archivo que contiene datos capturados durante la comunicación entre el cliente y el punto de acceso. En el contexto de Aircrack-ng y ataques de fuerza bruta a redes WPA/WPA2, este archivo normalmente contiene los handshakes necesarios para intentar descifrar la clave WPA/WPA2.

En último lugar el el nombre de nuestra interfaz de red en modo monitor.

Una vez que hemos realizado esto en el siguiente comando ya se puede realizar el ataque con un diccionario.

Ataque de fuerza bruta con Python

Python es un lenguaje de programación poderoso y flexible que se utiliza ampliamente en la comunidad de ciberseguridad debido a su simplicidad y la amplia disponibilidad de bibliotecas especializadas. Python puede facilitar ataques de fuerza bruta gracias las capacidades que ofrece.

Capacidades de Python para Ataques de Fuerza Bruta

  1. Automatización de Tareas Repetitivas: Python permite automatizar el proceso de enviar múltiples solicitudes de inicio de sesión, variando las combinaciones de usuario y contraseña. Esto es esencial para realizar ataques de fuerza bruta de manera eficiente.
  2. Manipulación de Datos: Con bibliotecas como itertools y pandas, Python puede generar combinaciones de contraseñas y manejar grandes volúmenes de datos. Esto incluye la generación de posibles contraseñas basadas en reglas específicas y la gestión de listas de contraseñas.
  3. Interacción con Servicios Web y Protocolos: Bibliotecas como requests permiten interactuar con servicios web, mientras que paramiko puede ser utilizado para atacar servicios SSH. Estas bibliotecas facilitan el envío de solicitudes HTTP/S y comandos SSH, respectivamente.
  4. Concurrente y Paralelización: Utilizando módulos como threading y multiprocessing, Python puede ejecutar múltiples intentos de inicio de sesión en paralelo, acelerando significativamente el proceso de fuerza bruta.
  5. Integración con Herramientas de Seguridad: Python se puede integrar con herramientas y scripts existentes. Por ejemplo, puedes usar Python para preprocesar datos que luego se pasan a herramientas de fuerza bruta como Hydra o Aircrack-ng.
  6. Análisis y Filtrado de Resultados: Después de realizar un ataque de fuerza bruta, es crucial analizar los resultados para identificar intentos exitosos. Python puede automatizar el análisis de registros y resultados, filtrando intentos fallidos y destacando posibles éxitos.
  7. Interfaz Gráfica de Usuario (GUI): Con bibliotecas como tkinter y PyQt, es posible crear interfaces gráficas que faciliten la configuración y ejecución de ataques de fuerza bruta, haciendo que las herramientas sean más accesibles para los usuarios.
  8. Personalización y Flexibilidad: Al ser un lenguaje de programación completo, Python permite personalizar cada aspecto de un ataque de fuerza bruta. Esto incluye la posibilidad de implementar ataques específicos para aplicaciones o servicios no estándar.

Detección y Prevención de Ataques de Fuerza Bruta

Detectar un ataque de fuerza bruta puede ser crucial para tomar medidas preventivas a tiempo y proteger los sistemas. Aquí algunas técnicas para identificar estos ataques:

  • Monitoreo de Logs y Alertas: Configurar sistemas de alerta y registrar intentos de inicio de sesión fallidos.
  • Análisis de Patrones de Tráfico: Utilizar herramientas de análisis de tráfico para identificar patrones de acceso inusualmente alto
  • Implementación de Rate Limiting: Limitar el número de intentos de inicio de sesión permitidos en un período de tiempo específico
  • Uso de Captcha y Autenticación de Dos Factores (2FA)
  • Fortalecimiento de Políticas de Contraseñas: Exigir contraseñas complejas que combinen letras mayúsculas, minúsculas, números y caracteres especiales y forzar la renovación cada cierto tiempo.
  • Firewalls y Sistemas de Detección de Intrusiones (IDS/IPS): Utilizar firewalls para filtrar y bloquear tráfico malicioso entrante.
  • Actualización Regular: Mantener sistemas y aplicaciones actualizados con los últimos parches de seguridad para mitigar vulnerabilidades conocidas.
  • Educación y Concienciación del Usuario: Capacitar sobre la importancia de las contraseñas seguras y buenos hábitos de ciberseguridad.
  • Auditorías de Seguridad Regulares: Realizar auditorías periódicas de seguridad para evaluar la eficacia de las políticas de seguridad implementadas

Los ataques de fuerza bruta representan una amenaza seria para la seguridad cibernética, destacando la importancia de implementar medidas robustas de detección y prevención. Es crucial que las organizaciones y los usuarios comprendan los riesgos asociados y adopten prácticas de seguridad adecuadas, como el uso de contraseñas fuertes, la autenticación multifactor y la monitorización continua de la actividad de red.

Además, desde una perspectiva legal y ética, la realización de ataques de fuerza bruta no solo puede resultar en consecuencias legales severas, sino que también plantea interrogantes éticos sobre el comportamiento responsable en el uso de tecnologías de información y comunicación.

Protegerse contra los ataques de fuerza bruta requiere un enfoque integral que incluya la educación de los usuarios, la implementación de políticas de seguridad robustas y el uso de tecnologías avanzadas de detección y respuesta ante incidentes. Esto no solo ayuda a mitigar el riesgo de compromiso de seguridad, sino que también fortalece la resiliencia de las organizaciones frente a las amenazas cibernéticas en evolución.

¿Hablamos?

Si necesitas información acerca de nuestros servicios o quieres conocernos en persona, por favor, no dudes en ponerte en contacto con nosotros. Primera visita al cliente sin coste ni compromiso. Estaremos encantados de poder ayudarte.