ΑρχικήHow ToMedusa: Πως να χρησιμοποιήσετε τον password cracker

Medusa: Πως να χρησιμοποιήσετε τον password cracker

Οι κωδικοί πρόσβασης αποτελούν πολλές φορές το πιο αδύναμο κρίκο σε ένα σύστημα και για αυτό το λόγο συνεχίζουμε την περιήγηση στα εργαλεία που ανήκουν στην κατηγορία των password crackers. Αυτή τη φορά θα μελετήσουμε το Medusa password cracker, ένα αρκετά γνωστό open source εργαλείο.

Medusa password cracker

Πρόκειται για ένα εργαλείο το οποίο μπορεί να λειτουργήσει με μεγάλη ταχύτητα σαν brute-forcer στοιχείων σύνδεσης σε ένα σύστημα. Όπως έχουμε εξηγήσει και σε παλαιότερα άρθρα brute force (ή αλλιώς επίθεση ωμής βίας) χαρακτηρίζουμε την εξαντλητική δοκιμή πιθανών κλειδιών που παράγουν ένα κρυπτογράφημα, ώστε να αποκαλυφθεί το αρχικό μήνυμα. Ο σκοπός του Μedusa είναι η υποστήριξη όσο δυνατόν περισσότερων πρωτοκόλλων και υπηρεσιών που υποστηρίζουν την απομακρυσμένη αυθεντικοποίηση (π.χ. ssh). Μερικά από τα πλεονεκτήματα της συγκεκριμένης εφαρμογής συνοψίζονται παρακάτω:

  • Παράλληλη χρήση: Το brute forcing μπορεί να πραγματοποιηθεί απέναντι σε πολλαπλούς hosts, χρήστες ή κωδικούς πρόσβασης ταυτόχρονα.
  • Eυελιξία: Οι πληροφορίες που αφορούν το στόχο (host/χρήστης/κωδικός πρόσβασης) μπορούν να προσδιοριστούν με διαφορετικούς τρόπους.
  • Υποστήριξη πολλαπλών πρωτοκόλλων: Το Μedusa μπορεί να υποστηρίξει διαφορετικές υπηρεσίες και πρωτόκολλα (π.χ. SMP, HTTP, POP3, MS-SQL, SSHv2 κ.α.)

Πώς να το εγκαταστήσετε

To Μedusa προσφέρεται για λειτουργικά συστήματα Linux, Windows και MacOS. Στην πολύ γνωστή έκδοση λειτουργικού συστήματος για penetration tester, Kali Linux θα βρείτε το Μedusa προ-εγκατεστημένο.

Linux

Αρχικά θα πρέπει να ανανεώσετε τα repositories σας και να εγκαταστήσετε τα dependencies που χρειάζονται:

sudo apt-get update && sudo apt-get install unrar-free git-core openssl mediainfo

Στη συνέχεια, θα πρέπει να εγκαταστήσετε την έκδοση 3 της Python (απαραίτητη από την έκδοση v0.3.0 του Μedusa και έπειτα) χρησιμοποιώντας τις κατάλληλες εντολές ανάλογα με την έκδοση του λειτουργικού σας συστήματος.

Στη συνέχεια, δημιουργήστε ένα γκρουπ και ένα χρήστη με το όνομα medusa. Αυτό χρειάζεται για να εξασφαλίσουμε ότι το εργαλείο δεν θα επηρεάσει την ασφάλεια του υπολογιστή μας και θα τρέχει απομονωμένο:

sudo addgroup –system medusa
sudo adduser –disabled-password –system –home /var/lib/medusa –gecos “Μedusa” –ingroup medusa medusa

Έπειτα κλωνοποιήστε το Git repo για το Μedusa:

sudo mkdir /opt/medusa && sudo chown medusa:medusa /opt/medusa
sudo git clone https://github.com/pymedusa/Medusa.git /opt/medusa
sudo chown -R medusa:medusa /opt/medusa

 Για συστήματα SysVinit, θα πρέπει να αντιγράψετε το service init.d:

Για Ubuntu:

sudo cp -v /opt/medusa/runscripts/init.ubuntu /etc/init.d/medusa

Για Debian:

sudo cp -v /opt/medusa/runscripts/init.debian /etc/init.d/medusa

Βεβαιωθείτε ότι το νέο service έχει τα κατάλληλα δικαιώματα:

sudo chown root:root /etc/init.d/medusa
sudo chmod 644 /etc/init.d/medusa

Ανανεώστε και ξεκινήστε το καινούριο service:

sudo update-rc.d medusa defaults
sudo service medusa start

Για συστήματα Upstart, θα πρέπει να αντιγράψετε το service init.d:

sudo cp -v /opt/medusa/runscripts/init.upstart /etc/init/medusa.conf

Βεβαιωθείτε ότι το νέο service έχει τα κατάλληλα δικαιώματα:

sudo chown root:root /etc/init/medusa.conf

sudo chmod 644 /etc/init/medusa.conf

Ανανεώστε και ξεκινήστε το καινούριο service:

sudo service medusa start

      Για συστήματα Systemd, θα πρέπει να αντιγράψετε το service init.d:

sudo cp -v /opt/medusa/runscripts/init.systemd /etc/systemd/system/medusa.service

Βεβαιωθείτε ότι το νέο service έχει τα κατάλληλα δικαιώματα:

sudo chown root:root /etc/systemd/system/medusa.service

sudo chmod 644 /etc/systemd/system/medusa.service

Ξεκινήσετε και ελέγξτε το status του καινούριου service:

sudo systemctl enable medusa

sudo systemctl start medusa

sudo systemctl status medusa

Κάντε το Μedusa να τρέχει κατά το startup (προαιρετικό):

sudo systemctl enable medusa.service

Για να βεβαιωθείτε ότι όλα πήγαν καλά ελέγξτε αν το Μedusa είναι προσβάσιμο στη διεύθυνση: http://localhost:8081 

Windows

Λόγω του ότι η εγκατάσταση του εργαλείου σε Windows περιβάλλον μπορεί να είναι ιδιαίτερα περίπλοκη για αρκετούς χρήστες, οι δημιουργοί του Μedusa δημιούργησαν έναν Windows installer το οποίο μπορεί να κατεβάσει όλα τα απαραίτητα αρχεία και να προχωρήσει με την εγκατάστασή τους. Μπορεί επίσης να δημιουργήσει ένα service έτσι ώστε το Μedusa να ξεκινάει αυτόματα με την εκκίνηση των Windows.

Αρχικά θα πρέπει να επισκεφθείτε την επίσημη Github σελίδα του εργαλείου και να κατεβάσετε την τελευταία διαθέσιμη έκδοση.

Στο φάκελο που μόλις έχετε κατεβάσει εντοπίστε τον installer και εκτελέστε τον. Αυτό που θα δείτε στην οθόνη σας μοιάζει με την παρακάτω εικόνα.

Medusa

Για να προχωρήσετε την εγκατάσταση πατήστε την επιλογή Next και στη συνέχεια διαλέξτε το φάκελο εγκατάστασης. Επιλέξτε πάλι την επιλογή Next για να προχωρήσετε. Το επόμενο παράθυρο θα σας ρωτήσει αν επιθυμείτε να δημιουργηθεί συντόμευση για το εργαλείο στο αρχικό μενού.

Το αμέσως επόμενο παράθυρο θα σας ρωτήσει για την πόρτα στην οποία θα θέλετε να τρέχει το Μedusa. Συνίσταται να αφήσετε την default τιμή ως έχει και να προχωρήσετε στην εγκατάσταση πατώντας το κουμπί Next.

Στο επόμενο παράθυρο θα ερωτηθείτε για το αν επιθυμείτε να δημιουργήσετε συντόμευση του εργαλείου στην επιφάνεια εργασίας σας.

Το προτελευταίο παράθυρο της εγκατάστασης θα σας δείξει μία σύνοψη των ρυθμίσεων που έχετε επιλέξει και τα dependencies τα οποία πρόκειται να εγκατασταθούν μαζί με το Μedusa. Αν επιλέξετε το κουμπί Install τα απαραίτητα αρχεία θα αρχίσουν να κατεβαίνουν και στη συνέχεια η εγκατάσταση θα ολοκληρωθεί αφού πατήσετε το κουμπί Finish.

Αν όλα πήγαν καλά μπορείτε να ανοίξετε οποιονδήποτε browser και να επισκεφτείτε το web interface του Μedusa στη διεύθυνση: http://localhost:8081.

Πως να το χρησιμοποιήσετε

Για να δείτε όλες τις διαθέσιμες επιλογές του εργαλείου και την αντίστοιχη περιγραφή τους ανοίξτε ένα terminal και πληκτρολογήστε Μedusa.

root@kali-:~# medusa
Medusa v2.2 [http://www.foofus.net] (C) JoMo-Kun / Foofus Networks <jmk@foofus.net>

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.
  -c [NUM]     : Time to wait in usec to verify socket is available (default 500 usec).
  -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
  -Z [TEXT]    : Resume scan based on map of previous scan

Παραδείγματα των διαφορετικών εντολών που μπορείτε να τρέξετε, ανάλογα το πρωτόκολλο επίθεσης, μπορείτε να βρείτε παρακάτω:

Εύρεση κωδικού πρόσβασης για συγκεκριμένο username

Όπως ήδη έχουμε αναφέρει το Μedusa είναι ένα πολύ γρήγορο εργαλείο, ικανό να δουλεύει μαζί με διαφορετικά πρωτόκολλα.

Παραδείγματος χάρη, αν θέλετε να «σπάσετε» τον ssh κωδικό πρόσβασης για ένα συγκεκριμένο username, μπορείτε να χρησιμοποιήσετε την τεχνική της επίθεσης λεξικού (dictionary attack). Η παράμετρος -u χρησιμοποιείται για να δηλωθεί συγκεκριμένο username και η -P για να δηλωθεί το dictionary αρχείο:

 medusa -h 192.168.1.108 -u stormi -P pass.txt -M ssh

Εύρεση username για ένα συγκεκριμένο password

Στην ανάποδη περίπτωση, όπου στη κατοχή σας έχετε τον κωδικό πρόσβασης και θέλετε να ελέγξετε σε ποιο username (για το ssh service ή κάποιο άλλο) αντιστοιχεί μπορείτε να χρησιμοποιήσετε την ίδια τεχνική – dictionary attack:

medusa -h 192.168.1.108 -U user.txt -p 123 -M ssh

Εύρεση username και αντίστοιχου κωδικού πρόσβασης

Συνδυαστικά, αν θέλετε να βρείτε username και password (για το ssh service ή κάποιο άλλο) μπορείτε να τρέξετε το παρακάτω, πάλι με την τεχνική dictionary attack. Η παράμετρος -U ενεργοποιεί το dictionary mode για πιθανά username και η -P για πιθανούς κωδικούς πρόσβασης.

medusa -h 192.168.1.108 -U user.txt -P pass.txt -M ssh

Αποθήκευση αποτελέσματος στο δίσκο

Για λόγους συντήρησης και καλύτερης ανάγνωσης μπορείτε να εγγράψετε τα αποτελέσματα των Μedusa εντολών σε αρχείο. Για το λόγο αυτό χρησιμοποιήστε τη παράμετρο και στη συνέχεια τον επιθυμητό τίτλο του αρχείου:

medusa -h 192.168.1.108 -U user.txt -P pass.txt -M ssh -O log.txt

Συνεχίζοντας την επίθεση

Πολλές φορές μια επίθεση μπορεί να σταματά ή να ακυρώνεται καταλάθος, οπότε χρησιμοποιώντας τη παράμετρο μπορείτε να συνεχίσετε την επίθεση τρέχοντας την τελευταία αποτυχημένη εντολή αντί να ξεκινήσετε από την αρχή:

medusa -h 192.168.1.108 -U user.txt -P pass.txt -M ssh -Z h1u2u3.

 Επίθεση σε συγκεκριμένη πόρτα

Οι network admins πολλές φορές αλλάζουν το νούμερο της πόρτας ενός service σε ένα άλλο. Στις προηγούμενες περιπτώσεις, όπου εξετάσαμε το ssh service, το Μedusa έτρεξε την επίθεση για την πόρτα 22, την default πόρτα του ssh.

Παρόλα αυτά, χρησιμοποιώντας την παράμετρο -n μπορείτε να τρέξετε την επίθεση επιλέγοντας εσείς το νούμερο της πόρτας που θέλετε να ελέγξετε, και όχι τη default πόρτα του service.

Έστω λοιπόν ότι σκανάροντας ένα συγκεκριμένο δίκτυο βρήκαμε ότι η πόρτα στην οποία τρέχει το ssh είναι η 2222 και όχι η 22. Για το λόγο αυτό θα πρέπει να τρέξουμε την παρακάτω εντολή

 

Πως σας φάνηκε το Μedusa; Θα το προτιμούσατε;

Stormi
Stormi
Here’s to the crazy ones, the misfits, the rebels, the troublemakers...

Εγγραφή στο Newsletter

* indicates required

FOLLOW US

LIVE NEWS