Σε αυτόν τον οδηγό, προσπαθώ να αναπτύξω τις ικανότητές μου στην πανάρχαια τέχνη του σπασίματος κωδικών πρόσβασης. Παρόλο που μπορεί να φαίνεται σαν μια απλή και ξεκάθαρη διαδικασία, όσοι από εσάς έχετε επιχειρήσει να σπάσετε κωδικούς πρόσβασης γνωρίζετε ότι υπάρχουν πολλές λεπτές ισορροπίες σε αυτή την τεχνική.
Σε πολλές από τις διαδικασίες σπασίματος κωδικών πρόσβασης, χρειάζεται να χρησιμοποιούμε μια λίστα λέξεων που ουσιαστικά θα διαβάζει χιλιάδες πιθανούς κωδικούς πρόσβασης ανά δευτερόλεπτο. Αυτό αναφέρεται συχνά ως επίθεση λεξικού (Dictionary Attack), παρόλο που δεν χρειάζεται να βασιζόμαστε αποκλειστικά σε λέξεις κάποιου λεξικού. Αυτές οι λίστες λέξεων μπορεί να έχουν οποιονδήποτε συνδυασμό χαρακτήρων και λέξεων σε μια προσπάθεια να σπάσουμε έναν σύνθετο κωδικό πρόσβασης offline.
Μερικές φορές μπορεί να έχουμε ενδείξεις για τον κωδικό πρόσβασης ή τα στοιχεία του κωδικού πρόσβασης που επιλέγει ο στόχος, τα οποία μπορεί να προέρχονται από τη γνώση μας για τον στόχο, π.χ. φίλη, γείτονας, φίλος κ.λ.π. Μπορεί να είναι το όνομά τους, τα ονόματα των παιδιών τους, το όνομα ενός κατοικίδιου ζώου, τα γενέθλιά τους ή η δουλειά τους. Μπορεί επίσης να γνωρίζουμε την πολιτική κωδικού πρόσβασης κάποιου οργανισμού (π.χ. τουλάχιστον 8 χαρακτήρες, κεφαλαία και πεζά γράμματα κ.λ.π.).
Σε αυτές τις περιπτώσεις, μπορεί να είμαστε σε θέση να δημιουργήσουμε μια προσαρμοσμένη λίστα λέξεων που να αντικατοπτρίζει τη γνώση μας για τον στόχο ή την πολιτική κωδικού πρόσβασης του εκάστοτε οργανισμού.
Το Kali Linux έχει ενσωματωμένο ένα εργαλείο που ονομάζεται “crunch” και μας επιτρέπει να δημιουργήσουμε μια προσαρμοσμένη λίστα λέξεων για την παραβίαση κωδικών πρόσβασης, την οποία μπορούμε να χρησιμοποιήσουμε με εργαλεία όπως τα Hashcat, Cain and Abel, John the Ripper, Aircrack-ng και άλλα. Αυτή η προσαρμοσμένη λίστα λέξεων μπορεί να μας γλιτώσει ώρες ή μέρες από την παραβίαση κωδικών πρόσβασης, αν μπορούμε να την φτιάξουμε σωστά.
Ας ξεκινήσουμε με το crunch και ας δημιουργήσουμε μερικές προσαρμοσμένες λίστες λέξεων για να σπάσουμε κωδικούς πρόσβασης με το crunch.
Table of Contents
Βήμα 1: Ξεκινήστε το Kali και ανοίξτε το Crunch
Ας ξεκινήσουμε ενεργοποιώντας το Kali και ανοίγοντας το crunch πηγαίνοντας στο Applications -> Kali Linux -> Password Attacks -> Offline Attacks -> crunch.
Αυτό θα ανοίξει την οθόνη crunch όπως φαίνεται παρακάτω.
Σε αντίθεση με πολλές άλλες εφαρμογές hacking, το crunch δεν μας παρέχει πολλές πληροφορίες στην αρχική του οθόνη. Πιστεύω ότι αυτό οφείλεται στο γεγονός ότι το crunch, αν και σχετικά απλό στην χρήση, έχει τόσες πολλές εξελιγμένες επιλογές που ο προγραμματιστής του έχει τοποθετήσει μεγάλο μέρος των πληροφοριών του στο man.
Βήμα 2: Η σύνταξη του Crunch
Η βασική σύνταξη για το crunch μοιάζει ως εξής:
kali > crunch <min> max<max> <characterset> -t <pattern> -o <output filename>
Τώρα, ας δούμε τι περιλαμβάνεται στην παραπάνω σύνταξη.
-
min = Το ελάχιστο μήκος του κωδικού πρόσβασης.
-
max = Το μέγιστο μήκος του κωδικού πρόσβασης.
-
characterset = Το σύνολο χαρακτήρων που θα χρησιμοποιηθεί για τη δημιουργία των κωδικών πρόσβασης.
-
-t <pattern> = Το καθορισμένο μοτίβο των παραγόμενων κωδικών πρόσβασης. Για παράδειγμα, αν γνωρίζατε ότι τα γενέθλια του στόχου ήταν 0728 (28 Ιουλίου) και υποψιαζόσασταν ότι χρησιμοποιούσε τα γενέθλιά του στον κωδικό πρόσβασής του (οι άνθρωποι το κάνουν συχνά), θα μπορούσατε να δημιουργήσετε μια λίστα κωδικών πρόσβασης που θα τελείωνε με 0728, δίνοντας στο crunch το μοτίβο @@@@@@@0728. Αυτή η λέξη θα δημιουργούσε κωδικούς πρόσβασης μέχρι 11 χαρακτήρες (7 μεταβλητούς και 4 σταθερούς) που θα τελείωναν όλοι με 0728.
-
-o <outputfile> = Αυτό είναι το output αρχείο που θα μας δώσει το crunch.
Βήμα 3: Το εγχειρίδιο του Crunch
Ας πάμε στις σελίδες man για το crunch πληκτρολογώντας:
kali > man crunch
Αυτό θα πρέπει να ανοίξει τις σελίδες εγχειριδίου για το crunch όπως αυτό παρακάτω. Οι προγραμματιστές του crunch έχουν γεμίσει αυτές τις σελίδες με πολλές πληροφορίες για το πώς να αξιοποιήσετε στο έπακρο το crunch.
Στην κορυφή βλέπουμε το switch -f. Αυτό μας επιτρέπει να επιλέξουμε το σύνολο χαρακτήρων που θέλουμε να χρησιμοποιήσουμε για τη δημιουργία της λίστας λέξεων. Η σύνταξη είναι η εξής:
-f /path/to/charset.lst <charactersetname>
Εδώ λέμε στο crunch πού βρίσκεται το αρχείο charset.lst με την πλήρη διαδρομή και στη συνέχεια επιλέγουμε ένα συγκεκριμένο σύνολο χαρακτήρων από τη λίστα αυτή. Στο Kali, το charset.lst βρίσκεται στη διεύθυνση:
/usr/share/rainbowcrack/charset.lst
Βήμα 4: Δημιουργήστε μερικές απλές Wordlists
Ας ξεκινήσουμε δημιουργώντας μερικές απλές λίστες λέξεων για την παραβίαση κωδικών πρόσβασης. Ας υποθέσουμε ότι γνωρίζουμε ότι η εταιρεία έχει κωδικούς πρόσβασης μεταξύ 4 και 8 χαρακτήρων. Μπορούμε να δημιουργήσουμε όλους τους πιθανούς συνδυασμούς με το crunch πληκτρολογώντας:
kali > crunch 4 8
Όπου ο πρώτος αριθμός (4) είναι το μικρότερο μήκος λέξης και ο δεύτερος (8) είναι το μεγαλύτερο μήκος λέξης.
Όταν εκτελούμε αυτή την εντολή, το crunch εκτιμά πόσο μεγάλο θα είναι το αρχείο (1812 GB) και στη συνέχεια αρχίζει να δημιουργεί τη λίστα.
Τι θα γινόταν αν γνωρίζαμε ότι ο στόχος χρησιμοποιούσε πάντα αριθμητικούς κωδικούς πρόσβασης μεταξύ 6 και 8 χαρακτήρων;
Θα μπορούσαμε να δημιουργήσουμε μια πλήρη λίστα με κωδικούς πρόσβασης που πληρούν αυτά τα κριτήρια και να τη στείλουμε σε ένα αρχείο στον κατάλογο του χρήστη root με όνομα numericwordlist.lst πληκτρολογώντας:
kali>crunch 6 8 1234567890 -o /root/numericwordlist.lst
Αν γνωρίζαμε ότι τα γενέθλια του στόχου ήταν στις 28 Ιουλίου και ότι πιθανότατα χρησιμοποίησε αυτή την ημερομηνία (οι άνθρωποι συχνά χρησιμοποιούν τις ημερομηνίες γέννησής τους στους κωδικούς τους για να τους θυμούνται ευκολότερα) στο τέλος ενός κωδικού πρόσβασης δέκα χαρακτήρων;
Θα μπορούσαμε να δημιουργήσουμε όλους τους κωδικούς πρόσβασης δέκα χαρακτήρων που τελειώνουν με 0728 και να στείλουμε το output αρχείο στον κατάλογο του χρήστη root με όνομα birthdaywordlist.lst, πληκτρολογώντας:
kali > crunch 10 10 -t @@@@@@0728 -o /root/birthdaywordlist.lst
Το σύμβολο @ χρησιμοποιείται για να αντιπροσωπεύει ένα μπαλαντέρ όλων των χαρακτήρων, ενώ τα στοιχεία “0728” αντιπροσωπεύουν τις σταθερές τιμές.
Βήμα 5: Πολύπλοκες Wordlists με το Crunch
Μία από τις ομορφιές του crunch είναι η δυνατότητα επιλογής ενός συγκεκριμένου συνόλου χαρακτήρων ή δημιουργίας του δικού σας συνόλου χαρακτήρων για τη δημιουργία της λίστας κωδικών πρόσβασης. Εάν γνωρίζουμε το πιθανό σύνολο χαρακτήρων που χρησιμοποιεί ο στόχος για τον κωδικό πρόσβασής του, μπορούμε να επιλέξουμε το σύνολο χαρακτήρων για τη δημιουργία της λίστας κωδικών πρόσβασης. Μπορούμε να βρούμε την επιλογή των συνόλων χαρακτήρων στη διεύθυνση:
/usr/share/rainbowcrack/charset.txt
Τώρα, αν ξέρουμε ότι ο στόχος μας χρησιμοποιεί έναν κωδικό πρόσβασης οκτώ χαρακτήρων με μόνο αλφαβητικούς χαρακτήρες, μπορούμε να δημιουργήσουμε μια λίστα με όλους τους πιθανούς κωδικούς πρόσβασης, με την παρακάτω εντολή :
kali > crunch 8 8 -f /usr/share/rainbowcrack/charset.txt mixalpha -o /root/alphawordlist.lst
Αυτό θα δημιουργήσει όλους τους κωδικούς πρόσβασης 8 χαρακτήρων χρησιμοποιώντας μόνο αλφαβητικούς χαρακτήρες (όχι αριθμούς ή ειδικούς χαρακτήρες) και θα τους αποθηκεύσει σε ένα αρχείο με όνομα alphawordlist.lst στον κατάλογο του χρήστη root.
Επίλογος
Η αποκρυπτογράφηση κωδικών πρόσβασης, περιλαμβάνει πάρα πολλές μεθόδους. Αυτές είναι το λεξικό, το rainbow table, η τεχνική brute force και άλλες. Εάν γνωρίζουμε ότι οι παράμετροι του κωδικού πρόσβασης ή γνωρίζουμε κάτι για τον στόχο και τους πιθανούς κωδικούς πρόσβασης (γενέθλια, ονόματα κατοικίδιων ζώων, σύζυγος κ.λ.π.), το crunch μπορεί να αποτελέσει ένα πολύ χρήσιμο εργαλείο για τη δημιουργία συγκεκριμένων λιστών που θα χρησιμοποιηθούν σε μια επίθεση dictionary.