Skip to main content
HighProtected by PowerWAF

Ataque de Fuerza Bruta

CategoríaAutenticación y AccesoOWASPA07:2021 – Fallos de Identificación y AutenticaciónPrimera aparición1977Tiempo de lectura7 minVerificado2026-03-05
DEFINICIÓN

Un ataque de fuerza bruta es un método de prueba y error utilizado para adivinar credenciales de inicio de sesión, claves de cifrado o páginas ocultas probando sistemáticamente todas las combinaciones posibles hasta encontrar la correcta. Los atacantes usan herramientas automatizadas para probar miles o millones de combinaciones de usuario/contraseña por minuto, explotando aplicaciones que carecen de limitación de velocidad o mecanismos de bloqueo de cuentas.

Cómo Funciona Ataque de Fuerza Bruta

Los ataques de fuerza bruta dependen del poder computacional en lugar de la inteligencia. El atacante automatiza intentos de inicio de sesión contra un objetivo, iterando a través de combinaciones hasta que la autenticación tiene éxito. Las variantes incluyen ataques de diccionario (usando contraseñas comunes), credential stuffing (usando credenciales filtradas) y fuerza bruta inversa (probando una contraseña contra muchos nombres de usuario).

1

Seleccionar el objetivo y recopilar información

El atacante identifica un endpoint de inicio de sesión (formulario web, SSH, API) y recopila nombres de usuario a través de OSINT, brechas de datos o enumeración. Muchas aplicaciones revelan nombres de usuario válidos mediante diferentes mensajes de error para usuarios válidos vs. inválidos.

2

Preparar listas de palabras para el ataque

Se compilan listas de contraseñas a partir de contraseñas comunes (rockyou.txt), bases de datos de credenciales filtradas, o se generan basándose en patrones específicos del objetivo (nombre de empresa + año, contraseñas estacionales como Verano2025!).

3

Automatizar los intentos de inicio de sesión

Herramientas como Hydra, Burp Suite Intruder o scripts personalizados envían solicitudes rápidas de inicio de sesión al objetivo. Los ataques avanzados distribuyen las solicitudes entre múltiples IPs e introducen retrasos aleatorios para evadir la limitación de velocidad básica.

4

Explotar las credenciales exitosas

Una vez encontradas las credenciales válidas, el atacante obtiene acceso a la cuenta, realiza movimiento lateral, escala privilegios o exfiltra datos. Las credenciales comprometidas frecuentemente se venden en mercados de la dark web.

Ejemplos Reales

2016

Brecha de datos de Alibaba

Los atacantes usaron una base de datos de 99 millones de credenciales robadas para realizar fuerza bruta contra cuentas de Taobao. 20.6 millones de cuentas fueron comprometidas exitosamente durante varios meses antes de ser detectados.

2019

Ataques de credenciales a Dunkin' Donuts

Los ataques de fuerza bruta y credential stuffing comprometieron las cuentas de recompensas DD Perks, permitiendo a los atacantes robar información de pago almacenada y puntos de recompensa de miles de clientes.

2023

Campañas de password spray contra Microsoft 365

Atacantes patrocinados por estados realizaron password spraying a gran escala contra tenants de Microsoft 365 a nivel global, comprometiendo organizaciones en los sectores de gobierno, defensa y tecnología. La campaña usó proxies residenciales para evadir el bloqueo basado en IP.

Impacto y Evaluación de Riesgo

Los ataques de fuerza bruta exitosos conducen a acceso no autorizado a cuentas, robo de datos, fraude financiero y pueden servir como punto de entrada inicial para brechas mayores. A escala, los intentos de fuerza bruta consumen recursos del servidor y pueden causar denegación de servicio. Las cuentas comprometidas en entornos empresariales permiten el movimiento lateral y la escalación de privilegios. Las consecuencias regulatorias incluyen multas del GDPR por controles de acceso inadecuados.

Cómo Detectar Ataque de Fuerza Bruta

Monitorear los logs de autenticación en busca de altos volúmenes de intentos de inicio de sesión fallidos desde IPs individuales o contra cuentas individuales. Alertar sobre intentos de inicio de sesión desde ubicaciones geográficamente imposibles. Rastrear la relación de inicios de sesión fallidos a exitosos. Vigilar ataques distribuidos que muestran patrones a través de múltiples cuentas. Implementar activación de CAPTCHA después de fallos consecutivos. Usar análisis de WAF para identificar patrones de solicitudes automatizadas (temporización consistente, ausencia de huellas digitales del navegador).

Cómo Prevenir Ataque de Fuerza Bruta

Implementar limitación de velocidad progresiva en los endpoints de inicio de sesión (retroceso exponencial después de fallos). Desplegar políticas de bloqueo de cuentas con desbloqueo automático después de un período de enfriamiento. Requerir CAPTCHA después de 3-5 intentos fallidos. Aplicar políticas de contraseñas fuertes (mínimo 12 caracteres, requisitos de complejidad). Habilitar autenticación multifactor (MFA) — esto por sí solo neutraliza la mayoría de los ataques de fuerza bruta. Usar bcrypt/argon2 para el hashing de contraseñas para ralentizar los ataques offline. Desplegar un WAF con detección de bots para bloquear herramientas automatizadas de inicio de sesión.

Ejemplos de Código

Secure: Rate Limiting with Flask-Limiter
from flask import Flask
from flask_limiter import Limiter
from flask_limiter.util import get_remote_address

app = Flask(__name__)
limiter = Limiter(get_remote_address, app=app)

@app.route('/login', methods=['POST'])
@limiter.limit('5 per minute') # Max 5 attempts per IP per minute
def login():
# Authentication logic here
pass
Secure: Progressive Lockout (Node.js)
const MAX_ATTEMPTS = 5;
const LOCKOUT_MINUTES = [1, 5, 15, 60]; // Progressive lockout

async function handleLogin(username, password) {
const attempts = await getFailedAttempts(username);

if (attempts.count >= MAX_ATTEMPTS) {
const lockIndex = Math.min(attempts.lockouts, LOCKOUT_MINUTES.length - 1);
const lockUntil = attempts.lastFail + LOCKOUT_MINUTES[lockIndex] * 60000;
if (Date.now() < lockUntil) {
throw new Error('Account temporarily locked. Try again later.');
}
}

const valid = await verifyCredentials(username, password);
if (!valid) {
await incrementFailedAttempts(username);
throw new Error('Invalid credentials');
}
await resetFailedAttempts(username);
return createSession(username);
}

PowerWAF bloquea automáticamente Ataque de Fuerza Bruta antes de que llegue a tu servidor.

Implementa en minutos. Sin cambios de código. Plan gratuito disponible.

Los cupos del plan gratuito son limitados

Preguntas Frecuentes

Depende de la complejidad de la contraseña y la velocidad del ataque. Una contraseña de 6 caracteres en minúsculas tiene 308 millones de combinaciones y puede ser descifrada en segundos. Una contraseña mixta de 12 caracteres tiene más de 400 billones de combinaciones y tomaría siglos con hardware estándar. Por eso la longitud de la contraseña importa más que la complejidad.
La fuerza bruta prueba todas las combinaciones posibles de contraseñas. El credential stuffing usa pares de usuario/contraseña previamente filtrados de brechas de datos, explotando el hecho de que los usuarios reutilizan contraseñas en diferentes servicios. El credential stuffing es más rápido y dirigido.
La limitación de velocidad básica ayuda, pero los atacantes sofisticados distribuyen las solicitudes entre miles de IPs usando botnets o proxies residenciales. Una defensa efectiva requiere combinar limitación de velocidad con CAPTCHA, huellas digitales de dispositivos, análisis de comportamiento y MFA.