Kas yra šis įrankis?
NTLM (NT LAN Manager) yra pasenęs „Microsoft“ iššūkio-atsako autentifikavimo protokolas, vis dar naudojamas šiandien vietinėms „Windows“ paskyrų prisijungimams ir kaip atsarginis variantas daugelyje Active Directory aplinkų. Jo slaptažodžio tikrintuvas — dažniausiai vadinamas „NTLM maiša“ — apibrėžtas „Microsoft“ MS-NLMP protokolo specifikacijoje kaip `MD4(UTF-16-LE(password))`: slaptažodis pirmiausia užkoduojamas UTF-16 little-endian formatu (taigi kiekvienas simbolis tampa 2 baitais, skirtingai nei UTF-8), o ta baitų seka tada vieną kartą apmaišoma MD4 algoritmu iš RFC 1320.
UTF-16LE žingsnis yra detalė, kurią dauguma žmonių supainioja iš naujo įgyvendindami NTLM: eilutės UTF-8 baitų maišymas vietoj jos UTF-16LE baitų sukuria visiškai kitokią, neteisingą santrauką, net jei matomas tekstas atrodo identiškas. Šis įrankis koduoja teisingai, todėl jo išvestis atitinka tai, ką pati „Windows“ saugo, ir tai, ko tikisi tokie įrankiai kaip hashcat (režimas 1000) ir Mimikatz.
Kadangi NTLM atsirado anksčiau nei šiuolaikinis slaptažodžių maišos dizainas, jis neturi jokių apsaugų, vėliau specialiai sukurtų sulėtinti nulaužimą: jokios sūdymo pagal vartotoją, jokio konfigūruojamo darbo koeficiento ir jokios tyčinės iteracijos. Tai vienas MD4 prasukimas, todėl jį apskaičiuoti itin greita — savybė, patogi suderinamumui su senomis sistemomis, bet katastrofiška atsparumui grubios jėgos ir žodyno atakoms.
Kodėl jį naudoti?
- Patikrinti, ar iš „Windows“ SAM duomenų bazės, NTDS.dit išklotinės ar Active Directory eksporto ištraukta maiša atitinka tikėtiną reikšmę autorizuoto saugumo testavimo metu.
- Patvirtinti savo MS-NLMP algoritmo supratimą arba patikrinti savo paties kodo sugeneruotą maišą su žinomai teisinga realizacija.
- Generuoti NTLM maišas hashcat (`-m 1000`) arba John the Ripper žodyno testavimui laboratorijoje ar CTF aplinkoje, kurią esate įgalioti pulti.
- Kryžmiškai patikrinti Mimikatz ar kitų pentesting įrankių išvestį teisėtų red-team ar prisijungimo duomenų audito užduočių metu.
- 100% vietinis: jūsų įvestis niekada nepalieka naršyklės, todėl saugu naudoti net jautriai autentifikavimo medžiagai autorizuoto vertinimo metu.
Kaip naudoti
- Įveskite slaptažodį ar eilutę, kurią norite apmaišyti, į įvesties lauką.
- Spustelėkite „Generuoti NTLM maišą“.
- Perskaitykite 32 simbolių šešioliktainę NTLM maišą (didžiųjų raidžių išvestis įjungta pagal numatytuosius nustatymus, atitinkanti tai, kaip ją rodo „Windows“ ir dauguma nulaužimo įrankių — atžymėkite langelį, jei norite mažųjų raidžių).
- Spustelėkite „Kopijuoti“, kad nukopijuotumėte maišą į iškarpinę.
Pavyzdys
Įvestis
passwordIšvestis
8846F7EAEE8FB117AD06BDD830B7586CTai gerai žinomas, nepriklausomai patikrinamas testinis vektorius: eilutės „password“ NTLM maiša visada yra 8846F7EAEE8FB117AD06BDD830B7586C. Galite palyginti šio įrankio išvestį su bet kuria kita teisinga NTLM realizacija.
NTLM prieš šiuolaikinį slaptažodžių maišymą
Toliau pateikta lentelė parodo, kodėl NTLM laikomas pasenusiu naujoms sistemoms apsaugoti, nors jis vis dar įtvirtintas senoje „Windows“ ir Active Directory infrastruktūroje.
| Savybė | NTLM | bcrypt / scrypt / Argon2 |
|---|---|---|
| Pagrindinė primityva | Vienas MD4 prasukimas | Specialiai sukurta lėta maiša su derinama kaina |
| Sūdymas | Nėra — identiški slaptažodžiai visada apmaišomi identiškai | Unikali atsitiktinė sūdymo reikšmė kiekvienam slaptažodžiui |
| Iteracija / tempimas | Nėra | Konfigūruojamas darbo koeficientas, didinamas laikui bėgant |
| Atsparumas grubios jėgos atakoms | Labai silpnas — milijardai spėjimų/sek. šiuolaikinėse GPU | Tyčia brangus kiekvienam spėjimui |
| Kur vis dar naudojamas | Sena „Windows“ autentifikacija, Active Directory atsarginis variantas | Naujos programos, dabartinė geriausia praktika |
Susiję įrankiai
Jei jums reikia bendros paskirties kriptografinės maišos, o ne NTLM specifinės MD4(UTF-16LE) konstrukcijos, šie įrankiai gali geriau tikti.
→ Kelių algoritmų maišos generatorius · MD5 generatorius · Slaptažodžių generatorius
Dažniausiai užduodami klausimai
Kas tiksliai yra NTLM maiša?
Tai slaptažodžio tikrintuvas, kurį „Windows“ apskaičiuoja ir saugo NT LAN Manager autentifikavimui, apibrėžtas „Microsoft“ MS-NLMP specifikacijoje kaip MD4(UTF-16LE(password)) — vienas MD4 prasukimas per slaptažodžio UTF-16 little-endian baitų koduotę. Ji visada yra 128 bitų, rodoma kaip 32 šešioliktainiai simboliai.
Kodėl būtent UTF-16LE, o ne UTF-8 ar ASCII?
„Windows“ tekstą viduje saugo UTF-16LE formatu nuo pat NT sukūrimo, todėl slaptažodžiai prieš maišymą taip pat koduojami šiuo būdu. Kiekvienas simbolis tampa 2 baitais (little-endian baitų tvarka), įskaitant paprastus ASCII simbolius, pavyzdžiui, 'a', kurie tampa 0x61 0x00 vietoj vien tik 0x61. Tos pačios eilutės UTF-8 baitų maišymas sukuria visiškai kitokį, neteisingą rezultatą — tai dažniausia klaida nuo nulio kuriamuose NTLM realizacijose.
Ar NTLM šiandien saugu naudoti?
Ne, ir pati „Microsoft“ rekomenduoja pereiti prie Kerberos ten, kur įmanoma. NTLM neturi sūdymo, todėl identiški slaptažodžiai visada sukuria identiškas maišas kiekvienam vartotojui ir kiekvienoje sistemoje, tai leidžia naudoti iš anksto apskaičiuotas vaivorykštės lentelių paieškas. Jis taip pat neturi iteracijos ar darbo koeficiento — vienas nesūdytas MD4 prasukimas — todėl šiuolaikinės GPU gali bandyti milijardus spėjimų per sekundę prieš pagautą maišą. Ji išlieka daugiausia dėl suderinamumo su senesnėmis „Windows“ sistemomis ir programomis.
Kuo NTLM skiriasi nuo šiuolaikinio slaptažodžių maišymo, tokio kaip bcrypt, scrypt ar Argon2?
Šiuolaikiniai slaptažodžių maišos įrankiai yra tyčia lėti ir sūdyti: bcrypt, scrypt ir Argon2 kiekvienas prideda unikalią atsitiktinę sūdymo reikšmę kiekvienam slaptažodžiui ir derinamą kainos koeficientą, kurį galima didinti laikui bėgant įrangai spartėjant, būtent tam, kad grubios jėgos atakos taptų brangios net dideliu mastu. NTLM nedaro nė vieno iš to — jis buvo sukurtas eroje prieš tai, kai neprisijungus vykdoma grubios jėgos ataka tapo praktine grėsmės modeliu, ir tai matosi. Būtent todėl NTLM niekada neturėtų būti naudojamas apsaugoti bet ką, kas kuriama šiandien; realūs šio įrankio naudojimo atvejai yra suderinamumas su esama „Windows“ infrastruktūra ir autorizuotas saugumo testavimas, o ne naujų sistemų kūrimas.
Kokie yra teisėti NTLM maišos generatoriaus naudojimo atvejai?
Patikrinti iš SAM duomenų bazės ar NTDS.dit ištrauktas maišas autorizuoto skverbties testo ar prisijungimo duomenų audito metu; patikrinti, ar jūsų pačių įrankiai ar scenarijai teisingai realizuoja MS-NLMP; generuoti testines maišas hashcat (režimas 1000) ar Mimikatz formato suderinamumo patikroms jūsų valdomoje laboratorijoje; ir spręsti CTF ar mokymo pratybas, kurios aiškiai susijusios su NTLM. Šio įrankio naudojimas pulti paskyras ar sistemas, kurių nevaldote arba neturite rašytinio leidimo testuoti, nėra teisėtas naudojimas.
Ar mano slaptažodis ar įvestis siunčiami į serverį?
Ne. MD4 skaičiavimas visiškai vykdomas JavaScript kalba jūsų naršyklėje — nėra jokios natyvios naršyklės API MD4, todėl jis realizuotas tiesiogiai šio puslapio kliento pusės kode, ir niekas, ką įvedate, niekur neperduodama.