Este artículo explora métodos fundamentales para realizar ataques de contraseña exitosos contra diversos servicios y escenarios, esenciales en el contexto del equipo rojo.
Conceptos Fundamentales de Ataque por Contraseña
Un ataque de contraseña implica técnicas para acceder sin autorización a un sistema, servicio o cuenta. Se basa en intentar adivinar la contraseña correcta mediante fuerza bruta, diccionarios o listas personalizadas. Es crucial diferenciar entre descifrado de contraseñas (offline, a partir de hashes obtenidos) y adivinanza de contraseñas (online, contra servicios activos). El objetivo final siempre es el acceso no autorizado.
Fuentes para Listas de Contraseñas
El éxito de un ataque depende enormemente de la calidad de la lista de contraseñas (wordlist).
Contraseñas por Defecto y Débiles
Antes de ataques complejos, se deben probar credenciales por defecto (ej: admin:admin). Existen sitios como default-password.info para consultarlas. Listas de contraseñas débiles y filtradas se pueden encontrar en repositorios como SecLists.
Generación de Listas Personalizadas
La personalización aumenta la tasa de éxito. Herramientas como CeWL pueden extraer palabras relevantes de un sitio web objetivo.
# Ejemplo conceptual de CeWL (estructura cambiada)
cewl --depth 5 --min-word-length 5 --output target_list.txt http://objetivo.labs
Para generar nombres de usuario, se pueden crear patrones basados en nombres reales (ej: jperez, perez.juan). Herramientas automatizadas como username_generator facilitan este proceso.
Herramientas para Creación de Listas
Crunch: Listas Basadas en Espacio de Claves
Crunch permite generar listas definiendo caracteres y longitudes específicas.
# Genera combinaciones de 2 caracteres usando 0-4 y a-d
crunch 2 2 01234abcd -o output_crunch.txt
# Usa patrones (-t) para formatos conocidos (ej: pass + 2 dígitos)
crunch 6 6 -t pass%% -o pass_nums.txt
CUPP: Analizador de Contraseñas de Usuario
CUPP es interactivo y crea listas basadas en información personal (nombres, fechas, mascotas).
# Clonar e iniciar CUPP en modo interactivo
git clone https://github.com/Mebus/cupp.git
cd cupp
python3 cupp.py -i
Ataques Offline: Descifrado de Hashes
Ataque por Diccionario con Hashcat
Para hashes capturados, se usa un ataque por diccionario. Primero se identifica el tipo de hash (ej: con hashid).
# Ejemplo conceptual con hashcat (variables y flags alternativos)
hashcat --attack-mode 0 --hash-type 0 target_hash.txt wordlist_rockyou.txt
# Mostrar resultado descifrado
hashcat --attack-mode 0 --hash-type 0 target_hash.txt wordlist_rockyou.txt --show
Ataque de Fuerza Bruta con Hashcat
Cuando el espacio de claves es reducido (ej: PIN de 4 dígitos), se puede probar todas las combinaciones.
# Generar y probar combinaciones de 4 dígitos
hashcat --attack-mode 3 --hash-type 0 hash_md5.txt ?d?d?d?d
Ataques con Reglas: Transformación de Listas
Las reglas modifican palabras existentes para crear variantes complejas (ej: password -> P@ssw0rd!). Se usan con herramientas como John the Ripper o Hashcat.
# Ejemplo conceptual de regla para John
john --wordlist=lista_base.txt --rules=regla_personalizada --stdout > lista_ampliada.txt
Se pueden crear reglas personalizadas en el archivo de configuración de John (john.conf) para añadir prefijos/sufijos específicos.
Ataques Online: Contra Servicios Activos
Uso de Hydra
Hydra ataca servicios de red (FTP, SSH, HTTP, SMTP). La sintaxis varía según el protocolo.
# Ataque conceptual a SSH (parámetros modificados)
hydra -L usuarios.txt -P contrasenas.txt -s 22 -t 4 ssh://192.168.1.10
# Ataque a formulario HTTP GET (estructura diferente)
hydra -l usuario -P wordlist.txt 10.0.0.1 http-get-form "/login.php:campo_user=^USER^&campo_pass=^PASS^:Cadena_éxito" -f
Es fundamental analizar la repsuesta del servicio para ajustar las condiciones de éxito (cadena S) o fallo (cadena F).
Ataque de Spray de Contraseñas
Esta técnica usa una contraseña común contra múltiples usuarios para evadir bloqueos de cuenta. Se aplican patrones como EstacionAñoAño! (ej: Otoño2023!).
# Ejemplo conceptual de spray contra SSH
hydra -L lista_usuarios.txt -p "Verano2024!" ssh://10.10.10.5
Herramientas especializadas como RDPassSpray están diseñadas para servicios específicos como RDP.
Práctica Guiada en Entorno Controlado
Se recomienda practicar estas técnicas en laboratorios como TryHackMe. Un flujo típico sería:
- Generar una wordlist personalizada con CeWL basada en un sitio objetivo.
- Ampliarla usando reglas de John o Hashcat.
- Relaizar ataques online con Hydra a servicios expuestos (FTP, SSH, HTTP).
- Emplear spray de contraseñas con listas de usuarios obtenidas de la fase de enumeración.
La combinación de técnicas de generación de listas y ataques específicos aumenta significativamente la probabilidad de éxito en una prueba de penetración.