Co je tento nástroj?
NTLM (NT LAN Manager) je zastaralý autentizační protokol Microsoftu typu výzva-odpověď, který se dodnes používá pro lokální přihlašování k účtům Windows a jako záložní řešení v mnoha prostředích Active Directory. Jeho ověřovací hodnota hesla — běžně nazývaná „NTLM hash“ — je definována ve vlastní specifikaci protokolu Microsoftu MS-NLMP jako `MD4(UTF-16-LE(password))`: heslo je nejprve zakódováno jako UTF-16 little-endian (takže se každý znak stane 2 bajty, na rozdíl od UTF-8), a tato bajtová sekvence je poté jednou zahashována algoritmem MD4 z RFC 1320.
Krok UTF-16LE je detail, který většina lidí při opětovné implementaci NTLM pokazí: hashování UTF-8 bajtů řetězce místo jeho UTF-16LE bajtů vytvoří zcela odlišný, nesprávný otisk, i když viditelný text vypadá identicky. Tento nástroj kóduje správně, takže jeho výstup odpovídá tomu, co skutečně ukládá Windows, a tomu, co očekávají nástroje jako hashcat (režim 1000) a Mimikatz.
Protože NTLM předchází moderní návrh hashování hesel, postrádá veškerou ochranu, která byla později vytvořena speciálně pro zpomalení prolamování: žádnou sůl pro jednotlivé uživatele, žádný konfigurovatelný pracovní faktor a žádnou záměrnou iteraci. Jde o jediný průchod MD4, díky čemuž je výpočet extrémně rychlý — vlastnost, která je výhodná pro zpětnou kompatibilitu, ale katastrofální z hlediska odolnosti proti útokům hrubou silou a slovníkovým útokům.
Proč ho používat?
- Ověření, že hash extrahovaný z databáze Windows SAM, dumpu NTDS.dit nebo exportu z Active Directory odpovídá očekávané hodnotě během autorizovaného bezpečnostního testování.
- Potvrzení vašeho porozumění algoritmu MS-NLMP nebo kontrola hashe vygenerovaného vlastním kódem oproti známě správné implementaci.
- Generování NTLM hashů pro hashcat (`-m 1000`) nebo testování slovníků John the Ripper v laboratoři nebo prostředí CTF, k jehož útoku máte oprávnění.
- Křížová kontrola výstupu Mimikatz nebo jiných pentestingových nástrojů během legitimních red-team akcí nebo auditů přihlašovacích údajů.
- 100% lokálně: váš vstup nikdy neopustí prohlížeč, takže je bezpečné jej použít i pro citlivé přihlašovací údaje v rámci autorizovaného hodnocení.
Jak se používá
- Zadejte heslo nebo řetězec, který chcete zahashovat, do vstupního pole.
- Klikněte na „Vygenerovat NTLM hash“.
- Přečtěte si 32znakový hexadecimální NTLM hash (výstup velkými písmeny je ve výchozím nastavení zapnutý, což odpovídá tomu, jak jej zobrazuje Windows a většina crackovacích nástrojů — pro malá písmena zaškrtnutí zrušte).
- Klikněte na „Kopírovat“ pro zkopírování hashe do schránky.
Příklad
Vstup
passwordVýstup
8846F7EAEE8FB117AD06BDD830B7586CToto je dobře známý, nezávisle ověřitelný testovací vektor: NTLM hash doslovného řetězce „password“ je vždy 8846F7EAEE8FB117AD06BDD830B7586C. Výstup tohoto nástroje můžete porovnat s jakoukoli jinou správnou implementací NTLM.
NTLM vs. moderní hashování hesel
Tabulka níže zdůrazňuje, proč je NTLM považován za zastaralý pro ochranu nových systémů, ačkoli zůstává zakotven v zastaralé infrastruktuře Windows a Active Directory.
| Vlastnost | NTLM | bcrypt / scrypt / Argon2 |
|---|---|---|
| Základní primitiva | Jediný průchod MD4 | Účelově navržený pomalý hash s nastavitelnou cenou |
| Solení | Žádné — identická hesla se vždy hashují stejně | Jedinečná náhodná sůl pro každé heslo |
| Iterace / protahování | Žádné | Konfigurovatelný pracovní faktor, zvyšitelný v čase |
| Odolnost proti hrubé síle | Velmi slabá — miliardy pokusů/s na moderních GPU | Záměrně nákladné pro každý pokus |
| Kde se stále vyskytuje | Zastaralá autentizace Windows, záložní řešení Active Directory | Nové aplikace, aktuální osvědčené postupy |
Související nástroje
Pokud potřebujete obecný kryptografický hash namísto specifické konstrukce NTLM MD4(UTF-16LE), mohou vám lépe vyhovovat tyto nástroje.
→ Generátor hashů s více algoritmy · Generátor MD5 · Generátor hesel
Časté dotazy
Co přesně je NTLM hash?
Je to ověřovací hodnota hesla, kterou Windows počítá a ukládá pro autentizaci NT LAN Manager, definovaná ve specifikaci Microsoftu MS-NLMP jako MD4(UTF-16LE(password)) — jediný průchod MD4 přes UTF-16 little-endian bajtové kódování hesla. Vždy má 128 bitů a zobrazuje se jako 32 hexadecimálních znaků.
Proč konkrétně UTF-16LE, a ne UTF-8 nebo ASCII?
Windows interně ukládá text jako UTF-16LE od doby, kdy byl navržen NT, takže i hesla jsou takto kódována před hashováním. Každý znak se stane 2 bajty (pořadí bajtů little-endian), včetně obyčejných znaků ASCII jako 'a', které se stanou 0x61 0x00 místo pouhého 0x61. Hashování UTF-8 bajtů stejného řetězce vytváří zcela odlišný, chybný výsledek — to je nejčastější chyba v NTLM implementacích psaných od základu.
Je NTLM dnes bezpečné používat?
Ne, a sám Microsoft doporučuje, kde je to možné, přejít na Kerberos. NTLM nemá sůl, takže identická hesla vždy vytvoří identické hashe napříč všemi uživateli a systémy, což umožňuje vyhledávání pomocí předpočítaných rainbow tabulek. Nemá také žádnou iteraci ani pracovní faktor — jde o jediný nesolený průchod MD4 — takže moderní GPU dokážou proti zachycenému hashi vyzkoušet miliardy pokusů za sekundu. Přežívá především kvůli zpětné kompatibilitě se staršími systémy a aplikacemi Windows.
Jak se NTLM liší od moderního hashování hesel jako bcrypt, scrypt nebo Argon2?
Moderní nástroje pro hashování hesel jsou záměrně pomalé a solené: bcrypt, scrypt i Argon2 přidávají ke každému heslu jedinečnou náhodnou sůl a nastavitelný nákladový faktor, který lze postupem času zvyšovat s rychlejším hardwarem, konkrétně proto, aby bylo prolamování hrubou silou nákladné i ve velkém měřítku. NTLM nedělá ani jedno z toho — byl navržen v éře před tím, než se offline útoky hrubou silou staly reálným modelem hrozby, a je to na něm znát. Přesně proto by NTLM nikdy neměl být použit k ochraně čehokoli navrhovaného dnes; skutečné případy použití tohoto nástroje jsou kompatibilita se stávající infrastrukturou Windows a autorizované bezpečnostní testování, nikoli budování nových systémů.
Jaké je legitimní použití generátoru NTLM hashů?
Ověřování hashů získaných z databáze SAM nebo NTDS.dit během autorizovaného penetračního testu nebo auditu přihlašovacích údajů; kontrola, zda vaše vlastní nástroje nebo skripty správně implementují MS-NLMP; generování testovacích hashů pro kontrolu kompatibility s hashcat (režim 1000) nebo formátem Mimikatz v laboratoři, kterou ovládáte; a řešení cvičení CTF nebo školicích úloh, které výslovně zahrnují NTLM. Použití tohoto nástroje k útoku na účty nebo systémy, které nevlastníte nebo k jejichž testování nemáte písemné oprávnění, není legitimní použití.
Je moje heslo nebo vstup odesíláno na server?
Ne. Výpočet MD4 probíhá zcela v JavaScriptu ve vašem prohlížeči — pro MD4 neexistuje žádné nativní rozhraní API prohlížeče, takže je implementováno přímo v klientském kódu této stránky, a nic, co napíšete, se nikam nepřenáší.