CodeKitHub
Εργαλεία κωδικοποίησης

NTLM Hash Generator

Τελευταία ενημέρωση:

Ένα NTLM hash υπολογίζεται κωδικοποιώντας την είσοδό σας ως UTF-16LE (2 bytes ανά χαρακτήρα, little-endian) και στη συνέχεια περνώντας την μέσα από τον αλγόριθμο message-digest MD4 — αυτή η μονή, χωρίς άλας λειτουργία είναι ολόκληρο το σχήμα κατακερματισμού NTLM που χρησιμοποιεί τα Microsoft Windows από το NT 4.0 για την αποθήκευση επαληθευτών κωδικών πρόσβασης. Αυτό το εργαλείο εκτελεί ακριβώς αυτόν τον υπολογισμό τοπικά στον browser σας, εξ ολοκλήρου σε JavaScript, ώστε τίποτα από όσα πληκτρολογείτε να μην αποστέλλεται ποτέ σε server. Υπάρχει για νόμιμη εργασία ασφάλειας — επαλήθευση εξαγωγών hash του Active Directory, έλεγχο μορφών εξόδου hashcat ή Mimikatz, ή εργασία σε προκλήσεις CTF και εργαστηρίων pentesting — όχι για επίθεση σε λογαριασμούς που δεν σας ανήκουν ή δεν έχετε εξουσιοδότηση να δοκιμάσετε.

NTLM Hash

Τι είναι αυτό το εργαλείο;

Το NTLM (NT LAN Manager) είναι το παλαιό πρωτόκολλο ελέγχου ταυτότητας challenge-response της Microsoft, που χρησιμοποιείται ακόμη σήμερα για τοπικές συνδέσεις λογαριασμών Windows και ως εφεδρική λύση σε πολλά περιβάλλοντα Active Directory. Ο επαληθευτής κωδικού πρόσβασής του — κοινώς γνωστός ως "το NTLM hash" — ορίζεται στην ίδια την προδιαγραφή πρωτοκόλλου MS-NLMP της Microsoft ως `MD4(UTF-16-LE(password))`: ο κωδικός πρόσβασης κωδικοποιείται πρώτα ως UTF-16 little-endian (έτσι κάθε χαρακτήρας γίνεται 2 bytes, σε αντίθεση με το UTF-8), και αυτή η ακολουθία bytes κατακερματίζεται στη συνέχεια μία φορά με τον αλγόριθμο MD4 από το RFC 1320.

Το βήμα UTF-16LE είναι η λεπτομέρεια που οι περισσότεροι κάνουν λάθος όταν επανυλοποιούν το NTLM: ο κατακερματισμός των bytes UTF-8 ενός αλφαριθμητικού αντί των bytes UTF-16LE του παράγει ένα εντελώς διαφορετικό, εσφαλμένο digest, παρόλο που το ορατό κείμενο φαίνεται πανομοιότυπο. Αυτό το εργαλείο κωδικοποιεί σωστά, οπότε η έξοδός του ταιριάζει με αυτό που αποθηκεύουν τα ίδια τα Windows και αυτό που αναμένουν εργαλεία όπως το hashcat (mode 1000) και το Mimikatz.

Επειδή το NTLM προηγείται του σύγχρονου σχεδιασμού κατακερματισμού κωδικών πρόσβασης, δεν διαθέτει καμία από τις προστασίες που δημιουργήθηκαν αργότερα ειδικά για την επιβράδυνση της παραβίασης: κανένα άλας ανά χρήστη, κανένας ρυθμιζόμενος συντελεστής εργασίας και καμία σκόπιμη επανάληψη. Είναι ένα μόνο πέρασμα MD4, γεγονός που το καθιστά εξαιρετικά γρήγορο στον υπολογισμό — μια ιδιότητα βολική για συμβατότητα με παλαιά συστήματα, αλλά καταστροφική για την αντοχή σε επιθέσεις brute-force και λεξικού.

Γιατί να το χρησιμοποιήσετε;

  • Επαληθεύστε ότι ένα hash που εξήχθη από μια βάση δεδομένων Windows SAM, μια εξαγωγή NTDS.dit ή μια εξαγωγή Active Directory ταιριάζει με μια αναμενόμενη τιμή κατά τη διάρκεια εξουσιοδοτημένου ελέγχου ασφάλειας.
  • Επιβεβαιώστε την κατανόησή σας για τον αλγόριθμο MS-NLMP, ή ελέγξτε ένα hash που παρήγαγε ο δικός σας κώδικας, έναντι μιας γνωστά σωστής υλοποίησης.
  • Δημιουργήστε NTLM hashes για δοκιμές λίστας λέξεων με hashcat (`-m 1000`) ή John the Ripper σε ένα εργαστήριο ή περιβάλλον CTF που έχετε εξουσιοδότηση να επιτεθείτε.
  • Διασταυρώστε την έξοδο του Mimikatz ή άλλων εργαλείων pentesting κατά τη διάρκεια νόμιμων αναθέσεων red-team ή ελέγχου διαπιστευτηρίων.
  • 100% τοπικά: η είσοδός σας δεν εγκαταλείπει ποτέ τον browser, οπότε είναι ασφαλές να χρησιμοποιείται ακόμη και για ευαίσθητο υλικό διαπιστευτηρίων σε μια εξουσιοδοτημένη αξιολόγηση.

Πώς χρησιμοποιείται

  1. Πληκτρολογήστε τον κωδικό πρόσβασης ή το αλφαριθμητικό που θέλετε να κατακερματίσετε στο πεδίο εισόδου.
  2. Κάντε κλικ στο "Generate NTLM Hash".
  3. Διαβάστε το 32-χαρακτήρων δεκαεξαδικό NTLM hash (η έξοδος με κεφαλαία είναι ενεργοποιημένη από προεπιλογή, σύμφωνα με το πώς τα Windows και τα περισσότερα εργαλεία παραβίασης το εμφανίζουν — αποεπιλέξτε το πλαίσιο για πεζά).
  4. Κάντε κλικ στο "Copy" για να αντιγράψετε το hash στο πρόχειρό σας.

Παράδειγμα

Είσοδος

password

Έξοδος

8846F7EAEE8FB117AD06BDD830B7586C

Αυτό είναι ένα ευρέως γνωστό, ανεξάρτητα επαληθεύσιμο διάνυσμα δοκιμής: το NTLM hash του κυριολεκτικού αλφαριθμητικού "password" είναι πάντα 8846F7EAEE8FB117AD06BDD830B7586C. Μπορείτε να ελέγξετε την έξοδο αυτού του εργαλείου έναντι οποιασδήποτε άλλης σωστής υλοποίησης NTLM.

NTLM έναντι σύγχρονου κατακερματισμού κωδικών πρόσβασης

Ο παρακάτω πίνακας επισημαίνει γιατί το NTLM θεωρείται ξεπερασμένο για την προστασία νέων συστημάτων, παρόλο που παραμένει ενσωματωμένο σε παλαιά υποδομή Windows και Active Directory.

ΙδιότηταNTLMbcrypt / scrypt / Argon2
Υποκείμενο πρωτόγονοΜονό πέρασμα MD4Ειδικά σχεδιασμένο αργό hash με ρυθμιζόμενο κόστος
ΆλαςΚανένα — ίδιοι κωδικοί πρόσβασης πάντα κατακερματίζονται πανομοιότυπαΜοναδικό τυχαίο άλας ανά κωδικό πρόσβασης
Επανάληψη / stretchingΚαμίαΡυθμιζόμενος συντελεστής εργασίας, αυξανόμενος με τον χρόνο
Αντοχή σε brute-forceΠολύ αδύναμη — δισεκατομμύρια εικασίες/δευτ. σε σύγχρονες GPUΣκόπιμα δαπανηρό ανά εικασία
Πού βρίσκεται ακόμηΠαλαιός έλεγχος ταυτότητας Windows, εφεδρική λύση Active DirectoryΝέες εφαρμογές, τρέχουσα βέλτιστη πρακτική

Σχετικά εργαλεία

Εάν χρειάζεστε ένα γενικού σκοπού κρυπτογραφικό hash αντί για την ειδική κατασκευή NTLM MD4(UTF-16LE), αυτά τα εργαλεία μπορεί να ταιριάζουν καλύτερα.

Multi-Algorithm Hash Generator · MD5 Generator · Password Generator

Συχνές ερωτήσεις

Τι ακριβώς είναι ένα NTLM hash;

Είναι ο επαληθευτής κωδικού πρόσβασης που υπολογίζουν και αποθηκεύουν τα Windows για τον έλεγχο ταυτότητας NT LAN Manager, όπως ορίζεται στην προδιαγραφή MS-NLMP της Microsoft ως MD4(UTF-16LE(password)) — ένα μόνο πέρασμα MD4 πάνω στην κωδικοποίηση bytes UTF-16 little-endian του κωδικού πρόσβασης. Είναι πάντα 128 bit, εμφανιζόμενο ως 32 δεκαεξαδικοί χαρακτήρες.

Γιατί συγκεκριμένα UTF-16LE, και όχι UTF-8 ή ASCII;

Τα Windows αποθηκεύουν εσωτερικά κείμενο ως UTF-16LE από τότε που σχεδιάστηκε το NT, οπότε οι κωδικοί πρόσβασης κωδικοποιούνται με αυτόν τον τρόπο και πριν από τον κατακερματισμό. Κάθε χαρακτήρας γίνεται 2 bytes (σειρά bytes little-endian), συμπεριλαμβανομένων απλών χαρακτήρων ASCII όπως το 'a', που γίνεται 0x61 0x00 αντί για απλά 0x61. Ο κατακερματισμός των bytes UTF-8 του ίδιου αλφαριθμητικού παράγει ένα εντελώς διαφορετικό, λανθασμένο αποτέλεσμα — αυτό είναι το πιο κοινό σφάλμα σε υλοποιήσεις NTLM από την αρχή.

Είναι ασφαλές να χρησιμοποιείται το NTLM σήμερα;

Όχι, και η ίδια η Microsoft συνιστά τη μετάβαση μακριά από αυτό υπέρ του Kerberos όπου είναι δυνατόν. Το NTLM δεν έχει άλας, οπότε ίδιοι κωδικοί πρόσβασης παράγουν πάντα πανομοιότυπα hashes σε κάθε χρήστη και κάθε σύστημα, επιτρέποντας προϋπολογισμένες αναζητήσεις πινάκων ουράνιου τόξου. Δεν έχει επίσης καμία επανάληψη ή συντελεστή εργασίας — ένα μόνο πέρασμα MD4 χωρίς άλας — οπότε οι σύγχρονες GPU μπορούν να δοκιμάσουν δισεκατομμύρια εικασίες ανά δευτερόλεπτο έναντι ενός συλληφθέντος hash. Επιβιώνει κυρίως για συμβατότητα με παλαιότερα συστήματα και εφαρμογές Windows.

Πώς διαφέρει το NTLM από τον σύγχρονο κατακερματισμό κωδικών πρόσβασης όπως bcrypt, scrypt ή Argon2;

Οι σύγχρονοι κατακερματιστές κωδικών πρόσβασης είναι σκόπιμα αργοί και με άλας: τα bcrypt, scrypt και Argon2 προσθέτουν καθένα ένα μοναδικό τυχαίο άλας ανά κωδικό πρόσβασης και έναν ρυθμιζόμενο συντελεστή κόστους που μπορεί να αυξηθεί με την πάροδο του χρόνου καθώς το υλικό γίνεται ταχύτερο, ειδικά για να καταστήσει την παραβίαση με ωμή βία δαπανηρή ακόμη και σε κλίμακα. Το NTLM δεν κάνει τίποτα από αυτά — σχεδιάστηκε σε μια εποχή πριν η εκτός σύνδεσης παραβίαση με ωμή βία γίνει ένα πρακτικό μοντέλο απειλής, και αυτό φαίνεται. Ακριβώς γι' αυτό το NTLM δεν πρέπει ποτέ να χρησιμοποιείται για την προστασία οτιδήποτε σχεδιάζεται σήμερα· οι πραγματικές περιπτώσεις χρήσης αυτού του εργαλείου είναι η συμβατότητα με υπάρχουσα υποδομή Windows και ο εξουσιοδοτημένος έλεγχος ασφάλειας, όχι η δημιουργία νέων συστημάτων.

Ποιες είναι οι νόμιμες χρήσεις μιας γεννήτριας NTLM hash;

Επαλήθευση hashes που εξήχθησαν από μια βάση δεδομένων SAM ή NTDS.dit κατά τη διάρκεια εξουσιοδοτημένου ελέγχου διείσδυσης ή ελέγχου διαπιστευτηρίων· έλεγχος ότι τα δικά σας εργαλεία ή scripts υλοποιούν σωστά το MS-NLMP· δημιουργία δοκιμαστικών hashes για hashcat (mode 1000) ή ελέγχους συμβατότητας μορφής Mimikatz σε ένα εργαστήριο που ελέγχετε· και εργασία σε ασκήσεις CTF ή εκπαίδευσης που αφορούν ρητά το NTLM. Η χρήση αυτού του εργαλείου για επίθεση σε λογαριασμούς ή συστήματα που δεν σας ανήκουν ή δεν έχετε γραπτή εξουσιοδότηση να δοκιμάσετε δεν είναι νόμιμη χρήση.

Αποστέλλεται ο κωδικός πρόσβασης ή η είσοδός μου σε server;

Όχι. Ο υπολογισμός MD4 εκτελείται εξ ολοκλήρου σε JavaScript στον browser σας — δεν υπάρχει εγγενές API browser για το MD4, οπότε είναι υλοποιημένο απευθείας στον κώδικα από την πλευρά του πελάτη αυτής της σελίδας, και τίποτα από όσα πληκτρολογείτε δεν μεταδίδεται πουθενά.

Σχετικά εργαλεία