Medusa
Medusa, una herramienta destacada en el arsenal de ciberseguridad, está diseñada para ser rápida, altamente paralela y modular en ataques de fuerza bruta para inicios de sesión. Su objetivo principal es soportar una amplia variedad de servicios que permiten autenticación remota, ayudando a los penetration testers y profesionales de la seguridad a evaluar la resistencia de los sistemas de inicio de sesión frente a ataques de fuerza bruta.
Installation
Medusa a menudo viene preinstalada en las distribuciones populares de penetration testing. Puedes verificar su presencia ejecutando:
medusa -h
Instalar Medusa en un sistema Linux es sencillo.
sudo apt-get -y update
sudo apt-get -y install medusa
Command Syntax and Parameter Table
La interfaz de línea de comandos de Medusa es directa. Permite a los usuarios especificar hosts, usuarios, contraseñas y módulos con varias opciones para ajustar el proceso de ataque.
medusa [target_options] [credential_options] -M module [module_options]
Parámetro | Explicación | Ejemplo de Uso |
---|---|---|
-h HOST o -H FILE |
Opciones de objetivo: Especifica un solo nombre de host o dirección IP (-h ) o un archivo con una lista de objetivos (-H ). |
medusa -h 192.168.1.10 ... o medusa -H targets.txt ... |
-u USERNAME o -U FILE |
Opciones de nombre de usuario: Proporciona un solo nombre de usuario (-u ) o un archivo con una lista de nombres de usuario (-U ). |
medusa -u admin ... o medusa -U usernames.txt ... |
-p PASSWORD o -P FILE |
Opciones de contraseña: Especifica una sola contraseña (-p ) o un archivo con una lista de contraseñas (-P ). |
medusa -p password123 ... o medusa -P passwords.txt ... |
-M MODULE |
Módulo: Define el módulo específico a utilizar para el ataque (e.g., ssh , ftp , http ). |
medusa -M ssh ... |
-m "MODULE_OPTION" |
Opciones de módulo: Proporciona parámetros adicionales requeridos por el módulo elegido, encerrados 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: Define el número de intentos de inicio de sesión paralelos, acelerando potencialmente 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 ... o medusa -F ... |
-n PORT |
Puerto: Especifica un puerto no predeterminado para el servicio objetivo. | medusa -n 2222 ... |
-v LEVEL |
Salida detallada: Muestra información detallada sobre el progreso del ataque. Cuanto mayor sea el LEVEL (hasta 6), más detallada será la salida. |
medusa -v 4 ... |
Medusa Modules
Cada módulo en Medusa está diseñado para interactuar con mecanismos de autenticación específicos, permitiendo enviar solicitudes apropiadas e interpretar las respuestas para ataques exitosos. A continuación, se muestra una tabla de los módulos más utilizados:
Módulo Medusa | Servicio/Protocolo | Descripción | Ejemplo de Uso |
---|---|---|---|
FTP | File Transfer Protocol | Fuerza bruta en credenciales de inicio de sesión FTP, utilizado para transferencias de archivos en red. | medusa -M ftp -h 192.168.1.100 -u admin -P passwords.txt |
HTTP | Hypertext Transfer Protocol | Fuerza bruta en formularios de inicio de sesión de aplicaciones web sobre 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 | Internet Message Access Protocol | Fuerza bruta en inicios de sesión IMAP, utilizado para acceder a servidores de correo. | medusa -M imap -h mail.example.com -U users.txt -P passwords.txt |
MySQL | MySQL Database | Fuerza bruta en credenciales de bases de datos MySQL, comúnmente utilizadas en aplicaciones web. | medusa -M mysql -h 192.168.1.100 -u root -P passwords.txt |
POP3 | Post Office Protocol 3 | Fuerza bruta en inicios de sesión POP3, típicamente utilizado para recuperar correos electrónicos de un servidor. | medusa -M pop3 -h mail.example.com -U users.txt -P passwords.txt |
RDP | Remote Desktop Protocol | Fuerza bruta en inicios de sesión RDP, utilizado para acceso remoto a sistemas Windows. | medusa -M rdp -h 192.168.1.100 -u admin -P passwords.txt |
SSHv2 | Secure Shell (SSH) | Fuerza bruta en inicios de sesión SSH, utilizado para acceso remoto seguro. | medusa -M ssh -h 192.168.1.100 -u root -P passwords.txt |
Subversion (SVN) | Version Control System | Fuerza bruta en repositorios SVN para control de versiones. | medusa -M svn -h 192.168.1.100 -u admin -P passwords.txt |
Telnet | Telnet Protocol | Fuerza bruta en servicios Telnet para ejecución remota de comandos en sistemas antiguos. | medusa -M telnet -h 192.168.1.100 -u admin -P passwords.txt |
VNC | Virtual Network Computing | Fuerza bruta en credenciales de inicio de sesión VNC para acceso remoto al escritorio. | medusa -M vnc -h 192.168.1.100 -P passwords.txt |
Web Form | Formularios Web | Fuerza bruta en formularios de inicio de sesión de sitios web usando 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" |
Targeting an SSH Server
Imagina un escenario en el que necesitas probar la seguridad de un servidor SSH en 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, utiliza el siguiente comando de Medusa:
medusa -h 192.168.0.100 -U usernames.txt -P passwords.txt -M ssh
Este comando instruye a Medusa para:
- Apuntar al host en
192.168.0.100
. - Usar los nombres de usuario del archivo
usernames.txt
. - Probar las contraseñas listadas en el archivo
passwords.txt
. - Utilizar el módulo
ssh
para el ataque.
Medusa intentará sistemáticamente cada combinación de nombre de usuario y contraseña contra el servicio SSH para intentar obtener acceso no autorizado.
Targeting Multiple Web Servers with Basic HTTP Authentication
Supongamos que tienes una lista de servidores web que utilizan autenticación básica HTTP. Las direcciones de estos servidores están almacenadas en web_servers.txt
, y también tienes listas de nombres de usuario comunes y contraseñas en usernames.txt
y passwords.txt
, respectivamente. Para probar estos servidores de manera concurrente, ejecuta:
medusa -H web_servers.txt -U usernames.txt -P passwords.txt -M http -m GET
En este caso, Medusa:
- Iterará a través de la lista de servidores web en
web_servers.txt
. - Usará los nombres de usuario y contraseñas proporcionados.
- Utilizará el módulo
http
con el métodoGET
para intentar inicios de sesión.
Al ejecutar múltiples hilos, Medusa verifica eficientemente cada servidor en busca de credenciales débiles.
Testing for Empty or Default Passwords
Si deseas 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), puedes usar:
medusa -h 10.0.0.5 -U usernames.txt -e ns -M service_name
Este comando instruye a Medusa para:
- Apuntar al host en
10.0.0.5
. - Usar los nombres de usuario del archivo
usernames.txt
. - Realizar verificaciones adicionales para contraseñas vacías (
-e n
) y contraseñas que coincidan con el nombre de usuario (-e s
). - Usar el módulo de servicio apropiado (reemplazar
service_name
con elnombre 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, potencialmente revelando cuentas con configuraciones débiles o predeterminadas.