Σίγουρα έχετε ακούσει για το John the Ripper (JτR), ένα από τα πιο γνωστά εργαλεία στο χώρο του ethical hacking που συνδυάζει πολλά διαφορετικά προγράμματα με σκοπό το password cracking χρησιμοποιώντας τεχνικές όπως brute force ή επιθέσεις λεξικού (dictionary attack).
Η επίθεση brute-force (επίθεση ωμής βίας) αναφέρεται στην εξαντλητική δοκιμή πιθανών κλειδιών που παράγουν ένα κρυπτογράφημα, ώστε να αποκαλυφθεί το αρχικό μήνυμα. Μια επίθεση λεξικού (dictionary attack) επιχειρεί να δοκιμάσει “κάθε λέξη στο λεξικό” ως πιθανό κωδικό πρόσβασης για ένα κρυπτογραφημένο μήνυμα. Οι επιθέσεις αυτές συνήθως χρησιμοποιούν κάποιο λεξικό/λεξικά στα οποία περιέχονται τα συνθηματικά που επιλέγουν πιο συχνά οι χρήστες, καθώς και πλήθος λέξεων πολλών αλφάβητων. Ένα dictionary attack είναι γενικά αποδοτικότερο από μια brute-force επίθεση επειδή οι χρήστες επιλέγουν αδύναμους κωδικούς πρόσβασης.
Το JtR μπορεί να υποστηρίξει αρκετές διαφορετικές τεχνολογίες κρυπτογράφησης σε περιβάλλον Unix (άρα και Mac) και Windows. Μπορεί και ανιχνεύει το τύπο της συνάρτησης κατακερματισμού (hash function) και συγκρίνει τα hashed δεδομένα με ένα τεράστιο plain text αρχείο το οποίο περιέχει δημοφιλείς κωδικούς πρόσβασης. Οι κωδικοί αυτοί “χασάρονται” από το JtR το οποίο σταματάει τη διεργασία όταν υπάρχει ταύτιση.
Το συγκεκριμένο ethical hacking εργαλείο περιέχει τις δικές του λίστες πολύ γνωστών κωδικών πρόσβασης σε πάνω από 20 διαφορετικές γλώσσες. Οι συγκεκριμένες λίστες παρέχουν στο JtR χιλιάδες διαφορετικούς κωδικούς πρόσβασης/τιμές για τους οποίους μπορεί να δημιουργήσει την αντίστοιχη hash τιμή και σαν αποτέλεσμα να βρει τον κωδικό πρόσβασης του θύματος. Επειδή οι περισσότεροι άνθρωποι χρησιμοποιούν εύκολους σε απομνημόνευση κωδικούς πρόσβασης, οι τεχνικές που χρησιμοποιεί το JtR είναι αρκετά αποτελεσματικές.
Γιατί να το χρησιμοποιήσετε;
Όπως έχουμε ήδη αναφέρει, το John the Ripper είναι ένας password cracker ο οποίος μπορεί να βοηθήσει στον εντοπισμό αδύναμων κωδικών πρόσβασης και αδύναμων πολιτικών κωδικών πρόσβασης
Οι διαφορετικές τεχνολογίες τις οποίες είναι ικανό να ανιχνεύσει είναι:
- UNIX crypt(3)
- DES-based
- “Bigcrypt”
- BSDI extended DES-based
- FreeBSD MD5-based (σε Linux και Cisco IOS)
- OpenBSD Blowfish-based
- Kerberos/AFS
- Windows LM (DES-based)
- DES-based ταξινομητές (tripcodes)
- SHA-crypt hashes (νεότερες εκδόσεις Fedora και Ubuntu)
- SHA-crypt και SUNMD5 hashes (Solaris)
Στην παραπάνω λίστα, μπορούν να προστεθούν και άλλες τεχνολογίες καθώς το JtR είναι open source και οι contributors μπορούν να γράψουν επεκτάσεις υποστήριξης.
Πως να κατεβάσετε το John the Ripper
Το εργαλείο είναι open source, άρα μπορείτε να κατεβάσετε και να κάνετε compile τον κώδικα μόνοι σας, να κατεβάσετε τα εκτελέσιμα binaries ή να το βρείτε προ-εγκατεστημένο σε κάποιο package για penetration testing.
To επίσημο website του John the Ripper βρίσκεται στο Openwall. Από εκεί μπορείτε να κατεβάσετε τον πηγαίο κώδικα και τα binaries και στη συνέχεια να συνεισφέρετε στο project μέσω Github.
Unix-based
$ cd ~/src $ git clone git://github.com/magnumripper/JohnTheRipper -b bleeding-jumbo john $ cd ~/src/john/src $ ./configure && make -s clean && make -sj4 |
Windows
Οι χρήστες των Windows μπορούν να βρουν το πλήρες documentation με τις αντίστοιχες οδηγίες εγκατάστασης στη σελίδα Wiki του John the Ripper.
Τέλος, μπορείτε να το βρείτε προ-εγκατεστημένο στη πολύ γνωστή διανομή λειτουργικού συστήματος για penetration testing, Kali Linux σαν μέρος των metapackages για password cracking.
Πως να το χρησιμοποιήσετε
Παρακάτω θα δείτε βασικές εντολές, οι οποίες θα σας βοηθήσουν να εξοικειωθείτε περισσότερο με το JtR. Για αρχή, αυτό που χρειάζεστε είναι ένα αρχείο που περιέχει μια hashed τιμή προς αποκρυπτογράφηση.
Σε περίπτωση που θέλετε να ελέγξετε όλες τις διαθέσιμες εντολές του εργαλείου, μπορείτε να τρέξετε το παρακάτω:
.\john.exe |
Τo JtR μπορεί να λειτουργήσει σε 3 διαφορετικά modes:
- Signle crack mode
- Wordlist mode
- Incremental
To πρώτο αποτελεί τη πιο γρήγορη επιλογή σε περίπτωση που έχετε στη κατοχή σας ολόκληρο το αρχείο προς αποκρυπτογράφηση. Το wordlist mode συγκρίνει τη κρυπτογραφημένη/hashed τιμή με μια λίστα με πιθανά password matches. Αντίστοιχα, το incremental mode αποτελεί το πιο ισχυρό mode από τα 3 αφού δοκιμάζει όλους τους πιθανούς συνδυασμούς με σκοπό να βρει το σωστό κωδικό πρόσβασης (brute force).
Η παρακάτω εντολή λέει στο JtR να τρέξει σε single crack mode, στη συνέχεια, σε wordlist mode συγκρίνοντας το hashed αρχείο με default wordlists που περιέχουν πιθανούς κωδικούς πρόσβασης και, στη συνέχεια, σε incremental mode.
.\john.exe passwordfile |
Μπορείτε να κατεβάσετε διαφορετικές wordlists από το internet αλλά και να δημιουργήσετε τις δικές σας. Χρησιμοποιείστε τις λίστες σας με το JtR τρέχοντας τη παρακάτω εντολή:
.\john.exe passwordfile -wordlist=”wordlist.txt” |
Επιλέξτε το επιθυμητό mode, χρησιμοποιώντας το σαν παράμετρο:
.\john.exe –single passwordfile
.\john.exe –incremental passwordfile |
Για να δείτε τη λίστα των αποκρυπτογραφημένων κωδικών πρόσβασης, χρησιμοποιείστε τη παράμετρο -show:
.\john.exe -show passwordfile |
Αν η λίστα των “σπασμένων” κωδικών πρόσβασης είναι μεγάλη, μπορείτε να χρησιμοποιήσετε τις αντίστοιχες παραμέτρους για να την φιλτράρετε. Παραδείγματος χάρη, για να ελέγξετε για κωδικούς πρόσβασης root χρηστών, χρησιμοποιήστε τη παράμετρο -users:
.\john.exe –show –users=0 passwordfile |
Πως σας φάνηκε το John the Ripper; Περιμένουμε τα σχόλια σας για ένα από τα πιο γνωστά εργαλεία στο χώρο του ethical hacking…