miércoles, 26 de agosto de 2015

Ataque por fuerza bruta con Medusa

¿Que es Medusa?

Medusa es una herramienta para realizar ataques por fuerza bruta desarrollada por JoMo-Kun cuyo objetivo es conseguir acceso a sistemas remotos probando pares de usuarios/contraseñas de manera eficaz (login cracker). Las características más importantes de medusa son:
  • Posee un diseño modular lo que nos permite modificar el módulo de un servicio concreto sin tener que modificar el core de medusa. Además esto se realiza de una manera muy cómoda mediante los archivos .mod que son absolutamente independientes entre si, pudiendo ampliar por tanto cualquier funcionalidad que Medusa traiga de serie.
  • Permite una paralelización absoluta de los ataques pudiendo realizar ataques a múltiples host, usuarios o contraseñas al mismo tiempo sin restricciones.
  • Tiene una entrada de parámetros muy flexible, pudiendo realizar la entrada de hosts, usuarios, contraseñas y opciones de múltiples maneras.
  • Nos permite auditar la seguridad de los usuarios/contraseñas de acceso de los siguientes servicios: AFP, CVS, FTP, HTTP, IMAP, MS-SQL, MySQL, NetWare NCP, NNTP, PcAnywhere, POP3, PostgreSQL, RDP, REXEC, RLOGIN, RSH, SMBNT, SMTP, SMTP-VRFY, SNMP, SSH, SVN, Telnet, vmauthd, VNC, Genérico Wrapper y Web Form.

Instalar Medusa

Lo primero que haremos es descargarnos Medusa con el comando wget.
root@metempsicosis:~# wget https://github.com/jmk-foofus/medusa/releases/download/2.2_rc2/medusa-2.2_rc2.tar.gz


Una vez descargado tendremos que extraer el archivo lanzando lo siguiente:
rencinar@metempsicosis:~$ gunzip medusa-2.2_rc2.tar.gz
rencinar@metempsicosis:~$ tar -xvf medusa-2.2_rc2.tar

Ahora, entramos en el directorio medusa-2.2_rc2 y lanzamos el comando ./configure

rencinar@metempsicosis:~$ cd medusa-2.2_rc2/
rencinar@metempsicosis:~/medusa-2.2_rc2$ ./configure


Como se puede comprobar tanto en la ejecución del comando ./configure como en el cuadro resumen final en mi caso faltaba, entre otras, la librería lssh2. Lo que tenemos que hacer es ir instalando las librerías en función de las que nos falten aunque, si queremos realizar un ataque específico, solo es necesario tener instaladas las librerías de los módulos implicados. De esta manera yo no necesitaría instalar la librería lssh2 para realizar por ejemplo ataques a postgreSQL o a servidores SMTP.
Para instalar la librería lssh2 nos logamos con un usuario que tenga permisos de root y lanzamos lo siguiente:

root@metempsicosis:/home/rencinar/medusa-2.2_rc2# apt-get install libssh2-1-dev


Tras instalarla y volver a lanzar el comando ./configure comprobamos en el cuadro resumen que ya está habilitado el módulo para ataques al servicio SSH.

rencinar@metempsicosis:~/medusa-2.2_rc2$ ./configure


Como yo no voy a realizar ataques a RDP ni a AFP no necesito instalarlas. En general para instalar la gran mayoría de las librerías que utiliza Medusa lanzaremos el comando:

root@metempsicosis:/home/rencinar/medusa-2.2_rc2# apt-get install libssl-dev libssh-dev libidn11-dev libpcre3-dev libgtk2.0-dev libmysqlclient-dev libpq-dev libsvn-dev firebird2.1-dev libssh2-1-dev build-essential libpq5 libssh2-1 freerdp libfreerdp-dev libgnutls28-dev libgnutlsxx28

Tras esto lanzamos los comandos make y make install con un usuario que tenga permisos de root para realizar la instalación.

root@metempsicosis:/home/rencinar/medusa-2.2_rc2# make
root@metempsicosis:/home/rencinar/medusa-2.2_rc2# make install
Tras esto tendremos correctamente instalado medusa.

Ejemplos de uso

Ejemplo medusa -d
Este comando nos dará el conjunto de módulos que tenemos enabled y su versión (los .mod se almacenan por defecto en el directorio /usr/local/lib/medusa/modules)


Ejemplo medusa -M pop3 -q
En este caso con la opción -M le indicamos a Medusa que a continuación viene el módulo a usar (en este caso pop3) y con el -q le indicamos que nos muestre la información de ese módulo.



Ejemplo  medusa -h 10.0.100.34 -u root -P pass.txt -M ssh
En este ejemplo realizamos un ataque por fuerza bruta al servicio ssh del servidor 10.0.100.34 para el usuario root y con el diccionario pass.txt.



Ejemplo  medusa -h 10.0.10.5 -u root -P pass.txt -M ftp -t 10
En este ejemplo realizamos un ataque por fuerza bruta al servicio ftp del servidor 10.0.10.5 para el usuario root y con el diccionario pass.txt. Con la opción -t 10 le indicamos a Medusa que vamos a realizar 10 intentos de login de manera concurrente.

Ejemplo  medusa -h host.txt -u rencinar-P pass.txt -M telnet -t 10 -T 2
En este ejemplo realizamos un ataque por fuerza bruta al servicio telnet del listado de servidores host.txt para el usuario rencinar y con el diccionario pass.txt. Con la opción -t 10 le indicamos a Medusa que vamos a realizar 10 intentos de login de manera concurrente y con -T 2 le indicamos que realice tests en 2 host concurrentes. De esta manera se estarán probando a la vez 10 intentos de login para 2 servidores de la lista así que tendremos que tener en cuenta que estaremos abriendo 10 (intentos de login concurrente) x2 (servidores simultáneos)= 20 conexiones simultáneas (hay que tener cuidado con esto porque aunque el test irá mas rápido incrementamos la probabilidad de tener falsos positivos y de ser detectados).

Ejemplo medusa -h 10.0.10.7 -u  users.txt -P pass.txt -M postgres -n 5432 -t 10 -L
En este ejemplo realizamos un ataque por fuerza bruta al servicio postgres en el puerto 5432 del servidor 10.0.10.7 con el listado de usuarios users.txt y con el diccionario pass.txt. Al indicarle la opción -L nos abrirá un thread por cada usuario de la lista users.txt y por cada usuario/thread lanzará 10 intentos de login concurrentes (-t 10). Al igual que en el caso anterior deberemos tener cuidado para no tener falsos positivos y no hacer ruido.

Ejemplo medusa -h 10.10.0.1-u admin -P diccionario.txt -M http -m DIR:/login
En este ejemplo realizamos un ataque por fuerza bruta a la web de login situado en http://10.10.0.1/login del servidor 10.10.0.1 con el usuario admin y con el diccionario pass.txt.

Conclusión

Mi conclusión es que Medusa tiene una mayor potencia y mejor gestión que THC Hydra a la hora de lanzar ataques concurrentes y gestionar threads sin embargo THC Hydra tiene mayor potencia en ataques http y el número de falsos positivos en ataques agresivos es menor que con Medusa. Por lo demás son 2 herramientas muy similares que deben ser complementadas con Crunch para generar los diccionarios y con Nmap para ver que servicios tiene cada máquina con el fin de auditarla.

No hay comentarios:

Publicar un comentario