CodeKitHub
Instrumente de codificare

NTLM Hash Generator

Ultima actualizare:

Un hash NTLM se calculează codificând datele introduse ca UTF-16LE (2 octeți per caracter, little-endian) și apoi trecându-le prin algoritmul de rezumat al mesajului MD4 — această operațiune într-o singură trecere, fără sare, reprezintă întreaga schemă de hashing NTLM pe care Microsoft Windows o folosește din NT 4.0 pentru a stoca verificatorii de parole. Acest instrument efectuează exact acest calcul local, în browserul dvs., în întregime în JavaScript, astfel încât nimic din ce scrieți nu este trimis vreodată către un server. Există pentru munca legitimă de securitate — verificarea exporturilor de hash-uri Active Directory, verificarea formatelor de ieșire hashcat sau Mimikatz, sau rezolvarea provocărilor CTF și de laborator pentesting — nu pentru a ataca conturi pe care nu le dețineți sau pentru care nu aveți autorizație de testare.

NTLM Hash

Ce este acest instrument?

NTLM (NT LAN Manager) este protocolul de autentificare provocare-răspuns moștenit de la Microsoft, încă folosit astăzi pentru autentificările locale ale conturilor Windows și ca soluție de rezervă în multe medii Active Directory. Verificatorul său de parole — numit în mod obișnuit „hash-ul NTLM” — este definit în specificația protocolului MS-NLMP a Microsoft ca `MD4(UTF-16-LE(password))`: parola este mai întâi codificată ca UTF-16 little-endian (astfel încât fiecare caracter devine 2 octeți, spre deosebire de UTF-8), iar această secvență de octeți este apoi calculată o singură dată cu algoritmul MD4 din RFC 1320.

Pasul UTF-16LE este detaliul pe care majoritatea oamenilor îl greșesc atunci când reimplementează NTLM: calcularea hash-ului octeților UTF-8 ai unui șir în loc de octeții săi UTF-16LE produce un rezumat complet diferit și incorect, chiar dacă textul vizibil arată identic. Acest instrument codifică corect, astfel încât rezultatul său corespunde cu ceea ce stochează Windows însuși și cu ceea ce așteaptă instrumente precum hashcat (modul 1000) și Mimikatz.

Deoarece NTLM precede designul modern de hashing al parolelor, nu are niciuna dintre protecțiile construite mai târziu special pentru a încetini spargerea: fără sare specifică fiecărui utilizator, fără factor de lucru configurabil și fără iterație deliberată. Este o singură trecere MD4, ceea ce îl face extrem de rapid de calculat — o proprietate convenabilă pentru compatibilitatea moștenită, dar dezastruoasă pentru rezistența la atacurile de forță brută și cu dicționar.

De ce să-l folosești?

  • Verificați dacă un hash extras dintr-o bază de date Windows SAM, un dump NTDS.dit sau un export Active Directory corespunde unei valori așteptate în timpul unei testări de securitate autorizate.
  • Confirmați înțelegerea algoritmului MS-NLMP sau verificați un hash produs de codul dvs. propriu comparativ cu o implementare cunoscută ca fiind corectă.
  • Generați hash-uri NTLM pentru testarea cu liste de cuvinte hashcat (`-m 1000`) sau John the Ripper într-un mediu de laborator sau CTF pe care sunteți autorizat să îl atacați.
  • Verificați încrucișat rezultatul Mimikatz sau al altui instrument de pentesting în timpul angajamentelor legitime de red-team sau audit de credențiale.
  • 100% local: datele introduse nu părăsesc niciodată browserul, deci este sigur de utilizat chiar și pentru materiale sensibile de credențiale într-o evaluare autorizată.

Cum se folosește

  1. Tastați parola sau șirul de caractere pe care doriți să îl calculați, în caseta de introducere.
  2. Faceți clic pe „Generate NTLM Hash”.
  3. Citiți hash-ul NTLM hexazecimal de 32 de caractere (ieșirea cu majuscule este activată implicit, corespunzând modului în care Windows și majoritatea instrumentelor de spargere îl afișează — debifați caseta pentru minuscule).
  4. Faceți clic pe „Copy” pentru a copia hash-ul în clipboard.

Exemplu

Intrare

password

Rezultat

8846F7EAEE8FB117AD06BDD830B7586C

Acesta este un vector de test bine cunoscut, verificabil independent: hash-ul NTLM al șirului literal „password” este întotdeauna 8846F7EAEE8FB117AD06BDD830B7586C. Puteți verifica rezultatul acestui instrument comparativ cu orice altă implementare NTLM corectă.

NTLM vs. hashing modern al parolelor

Tabelul de mai jos evidențiază de ce NTLM este considerat depășit pentru protejarea sistemelor noi, deși rămâne integrat în infrastructura Windows și Active Directory moștenită.

ProprietateNTLMbcrypt / scrypt / Argon2
Primitivă subiacentăO singură trecere MD4Hash lent construit special, cu cost reglabil
SărareNiciuna — parolele identice produc întotdeauna același hashSare aleatorie unică per parolă
Iterație / extindereNiciunaFactor de lucru configurabil, care poate fi crescut în timp
Rezistență la forța brutăFoarte slabă — miliarde de ghiciri/sec pe GPU-uri moderneDeliberat costisitor per ghicire
Unde mai este întâlnitAutentificare Windows moștenită, soluție de rezervă Active DirectoryAplicații noi, cele mai bune practici actuale

Instrumente conexe

Dacă aveți nevoie de un hash criptografic de uz general în loc de construcția MD4(UTF-16LE) specifică NTLM, aceste instrumente ar putea fi mai potrivite.

Generator de hash multi-algoritm · Generator MD5 · Generator de parole

Întrebări frecvente

Ce este exact un hash NTLM?

Este verificatorul de parole pe care Windows îl calculează și îl stochează pentru autentificarea NT LAN Manager, definit în specificația MS-NLMP a Microsoft ca MD4(UTF-16LE(password)) — o singură trecere MD4 peste codificarea de octeți UTF-16 little-endian a parolei. Are întotdeauna 128 de biți, afișați ca 32 de caractere hexazecimale.

De ce specific UTF-16LE și nu UTF-8 sau ASCII?

Windows a stocat textul intern ca UTF-16LE încă de la proiectarea NT, deci și parolele sunt codificate astfel înainte de calcularea hash-ului. Fiecare caracter devine 2 octeți (ordine de octeți little-endian), inclusiv caracterele ASCII simple precum 'a', care devin 0x61 0x00 în loc de doar 0x61. Calcularea hash-ului octeților UTF-8 ai aceluiași șir produce un rezultat complet diferit și greșit — aceasta este cea mai comună eroare în implementările NTLM construite de la zero.

Este NTLM sigur de utilizat astăzi?

Nu, iar Microsoft însuși recomandă renunțarea la el în favoarea Kerberos acolo unde este posibil. NTLM nu are sare, deci parolele identice produc întotdeauna hash-uri identice pentru fiecare utilizator și fiecare sistem, permițând căutări precalculate în tabele rainbow. De asemenea, nu are iterație sau factor de lucru — o singură trecere MD4 fără sare — astfel încât GPU-urile moderne pot încerca miliarde de ghiciri pe secundă împotriva unui hash capturat. Supraviețuiește în principal pentru compatibilitatea moștenită cu sisteme și aplicații Windows mai vechi.

Prin ce diferă NTLM de hashing-ul modern al parolelor precum bcrypt, scrypt sau Argon2?

Instrumentele moderne de hashing al parolelor sunt deliberat lente și cu sare: bcrypt, scrypt și Argon2 adaugă fiecare o sare aleatorie unică per parolă și un factor de cost reglabil care poate fi crescut în timp pe măsură ce hardware-ul devine mai rapid, special pentru a face forța brută costisitoare chiar și la scară mare. NTLM nu face niciuna dintre acestea — a fost proiectat într-o eră dinaintea în care forța brută offline era un model de amenințare practic, și acest lucru se vede. Exact de aceea NTLM nu ar trebui niciodată folosit pentru a proteja ceva conceput astăzi; cazurile de utilizare reale ale acestui instrument sunt compatibilitatea cu infrastructura Windows existentă și testarea de securitate autorizată, nu construirea de sisteme noi.

Care sunt utilizările legitime ale unui generator de hash-uri NTLM?

Verificarea hash-urilor extrase dintr-o bază de date SAM sau NTDS.dit în timpul unui test de penetrare autorizat sau al unui audit de credențiale; verificarea faptului că instrumentele sau scripturile dvs. proprii implementează corect MS-NLMP; generarea de hash-uri de test pentru verificări de compatibilitate cu formatul hashcat (modul 1000) sau Mimikatz într-un laborator pe care îl controlați; și parcurgerea exercițiilor CTF sau de instruire care implică în mod explicit NTLM. Folosirea acestui instrument pentru a ataca conturi sau sisteme pe care nu le dețineți sau pentru care nu aveți autorizație scrisă de testare nu reprezintă o utilizare legitimă.

Parola sau datele mele introduse sunt trimise către un server?

Nu. Calculul MD4 rulează în întregime în JavaScript în browserul dvs. — nu există niciun API nativ de browser pentru MD4, deci este implementat direct în codul din partea clientului al acestei pagini, iar nimic din ce scrieți nu este transmis niciodată nicăieri.

Instrumente similare