Οι κωδικοί σπάνε πιο εύκολα απ’ ό,τι νομίζετε — όχι με «μαγικό» μαντεψιμο, αλλά με ταχύτατη σύγκριση εκατομμυρίων υποψήφιων κωδικών σε δευτερόλεπτα. Σε αυτόν τον beginner οδηγό βλέπετε, μέσα σε ένα απομονωμένο εργαστήριο (isolated lab), πώς λειτουργούν στην πράξη τα hashcat και John the Ripper — και, το κυριότερο, πώς φτιάχνετε κωδικούς και άμυνες που τα κάνουν να αποτυγχάνουν.

Γιατί έχει σημασία η «θραύση» κωδικών

Όταν μια υπηρεσία πέφτει θύμα παραβίασης (breach), οι επιτιθέμενοι σπάνια αποκτούν κωδικούς σε καθαρό κείμενο (plaintext). Συνήθως κλέβουν μια βάση με hashes — μονόδρομες μαθηματικές αναπαραστάσεις των κωδικών. Το ζητούμενο για τον επιτιθέμενο είναι να βρει ποιος κωδικός παράγει το κάθε hash. Αυτή η διαδικασία λέγεται password cracking (θραύση κωδικών).

Ως αμυνόμενοι (defenders), το να καταλάβουμε πόσο γρήγορα γίνεται αυτό μας δείχνει γιατί ένας κωδικός 8 χαρακτήρων δεν αρκεί πια, γιατί χρειάζεται «αλάτισμα» (salting) και γιατί ο αργός αλγόριθμος hashing σώζει χρήστες όταν όλα τα άλλα αποτύχουν. Ο στόχος του άρθρου είναι αμυντικός και εκπαιδευτικός: κατανοώντας την επίθεση, θωρακίζεστε.

Για να αντιληφθείτε την κλίμακα: μια σύγχρονη κάρτα γραφικών (GPU) δοκιμάζει δεκάδες δισεκατομμύρια MD5 hashes ανά δευτερόλεπτο. Αυτό σημαίνει ότι ένας κωδικός 8 χαρακτήρων μόνο με πεζά γράμματα εξαντλείται σε λεπτά, ενώ ένα ολόκληρο dictionary 14 εκατομμυρίων λέξεων «τρέχει» ολόκληρο σε κλάσματα του δευτερολέπτου. Η άμυνα, επομένως, δεν είναι να κρύψουμε τον κωδικό — είναι να τον κάνουμε μαθηματικά ασύμφορο να μαντευτεί.

Βασικές έννοιες

Τι είναι ένα hash

Ένας αλγόριθμος hashing παίρνει είσοδο (τον κωδικό) και βγάζει μια σταθερού μήκους «υπογραφή». Είναι μονόδρομος (one-way): δεν αντιστρέφεται μαθηματικά. Το ίδιο input δίνει πάντα το ίδιο output — και αυτό ακριβώς εκμεταλλεύεται ο επιτιθέμενος.

Ας φτιάξουμε ένα MD5 hash ενός αδύναμου κωδικού μέσα στο lab, για να δούμε πώς μοιάζει:

Δημιουργία MD5 hash ενός αδύναμου κωδικού με echo και md5sum στο τερματικό Kali
Δημιουργία MD5 hash ενός αδύναμου κωδικού με echo και md5sum στο τερματικό Kali

Παρατηρήστε ότι ο κωδικός Summer2024 — που φαίνεται «λογικός» — γίνεται ένα hash 32 χαρακτήρων. Θα φανεί σε λίγο πόσο γρήγορα «γυρίζει» πίσω σε plaintext.

Dictionary attack vs brute-force

  • Dictionary attack (επίθεση λεξικού): δοκιμάζουμε έτοιμες λίστες πιθανών κωδικών (wordlists) — π.χ. το διάσημο rockyou.txt με ~14 εκατ. κωδικούς από παλιές διαρροές. Γρήγορο και εξαιρετικά αποτελεσματικό, γιατί οι άνθρωποι επαναχρησιμοποιούν προβλέψιμους κωδικούς.
  • Brute-force (εξαντλητική): δοκιμάζουμε κάθε πιθανό συνδυασμό χαρακτήρων. Εγγυημένο αλλά εκθετικά αργό — για μεγάλους, τυχαίους κωδικούς γίνεται πρακτικά ανέφικτο.
  • Hybrid / rules: παίρνουμε μια wordlist και εφαρμόζουμε κανόνες μετασχηματισμού (π.χ. password → P@ssw0rd!), καλύπτοντας τα συνηθισμένα «κόλπα» των χρηστών.

Γιατί το salt αλλάζει το παιχνίδι

Το salt είναι μια τυχαία τιμή που προστίθεται στον κωδικό πριν το hashing, μοναδική ανά χρήστη. Έτσι, δύο χρήστες με τον ίδιο κωδικό έχουν διαφορετικά hashes, και οι προϋπολογισμένοι πίνακες (rainbow tables) αχρηστεύονται. Ο σωστός συνδυασμός είναι αργός αλγόριθμος + salt (bcrypt, scrypt, Argon2) — όχι το γρήγορο MD5.

Γιατί «αργός»; Ένας γρήγορος αλγόριθμος όπως το MD5 είναι φίλος του επιτιθέμενου: όσο πιο γρήγορα υπολογίζεται ένα hash, τόσα περισσότερα δοκιμάζει ο cracker ανά δευτερόλεπτο. Αλγόριθμοι όπως το bcrypt είναι σκόπιμα αργοί και ρυθμιζόμενοι (work factor): για τον νόμιμο server μια σύνδεση κοστίζει μερικά χιλιοστά του δευτερολέπτου, αλλά για τον επιτιθέμενο που πρέπει να δοκιμάσει δισεκατομμύρια συνδυασμούς, το ίδιο κόστος γίνεται απαγορευτικό. Αυτή η ασυμμετρία είναι η καρδιά της σωστής αποθήκευσης κωδικών.

Πρακτικό παράδειγμα στο lab

Θα σπάσουμε το MD5 hash που φτιάξαμε, με δύο εργαλεία, μέσα στο απομονωμένο μας εργαστήριο (10.10.10.0/24, κανένα πραγματικό σύστημα).

Βήμα 1 — hashcat με MD5 (mode 0)

Το hashcat είναι ο ταχύτερος cracker, με επιτάχυνση GPU. Το -m 0 δηλώνει τύπο hash = MD5, το -a 0 δηλώνει straight dictionary attack. Δίνουμε το αρχείο με το hash και τη wordlist:

Το hashcat σπάει ένα MD5 hash με τη wordlist rockyou σε mode 0 μέσα σε λίγα δευτερόλεπτα
Το hashcat σπάει ένα MD5 hash με τη wordlist rockyou σε mode 0 μέσα σε λίγα δευτερόλεπτα

Μέσα σε λιγότερο από ένα δευτερόλεπτο το hashcat βρίσκει ότι το hash αντιστοιχεί στο Summer2024. Ένας κωδικός που θα περνούσε πολλές πολιτικές «πολυπλοκότητας» (κεφαλαίο, πεζά, αριθμοί) σπάει ακαριαία επειδή είναι προβλέψιμος και υπάρχει σε wordlist.

Βήμα 2 — John the Ripper με wordlist

Ο John the Ripper είναι το κλασικό, ευέλικτο εργαλείο. Με το --wordlist κάνουμε την ίδια dictionary επίθεση, και το --format=raw-md5 λέει στον John τι τύπο hash να περιμένει:

Ο John the Ripper σπάει το ίδιο MD5 hash με τη λειτουργία wordlist και εμφανίζει τον κωδικό σε plaintext
Ο John the Ripper σπάει το ίδιο MD5 hash με τη λειτουργία wordlist και εμφανίζει τον κωδικό σε plaintext

Ίδιο αποτέλεσμα, διαφορετικό εργαλείο. Το john --show στο τέλος επιβεβαιώνει τον σπασμένο κωδικό. Αυτό δείχνει ότι η αδυναμία δεν είναι στο εργαλείο — είναι στον κωδικό και στον αλγόριθμο.

Μια πρακτική σημείωση: πριν ξεκινήσετε το cracking, πρέπει να αναγνωρίσετε τον τύπο του hash. Εργαλεία όπως το hashid ή το hash-identifier προτείνουν πιθανούς τύπους από τη μορφή του hash, ώστε να επιλέξετε το σωστό -m στο hashcat ή --format στον John. Λάθος τύπος σημαίνει μηδέν αποτελέσματα — όχι επειδή ο κωδικός είναι δυνατός, αλλά επειδή «ρωτάτε» το εργαλείο λάθος ερώτηση. Δοκιμάστε επίσης να αλλάξετε τον δοκιμαστικό κωδικό σε μια μεγάλη, τυχαία passphrase και τρέξτε ξανά τα ίδια εργαλεία: θα δείτε τη διαφορά να μετριέται σε αιώνες υπολογιστικού χρόνου.

Βήμα 3 — Η οπτική του αμυνόμενου: ανίχνευση & θωράκιση

Για κάθε επίθεση υπάρχει σήμα ανίχνευσης. Σε ένα πραγματικό περιβάλλον, το cracking γίνεται offline (ο επιτιθέμενος έχει ήδη τα hashes), αλλά η απόκτηση των hashes και οι online δοκιμές αφήνουν ίχνη. Δείτε πώς φαίνονται τα σήματα και πώς σκληραίνουμε το σύστημα:

Έλεγχος πολιτικής κωδικών και ανίχνευση αποτυχημένων συνδέσεων ως αμυντικά μέτρα στο lab
Έλεγχος πολιτικής κωδικών και ανίχνευση αποτυχημένων συνδέσεων ως αμυντικά μέτρα στο lab

Τρία πράγματα ξεχωρίζουν εδώ. Πρώτον, η πολιτική ποιότητας κωδικού (pwquality.conf) επιβάλλει ελάχιστο μήκος 14 χαρακτήρων — αρκετά ώστε το brute-force να γίνεται μη ρεαλιστικό. Δεύτερον, οι επαναλαμβανόμενες εγγραφές Failed password από την ίδια IP (10.10.10.5) είναι κλασικό σήμα online επίθεσης· ένα SIEM ή ένας απλός κανόνας συσχέτισης το εντοπίζει άμεσα. Τρίτον, το fail2ban έχει ήδη μπλοκάρει την επιτιθέμενη διεύθυνση, μετατρέποντας την ανίχνευση σε αυτόματη απόκριση.

Το ουσιώδες μήνυμα για τον αμυνόμενο: το offline cracking δεν το «βλέπετε», γι’ αυτό αμύνεστε πριν — με ισχυρό hashing και salt ώστε τα κλεμμένα hashes να μη σπάνε — και ταυτόχρονα αμύνεστε online με rate-limiting, lockouts και monitoring ώστε ο επιτιθέμενος να μη φτάσει καν να κλέψει τη βάση.

Το εργαστηριακό περιβάλλον (isolated lab)

Όλα τα παραπάνω έτρεξαν σε ένα πλήρως απομονωμένο εργαστήριο, χωρίς καμία σύνδεση με πραγματικά συστήματα ή δεδομένα:

  • Host-only δίκτυο στο VirtualBox/VMware, με εύρος 10.10.10.0/24 — καμία πρόσβαση στο Internet ή στο εταιρικό δίκτυο.
  • Ένα Kali Linux VM ως σταθμός εργασίας (τα εργαλεία hashcat και john είναι προεγκατεστημένα).
  • Hashes που παράγουμε μόνοι μας από δικούς μας δοκιμαστικούς κωδικούς — ποτέ πραγματικά credentials τρίτων.
  • Η rockyou.txt βρίσκεται στο /usr/share/wordlists/ (αποσυμπιέζεται με gunzip την πρώτη φορά).

Έτσι εξασκείστε ελεύθερα, χωρίς κανένα ρίσκο για τρίτους ή για εσάς.

Ηθικό & νομικό πλαίσιο

Το password cracking είναι θεμιτή τεχνική μόνο σε ένα από τα εξής πλαίσια:

  • Authorized penetration testing: με γραπτή εξουσιοδότηση (scope, rules of engagement) από τον νόμιμο ιδιοκτήτη του συστήματος.
  • Δικά σας συστήματα / δικό σας lab: ό,τι κατέχετε και ελέγχετε πλήρως.
  • CTF και εκπαιδευτικές πλατφόρμες που το επιτρέπουν ρητά.

Η προσπάθεια θραύσης κωδικών σε συστήματα ή λογαριασμούς τρίτων χωρίς άδεια είναι ποινικό αδίκημα (στην Ελλάδα και την ΕΕ, βάσει της νομοθεσίας για την παράνομη πρόσβαση σε πληροφοριακά συστήματα). Ο σκοπός αυτής της γνώσης είναι να αμύνεστε — να ελέγχετε τη δική σας ανθεκτικότητα και να προστατεύετε τους χρήστες σας.

Βασικά συμπεράσματα

  • Ο «πολύπλοκος» δεν σημαίνει «δυνατός». Το Summer2024 σπάει σε δευτερόλεπτα γιατί είναι προβλέψιμο· το μήκος και η τυχαιότητα μετράνε πολύ περισσότερο από τα σύμβολα.
  • Χρησιμοποιήστε passphrases (4+ τυχαίες λέξεις) ή έναν password manager που παράγει μακρείς, μοναδικούς κωδικούς ανά υπηρεσία.
  • Ποτέ επαναχρησιμοποίηση κωδικών — μία διαρροή δεν πρέπει να ξεκλειδώνει τα πάντα.
  • Για developers: αποθηκεύετε κωδικούς μόνο με αργό, salted αλγόριθμο (bcrypt / scrypt / Argon2), ποτέ MD5 ή SHA-1 σκέτα.
  • Ενεργοποιήστε MFA — ακόμη κι αν σπάσει ο κωδικός, ο δεύτερος παράγοντας σταματά την επίθεση.
  • Παρακολουθήστε & ανιχνεύστε: rate-limiting, lockout σε αποτυχημένες συνδέσεις και ειδοποιήσεις για μαζικές αποτυχίες αυθεντικοποίησης.

Η θραύση κωδικών δεν είναι μαγεία — είναι ταχύτητα εναντίον προβλεψιμότητας. Αφαιρέστε την προβλεψιμότητα και επιβραδύνετε τον αλγόριθμο, και οι ίδιες επιθέσεις που είδατε εδώ απλώς αποτυγχάνουν.


Από τη θεωρία στην πράξη. Η Audax Cybersecurity προσφέρει επαγγελματικές υπηρεσίες offensive security — penetration testing & offensive validation — ενώ για όσους ξεκινούν το ταξίδι τους στο ethical hacking, το #1 ελληνικό βιβλίο «Ethical Hacking — Η Κρυφή Γνώση» είναι ο ιδανικός οδηγός.

Erevos AI · Managed CTEM

Θέλετε συνεχή επικύρωση της ασφάλειάς σας — όχι έλεγχο μία φορά τον χρόνο;

Το Erevos AI είναι η ετήσια, managed υπηρεσία CTEM της Audax — ενοποιεί exposure mapping, penetration testing, adversary emulation, detection validation & remediation σε έναν συνεχή, αποδεικτικό κύκλο. Human-led. Machine-scaled. Technically proven. Ευθυγραμμισμένο με NIS2 & DORA.

Ανακαλύψτε το Erevos AI →
Offensive Security · Penetration Testing

Χρειάζεστε Penetration Testing για τον οργανισμό σας;

Περιγράψτε το scope του ελέγχου μέσα από το δομημένο ερωτηματολόγιο και λάβετε εξατομικευμένη τεχνική & οικονομική προσφορά από την ομάδα Offensive Security της Audax. Χωρίς αυτόματη τιμή ή δέσμευση — η προσφορά αποστέλλεται μετά από τεχνική αξιολόγηση του scope.

Ζητήστε προσφορά Penetration Testing →