Page cover

🔑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:

afsh4ck@kali$ medusa -h

Instalar Medusa en un sistema Linux es sencillo.

afsh4ck@kali$ sudo apt-get -y update
afsh4ck@kali$ sudo apt-get -y install medusa

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.

afsh4ck@kali$ medusa [target_options] [credential_options] -M module [module_options]

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.txty 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:

afsh4ck@kali$ medusa -h 192.168.0.100 -U usernames.txt -P passwords.txt -M ssh 

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:

afsh4ck@kali$ medusa -H web_servers.txt -U usernames.txt -P passwords.txt -M http -m GET 

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 el GETmé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:

afsh4ck@kali$ medusa -h 10.0.0.5 -U usernames.txt -e ns -M service_name

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?