Medusa
Medusa, una herramienta destacada en el arsenal de ciberseguridad, está diseñada para ser un sistema de fuerza bruta de inicio de sesión rápido, masivamente paralelo y modular. Su objetivo principal es ofrecer soporte para una amplia gama de servicios que permiten la autenticación remota, lo que permite a los testers de penetración y a los profesionales de la seguridad evaluar la resiliencia de los sistemas de inicio de sesión ante ataques de fuerza bruta.
Instalación
Medusa suele venir preinstalado en distribuciones populares de pruebas de penetración como Kali Linux o ParrotOS. Puedes comprobar su presencia ejecutando:
Instalar Medusa en un sistema Linux es sencillo.
Sintaxis de comandos y tabla de parámetros
La interfaz de línea de comandos de Medusa es sencilla. Permite a los usuarios especificar hosts, usuarios, contraseñas y módulos con diversas opciones para optimizar el proceso de ataque.
Parámetro
Explicación
Ejemplo de uso
-h HOST
o
-H ARCHIVO
Opciones de destino: especifique un único nombre de host o dirección IP de destino (-h
) o un archivo que contenga una lista de objetivos (-H
)
medusa -h 192.168.1.10 ...
o medusa -H targets.txt ...
-u USERNAME
o -U ARCHIVO
Opciones de nombre de usuario: proporcione un único nombre de usuario ( -u
) o un archivo que contenga una lista de nombres de usuario ( -U
).
medusa -u admin ...
o medusa -U usernames.txt ...
-p PASSWORD
o -P ARCHIVO
Opciones de contraseña: especifique una única contraseña ( -p
) o un archivo que contenga una lista de contraseñas ( -P
).
medusa -p password123 ...
o medusa -P passwords.txt ...
-M MODULE
Módulo: define el módulo específico que se utilizará para el ataque (por ejemplo, ssh
, ftp
, http
).
medusa -M ssh ...
-m "MODULE_OPTION"
Opciones del módulo: proporcione parámetros adicionales requeridos por el módulo elegido, entre comillas.
medusa -M http -m "POST /login.php HTTP/1.1\r\nContent-Length: 30\r\nContent-Type: application/x-www-form-urlencoded\r\n\r\nusername=^USER^&password=^PASS^" ...
-t TASKS
Tareas: Definir la cantidad de intentos de inicio de sesión paralelos que se ejecutarán, lo que potencialmente acelerará el ataque.
medusa -t 4 ...
-f
o
-F
Modo rápido: detiene el ataque después de encontrar el primer inicio de sesión exitoso, ya sea en el host actual ( -f
) o en cualquier host ( -F
).
medusa -f ...
omedusa -F ...
-n PORT
Puerto: especifique un puerto no predeterminado para el servicio de destino.
medusa -n 2222 ...
-v LEVEL
Salida detallada: Muestra información detallada sobre el progreso del ataque. Cuanto mayor sea el valor LEVEL
(hasta 6), más detallada será la salida.
medusa -v 4 ...
Módulos Medusa
Cada módulo de Medusa está diseñado para interactuar con mecanismos de autenticación específicos, lo que le permite enviar las solicitudes adecuadas e interpretar las respuestas para ataques exitosos. A continuación, se muestra una tabla de módulos de uso común:
Módulo
Servicio/Protocolo
Descripción
Ejemplo de uso
FTP
Protocolo de transferencia de archivos
Credenciales de inicio de sesión FTP mediante fuerza bruta, utilizadas para transferencias de archivos a través de una red.
medusa -M ftp -h 192.168.1.100 -u admin -P passwords.txt
HTTP
Protocolo de transferencia de hipertexto
Forzar brutamente los formularios de inicio de sesión en aplicaciones web a través de HTTP (GET/POST).
medusa -M http -h www.example.com -U users.txt -P passwords.txt -m DIR:/login.php -m FORM:username=^USER^&password=^PASS^
IMAP
Protocolo de acceso a mensajes de Internet
Inicios de sesión IMAP mediante fuerza bruta, a menudo utilizados para acceder a servidores de correo electrónico.
medusa -M imap -h mail.example.com -U users.txt -P passwords.txt
MySQL
Base de datos MySQL
Fuerza bruta de las credenciales de la base de datos MySQL, comúnmente utilizada para aplicaciones web y bases de datos.
medusa -M mysql -h 192.168.1.100 -u root -P passwords.txt
POP3
Protocolo de Correos 3
Inicios de sesión POP3 mediante fuerza bruta, normalmente utilizados para recuperar correos electrónicos de un servidor de correo.
medusa -M pop3 -h mail.example.com -U users.txt -P passwords.txt
RDP
Protocolo de escritorio remoto
Inicios de sesión RDP mediante fuerza bruta, comúnmente utilizados para acceso de escritorio remoto a sistemas Windows.
medusa -M rdp -h 192.168.1.100 -u admin -P passwords.txt
SSHv2
Shell seguro (SSH)
Inicios de sesión SSH mediante fuerza bruta, comúnmente utilizados para acceso remoto seguro.
medusa -M ssh -h 192.168.1.100 -u root -P passwords.txt
Subversión (SVN)
Sistema de control de versiones
Forzar brutamente los repositorios de Subversion (SVN) para el control de versiones.
medusa -M svn -h 192.168.1.100 -u admin -P passwords.txt
Telnet
Protocolo Telnet
Servicios Telnet de fuerza bruta para ejecución remota de comandos en sistemas más antiguos.
medusa -M telnet -h 192.168.1.100 -u admin -P passwords.txt
VNC
Computación en red virtual
Forzar brutamente las credenciales de inicio de sesión de VNC para acceder al escritorio remoto.
medusa -M vnc -h 192.168.1.100 -P passwords.txt
Formulario web
Formularios de inicio de sesión web mediante fuerza bruta
Forzar brutamente los formularios de inicio de sesión en sitios web mediante solicitudes HTTP POST.
medusa -M web-form -h www.example.com -U users.txt -P passwords.txt -m FORM:"username=^USER^&password=^PASS^:F=Invalid"
Bruteforce a un servidor SSH
Imagina un escenario en el que necesitas probar la seguridad de un servidor SSH en la IP 192.168.0.100
. Tienes una lista de posibles nombres de usuario en usernames.txt
y contraseñas comunes en passwords.txt
. Para lanzar un ataque de fuerza bruta contra el servicio SSH en este servidor, podemos usar el siguiente comando de Medusa:
Este comando le ordena a Medusa que:
Apunta al host en
192.168.0.100
.Utilice los nombres de usuario del archivo
usernames.txt
.Pruebe las contraseñas que aparecen en el archivo
passwords.txt
.Utilice el módulo
ssh
para el ataque.
Medusa probará sistemáticamente cada combinación de nombre de usuario y contraseña contra el servicio SSH para intentar obtener acceso no autorizado.
Bruteforce a varios servidores web con autenticación HTTP básica
Supongamos que tiene una lista de servidores web que utilizan autenticación HTTP básica. Las direcciones de estos servidores se almacenan en web_servers.txt
y también tiene listas de nombres de usuario y contraseñas comunes en usernames.txt
y passwords.txt
, respectivamente. Para probar estos servidores simultáneamente, ejecute:
En este caso, Medusa:
Itera a través de la lista de servidores web en
web_servers.txt
.Utiliza los nombres de usuario y contraseñas proporcionados.
Utiliza el módulo
http
con elGET
método para intentar iniciar sesión.
Al ejecutar varios subprocesos, Medusa verifica eficientemente cada servidor en busca de credenciales débiles.
Prueba de contraseñas vacías o predeterminadas
Si desea evaluar si alguna cuenta en un host específico (10.0.0.5
) tiene contraseñas vacías o predeterminadas (donde la contraseña coincide con el nombre de usuario), puede usar:
Este comando le ordena a Medusa que:
Apunte al host en
10.0.0.5
.Utilice los nombres de usuario de
usernames.txt
.Realice comprobaciones adicionales de contraseñas vacías (
-e n
) y contraseñas que coincidan con el nombre de usuario (-e s
).Utilice el módulo de servicio apropiado (reemplácelo
service_name
con el nombre del módulo correcto).
Medusa probará cada nombre de usuario con una contraseña vacía y luego con la contraseña que coincida con el nombre de usuario, revelando potencialmente cuentas con configuraciones débiles o predeterminadas.
Última actualización
¿Te fue útil?