[Medusa] Ataque de fuerza bruta con diccionario
Seguramente muchos conocen hydra: una aplicacion para atacar con fuerza bruta usando diccionarios, a diferentes servicios como: ssh, ftp, mysql entre otros, sin embargo hydra no se volvió actualizar, su ultima versión fue lanzada en el 2006 y aunque todavía funciona muy bien, tiene muchos problemas en la instalación, debido a las dependencias y sus versiones.
No obstante, existe una aplicacion llamada medusa que es muy similar ( no exactamente igual) a hydra, la cual nos permite crackear por diccionario de forma rápida, masiva y paralela los siguientes servicios:
- AFP
- CVS
- FTP
- HTTP
- IMAP
- MS-SQL
- MySQL
- NetWare NCP
- NNTP
- PcAnywhere
- POP3
- PostgreSQL
- REXEC
- RLOGIN
- RSH
- SMBNT
- SMTP-AUTH
- SMTP-VRFY
- SNMP
- SSHv2
- Subversion (SVN)
- Telnet
- VMware autenticación Daemon (vmauthd)
- VNC
- Genérico Wrapper
- Web Form
- Velocidad
- Estabilidad
- Organizacion del código, para comprenderlo facil
- diversidad de servicios (como vieron anteriormente)
Instalación de Medusa
Antes de instalar medusa, debemos revisar que se cumplan las siguientes dependencias:- OpenSSL
- LibSSH2
- NCPFS
- Libpq
- Subversion
- afpfs-ng
apt-get install medusa
Para los demás usuarios descargan las fuentes desde aca, y compilan:
./configure
make
make install
¿Como crackear password con diccionarios usando medusa ?
Lo primero que debemos hacer es ver los módulos disponibles, los módulos son los servicios los cuales podemos atacar, para visualizar los módulos:medusa -d
Después de estar seguros de que tenemos el modulo adecuado al servicio que deseamos atacar, procedemos a lanzar el ataque. Medusa posee una gran cantidad de parámetros (ojala se tomaran el tiempo para leer el man con detenimiento). Los parámetros mas importantes son:
-h -> el host víctima
-H -> si tenemos un archivo txt con una lista de hosts
-u -> el usuario al cual deseamos hacerle el cracking
-U -> un archivo txt con la lista de posibles usuarios (muy útil si no sabemos que usuarios existen en el sistema)
-P -> Ubicación del diccionario
-O -> Crea un archivo log
- e ns -> Verifica el password vacio o que ambos datos sean lo mismo
-M -> El modulo que deseamos emplear (sin la extension .mod)
-n -> por si el servicio esta corriendo en otro puerto diferente al default
-s -> Habilita ssl
-f -> detiene el ataque en el instante de encontrar un password valido
-b -> suprime los banners
-v -> modo verbose (mas informacion level de 0 a 6 siendo el 6 mas alto)
Ahora practiquemos un poco:
medusa -h 127.0.0.1 -u rincon -P /diccionario.txt -M mysql -L -f -b -v 6
Como pueden ver me estoy atacando yo mismo obviamente me he asegurado que el password se encuentra en el diccionario, el resultado es sorprendente tardo muy poco (10 segundos aproximadamente), el tiempo depende de varios factores como el tamaño del diccionarios y la ubicacion del password encontrado, ya que se va a demorar mucho menos si el password esta al inicio del diccionario de 36000 palabras.
Ahora muchos diran que no es lo mismo hacer un ataque de fuerza bruta con diccionario de forma local que de forma remota y tienen mucha razon, sin embargo hicimos la prueba de forma remota y los resultados fueron muy aceptables, se demoro 6 minutos en encontrar el password en un diccionario de 500 palabras (con esos datos ya pueden hacer la simple regla de 3) atacando el ssh
Algunos inconvenientes
Todo no es color de rosa, existen algunos inconvenientes que debemos tener en cuenta antes de realizar un ataque de este tipo:- No hay total certeza de encontrar el password, sin embargo la efectividad de un ataque con diccionario es directamente proporcional al tamaño del diccionario, es decir, entre mas grande sea el diccionario mayor sera la probabilidad de encontrar la contraseña.
- Otro inconveniente, consiste en que algunos sysadmin inteligentes restringen el numero de intentos de autenticacion a un numero no mayor a 3, asi que si nos topamos con un servidor serio, no podremos aplicar el ataque por fuerza bruta.
- Cuando nos encontramos un servidor “vulnerable” a un ataque de fuerza bruta con diccionario, debemos tener muchisimo cuidado, ya que un ataque de esta naturaleza hace demasiado “RUIDO” es decir, todos los intentos de conexion quedaran guardados en los logs del servidor, por eso es pertinente usar un proxy para hacer el ataque, o en su defecto borrar los logs, inmediatamente despues de entrar al server.