Mi ez az eszköz?
Az NTLM (NT LAN Manager) a Microsoft elavult kihívás-válasz alapú hitelesítési protokollja, amelyet ma is használnak a helyi Windows-fiókokba való bejelentkezéshez, és számos Active Directory környezetben tartalék megoldásként. Jelszó-ellenőrzőjét — köznapi nevén „NTLM hash” — a Microsoft saját MS-NLMP protokollspecifikációja `MD4(UTF-16-LE(password))`-ként határozza meg: a jelszót először UTF-16 little-endian formátumban kódolják (így minden karakter 2 bájt lesz, ellentétben az UTF-8-cal), majd ezt a bájtsorozatot egyszer hasheli az RFC 1320-ból származó MD4 algoritmus.
Az UTF-16LE lépés az a részlet, amit a legtöbben elrontanak az NTLM újraimplementálásakor: egy karakterlánc UTF-8 bájtjainak hashelése az UTF-16LE bájtok helyett teljesen más, hibás lenyomatot eredményez, még akkor is, ha a látható szöveg azonosnak tűnik. Ez az eszköz helyesen kódol, így a kimenete megegyezik azzal, amit maga a Windows tárol, és amit az olyan eszközök várnak, mint a hashcat (1000-es mód) és a Mimikatz.
Mivel az NTLM megelőzi a modern jelszó-hashelési tervezést, egyáltalán nem rendelkezik azokkal a védelmekkel, amelyeket később kifejezetten a feltörés lassítására építettek: nincs felhasználónkénti só, nincs konfigurálható munkatényező, és nincs szándékos iteráció. Egyetlen MD4 lépésről van szó, ami rendkívül gyorssá teszi a kiszámítását — ez a tulajdonság kényelmes a régi rendszerekkel való kompatibilitáshoz, de katasztrofális a brute-force és szótári támadásokkal szembeni ellenálláshoz.
Miért érdemes használni?
- Ellenőrizze, hogy egy Windows SAM adatbázisból, NTDS.dit dumpból vagy Active Directory exportból kinyert hash megegyezik-e a várt értékkel egy engedélyezett biztonsági teszt során.
- Erősítse meg az MS-NLMP algoritmus megértését, vagy ellenőrizze a saját kódja által generált hash-t egy ismerten helyes implementációval szemben.
- Generáljon NTLM hash-eket a hashcat (`-m 1000`) vagy a John the Ripper szótáras teszteléséhez egy olyan labor- vagy CTF-környezetben, amelynek megtámadására fel van hatalmazva.
- Végezzen kereszt-ellenőrzést a Mimikatz vagy más pentesztelő eszközök kimenetén legitim red-team vagy hitelesítő-adat auditáló megbízások során.
- 100%-ban helyi: a bemenete soha nem hagyja el a böngészőt, így biztonságosan használható még érzékeny hitelesítő adatokhoz is egy engedélyezett felmérés keretében.
Használati útmutató
- Írja be a hashelni kívánt jelszót vagy karakterláncot a beviteli mezőbe.
- Kattintson az „NTLM hash generálása” gombra.
- Olvassa el a 32 karakteres hexadecimális NTLM hash-t (a nagybetűs kimenet alapértelmezés szerint be van kapcsolva, ami megfelel annak, ahogy a Windows és a legtöbb feltörő eszköz megjeleníti — vegye ki a jelölést a kisbetűs megjelenítéshez).
- Kattintson a „Másolás” gombra a hash vágólapra másolásához.
Példa
Bemenet
passwordKimenet
8846F7EAEE8FB117AD06BDD830B7586CEz egy jól ismert, függetlenül ellenőrizhető tesztvektor: a „password” szó szerinti karakterlánc NTLM hash-e mindig 8846F7EAEE8FB117AD06BDD830B7586C. Ellenőrizheti ennek az eszköznek a kimenetét bármely más helyes NTLM implementációval szemben.
NTLM vs. modern jelszó-hashelés
Az alábbi táblázat kiemeli, hogy az NTLM miért tekinthető elavultnak új rendszerek védelméhez, még akkor is, ha továbbra is beépülve marad a régi Windows és Active Directory infrastruktúrákba.
| Tulajdonság | NTLM | bcrypt / scrypt / Argon2 |
|---|---|---|
| Alapvető primitíva | Egyetlen MD4 lépés | Célzottan lassúra tervezett hash állítható költséggel |
| Sózás | Nincs — az azonos jelszavak mindig azonosan hashelődnek | Jelszavanként egyedi, véletlenszerű só |
| Iteráció / nyújtás | Nincs | Konfigurálható munkatényező, idővel növelhető |
| Brute-force ellenállás | Nagyon gyenge — milliárd próbálkozás/mp modern GPU-kon | Szándékosan drága próbálkozásonként |
| Hol található még | Régi Windows hitelesítés, Active Directory tartalék | Új alkalmazások, jelenlegi legjobb gyakorlat |
Kapcsolódó eszközök
Ha általános célú kriptográfiai hash-re van szüksége az NTLM-specifikus MD4(UTF-16LE) konstrukció helyett, ezek az eszközök jobban megfelelhetnek.
→ Több algoritmusos hash generátor · MD5 generátor · Jelszógenerátor
Gyakori kérdések
Pontosan mi az az NTLM hash?
Ez az a jelszó-ellenőrző, amelyet a Windows kiszámít és tárol az NT LAN Manager hitelesítéshez, a Microsoft MS-NLMP specifikációjában MD4(UTF-16LE(password))-ként meghatározva — egyetlen MD4 lépés a jelszó UTF-16 little-endian bájtkódolásán. Mindig 128 bites, 32 hexadecimális karakterként jelenik meg.
Miért pont UTF-16LE, és nem UTF-8 vagy ASCII?
A Windows a szöveget belsőleg UTF-16LE formátumban tárolja az NT tervezése óta, ezért a jelszavakat is így kódolják hashelés előtt. Minden karakter 2 bájt lesz (little-endian bájtsorrend), beleértve az egyszerű ASCII karaktereket, mint az 'a', amelyek 0x61 0x00-vá válnak, nem csupán 0x61-gyé. Ugyanannak a karakterláncnak az UTF-8 bájtjainak hashelése teljesen más, hibás eredményt ad — ez a leggyakoribb hiba a nulláról írt NTLM implementációkban.
Biztonságos-e ma az NTLM használata?
Nem, és maga a Microsoft is azt javasolja, hogy ahol lehetséges, térjenek át a Kerberosra. Az NTLM nem használ sót, így az azonos jelszavak mindig azonos hash-eket eredményeznek minden felhasználónál és rendszeren, ami lehetővé teszi az előre kiszámított rainbow tábla alapú kereséseket. Nincs iterációja vagy munkatényezője sem — egyetlen só nélküli MD4 lépésről van szó —, így a modern GPU-k másodpercenként milliárdnyi próbálkozást tudnak végezni egy megszerzett hash ellen. Elsősorban a régebbi Windows rendszerekkel és alkalmazásokkal való kompatibilitás miatt marad fenn.
Miben különbözik az NTLM a modern jelszó-hasheléstől, mint a bcrypt, scrypt vagy Argon2?
A modern jelszó-hashelő eszközök szándékosan lassúak és sózottak: a bcrypt, a scrypt és az Argon2 mindegyike jelszavanként egyedi, véletlenszerű sót és állítható költségtényezőt ad hozzá, amelyet idővel növelni lehet, ahogy a hardver gyorsabbá válik, kifejezetten azért, hogy a brute-force támadás nagy léptékben is drága legyen. Az NTLM egyiket sem teszi — abban a korban tervezték, mielőtt az offline brute-force gyakorlati fenyegetési modellé vált volna, és ez meg is látszik rajta. Pontosan ezért az NTLM-et soha nem szabad felhasználni bármi ma tervezett dolog védelmére; ennek az eszköznek a valódi felhasználási esetei a meglévő Windows infrastruktúrával való kompatibilitás és az engedélyezett biztonsági tesztelés, nem pedig új rendszerek építése.
Melyek az NTLM hash generátor legitim felhasználási módjai?
Egy SAM adatbázisból vagy NTDS.dit-ből kinyert hash-ek ellenőrzése egy engedélyezett penetrációs teszt vagy hitelesítő-adat audit során; annak ellenőrzése, hogy a saját eszközei vagy szkriptjei helyesen valósítják-e meg az MS-NLMP-t; teszt hash-ek generálása a hashcat (1000-es mód) vagy a Mimikatz formátumú kompatibilitás-ellenőrzésekhez egy Ön által irányított laborkörnyezetben; valamint CTF vagy oktatási gyakorlatok megoldása, amelyek kifejezetten NTLM-et érintenek. Ennek az eszköznek olyan fiókok vagy rendszerek megtámadására való felhasználása, amelyek nem az önéi, vagy amelyek tesztelésére nincs írásos felhatalmazása, nem tekinthető legitim felhasználásnak.
Elküldi a jelszavamat vagy a bemenetemet egy szerverre?
Nem. Az MD4 számítás teljes egészében JavaScriptben fut a böngészőjében — nincs natív böngésző API az MD4-hez, ezért közvetlenül ennek az oldalnak a kliensoldali kódjában van megvalósítva, és semmi, amit beír, nem kerül továbbításra sehova.