Čo je tento nástroj?
NTLM (NT LAN Manager) je zastaraný autentifikačný protokol typu výzva-odpoveď od spoločnosti Microsoft, ktorý sa dodnes používa pre lokálne prihlásenie do Windows a ako záložné riešenie v mnohých prostrediach Active Directory. Jeho overovač hesla — bežne nazývaný „NTLM hash“ — je definovaný v samotnej technickej špecifikácii protokolu MS-NLMP od spoločnosti Microsoft ako `MD4(UTF-16-LE(password))`: heslo sa najprv zakóduje ako UTF-16 little-endian (takže každý znak sa stane 2 bajtmi, na rozdiel od UTF-8), a táto sekvencia bajtov sa potom raz zahashuje algoritmom MD4 z RFC 1320.
Krok UTF-16LE je detail, ktorý ľudia najčastejšie pokazia pri opätovnej implementácii NTLM: hashovanie UTF-8 bajtov reťazca namiesto jeho UTF-16LE bajtov vytvorí úplne odlišný, nesprávny digest, hoci viditeľný text vyzerá identicky. Tento nástroj kóduje správne, takže jeho výstup zodpovedá tomu, čo ukladajú samotné Windows, a čo očakávajú nástroje ako hashcat (mód 1000) a Mimikatz.
Keďže NTLM predchádza modernému návrhu hashovania hesiel, nemá žiadnu z ochrán, ktoré boli neskôr vytvorené špecificky na spomalenie lámania: žiadnu soľ pre jednotlivých používateľov, žiadny nastaviteľný pracovný faktor a žiadnu úmyselnú iteráciu. Je to jeden priechod MD4, čo ho robí extrémne rýchlym na výpočet — vlastnosť, ktorá je výhodná pre spätnú kompatibilitu, ale katastrofálna pri odolávaní útokom hrubou silou a slovníkovým útokom.
Prečo ho používať?
- Overte, či hash extrahovaný z databázy Windows SAM, výpisu NTDS.dit alebo exportu Active Directory zodpovedá očakávanej hodnote počas autorizovaného bezpečnostného testovania.
- Overte si svoje pochopenie algoritmu MS-NLMP, alebo skontrolujte hash vygenerovaný vaším vlastným kódom oproti overenej správnej implementácii.
- Generujte NTLM hashe pre hashcat (`-m 1000`) alebo testovanie slovníkov v John the Ripper v laboratóriu alebo CTF prostredí, na napadnutie ktorého máte oprávnenie.
- Skrížene overte výstup Mimikatz alebo iných pentestingových nástrojov počas legitímnych red-team alebo credential-audit projektov.
- 100 % lokálne: váš vstup nikdy neopustí prehliadač, takže je bezpečné ho používať aj pre citlivý materiál poverení v rámci autorizovaného hodnotenia.
Ako sa používa
- Zadajte heslo alebo reťazec, ktorý chcete zahashovať, do vstupného poľa.
- Kliknite na „Generate NTLM Hash“.
- Prečítajte si 32-znakový hexadecimálny NTLM hash (výstup veľkými písmenami je predvolene zapnutý, čo zodpovedá spôsobu, akým ho zobrazujú Windows a väčšina lámacích nástrojov — pre malé písmená zrušte začiarknutie políčka).
- Kliknutím na „Copy“ skopírujete hash do schránky.
Príklad
Vstup
passwordVýstup
8846F7EAEE8FB117AD06BDD830B7586CToto je dobre známy, nezávisle overiteľný testovací vektor: NTLM hash reťazca „password“ je vždy 8846F7EAEE8FB117AD06BDD830B7586C. Výstup tohto nástroja môžete porovnať s ľubovoľnou inou správnou implementáciou NTLM.
NTLM vs. moderné hashovanie hesiel
Tabuľka nižšie zdôrazňuje, prečo sa NTLM považuje za zastarané na ochranu nových systémov, hoci zostáva zabudovaný do staršej infraštruktúry Windows a Active Directory.
| Vlastnosť | NTLM | bcrypt / scrypt / Argon2 |
|---|---|---|
| Základný primitívum | Jeden priechod MD4 | Účelovo navrhnutý pomalý hash s nastaviteľnou cenou |
| Soľ | Žiadna — identické heslá vždy hashujú rovnako | Jedinečná náhodná soľ pre každé heslo |
| Iterácia / naťahovanie | Žiadne | Nastaviteľný pracovný faktor, časom zvyšiteľný |
| Odolnosť voči hrubej sile | Veľmi slabá — miliardy pokusov/s na moderných GPU | Zámerne nákladné pre každý pokus |
| Kde sa ešte nachádza | Staršia autentifikácia Windows, záložné riešenie Active Directory | Nové aplikácie, súčasná najlepšia prax |
Súvisiace nástroje
Ak potrebujete univerzálny kryptografický hash namiesto konštrukcie MD4(UTF-16LE) špecifickej pre NTLM, tieto nástroje môžu byť vhodnejšie.
→ Generátor hashov s viacerými algoritmami · Generátor MD5 · Generátor hesiel
Časté otázky
Čo presne je NTLM hash?
Je to overovač hesla, ktorý Windows vypočíta a uloží pre autentifikáciu NT LAN Manager, definovaný v špecifikácii MS-NLMP od spoločnosti Microsoft ako MD4(UTF-16LE(password)) — jeden priechod MD4 nad UTF-16 little-endian bajtovým kódovaním hesla. Vždy má 128 bitov, zobrazovaných ako 32 hexadecimálnych znakov.
Prečo konkrétne UTF-16LE, a nie UTF-8 alebo ASCII?
Windows ukladajú text interne v UTF-16LE od čias návrhu NT, takže heslá sa pred hashovaním kódujú rovnakým spôsobom. Každý znak sa stane 2 bajtmi (v poradí bajtov little-endian), vrátane obyčajných ASCII znakov ako 'a', ktoré sa stanú 0x61 0x00 namiesto len 0x61. Hashovanie UTF-8 bajtov toho istého reťazca vytvorí úplne odlišný, nesprávny výsledok — toto je najčastejšia chyba pri implementáciách NTLM písaných od začiatku.
Je NTLM dnes bezpečné používať?
Nie, a samotný Microsoft odporúča prejsť od neho k Kerberos, kde je to možné. NTLM nemá soľ, takže identické heslá vždy produkujú identické hashe naprieč všetkými používateľmi a systémami, čo umožňuje vyhľadávanie pomocou vopred vypočítaných rainbow tabuliek. Nemá ani iteráciu či pracovný faktor — jeden priechod MD4 bez soli — takže moderné GPU dokážu vyskúšať miliardy uhádnutí za sekundu proti zachytenému hashu. Prežíva najmä kvôli spätnej kompatibilite so staršími systémami a aplikáciami Windows.
Ako sa NTLM líši od moderného hashovania hesiel ako bcrypt, scrypt alebo Argon2?
Moderné nástroje na hashovanie hesiel sú zámerne pomalé a solené: bcrypt, scrypt a Argon2 pridávajú jedinečnú náhodnú soľ pre každé heslo a nastaviteľný nákladový faktor, ktorý sa dá časom zvyšovať, ako sa hardvér zrýchľuje, špeciálne s cieľom urobiť útok hrubou silou nákladným aj vo veľkom meradle. NTLM nerobí ani jedno — bol navrhnutý v ére pred tým, ako sa offline útoky hrubou silou stali praktickou hrozbou, a je to na ňom vidno. Presne preto by sa NTLM nikdy nemal používať na ochranu čohokoľvek navrhovaného dnes; skutočné prípady použitia tohto nástroja sú kompatibilita s existujúcou infraštruktúrou Windows a autorizované bezpečnostné testovanie, nie budovanie nových systémov.
Aké sú legitímne spôsoby použitia generátora NTLM hashov?
Overovanie hashov získaných z databázy SAM alebo NTDS.dit počas autorizovaného penetračného testu alebo auditu poverení; kontrola, či váš vlastný nástroj alebo skript správne implementuje MS-NLMP; generovanie testovacích hashov pre hashcat (mód 1000) alebo kontrolu kompatibility formátu Mimikatz v laboratóriu, ktoré ovládate; a riešenie CTF alebo tréningových cvičení, ktoré výslovne zahŕňajú NTLM. Použitie tohto nástroja na útok na účty alebo systémy, ktoré nevlastníte alebo na testovanie ktorých nemáte písomné oprávnenie, nie je legitímne použitie.
Odosiela sa moje heslo alebo vstup na server?
Nie. Výpočet MD4 prebieha úplne v JavaScripte vo vašom prehliadači — pre MD4 neexistuje žiadne natívne API prehliadača, takže je implementovaný priamo v klientskom kóde tejto stránky, a nič, čo napíšete, sa nikam neprenáša.