Šta je ovaj alat?
NTLM (NT LAN Manager) је Microsoft-ов застарели протокол за аутентификацију типа изазов-одговор, који се и данас користи за локалне пријаве на Windows и као резервно решење у многим Active Directory окружењима. Његов верификатор лозинке — обично назван „NTLM хеш“ — дефинисан је у самој Microsoft-овој спецификацији протокола MS-NLMP као `MD4(UTF-16-LE(password))`: лозинка се прво кодира као UTF-16 little-endian (тако да сваки знак постаје 2 бајта, за разлику од UTF-8), а тај низ бајтова се затим једном хешира алгоритмом MD4 из RFC 1320.
Корак UTF-16LE је детаљ који људи најчешће погрешно спроведу при поновном имплементирању NTLM-а: хеширање UTF-8 бајтова ниске уместо њених UTF-16LE бајтова производи потпуно другачији, погрешан отисак, иако видљив текст изгледа идентично. Овај алат исправно кодира, тако да се његов излаз поклапа са оним што сам Windows чува и оним што очекују алати попут hashcat (режим 1000) и Mimikatz.
Пошто NTLM претходи модерном дизајну хеширања лозинки, нема ниједну од заштита које су касније направљене посебно да успоре разбијање: нема соли по кориснику, нема подесивог фактора рада и нема намерне итерације. Реч је о једном пролазу MD4, што га чини изузетно брзим за израчунавање — особина која је погодна за компатибилност са старијим системима, али катастрофална за отпорност на нападе грубом силом и речничке нападе.
Zašto ga koristiti?
- Проверите да ли се хеш извучен из Windows SAM базе, NTDS.dit дампа или Active Directory извоза поклапа са очекиваном вредношћу током овлашћеног безбедносног тестирања.
- Потврдите своје разумевање алгоритма MS-NLMP, или проверите хеш који је произвео ваш сопствени код, у односу на познато исправну имплементацију.
- Генеришите NTLM хешеве за hashcat (`-m 1000`) или тестирање речника у John the Ripper у лабораторији или CTF окружењу за чији напад имате овлашћење.
- Унакрсно проверите излаз Mimikatz или других pentesting алата током легитимних red-team или ревизијских пројеката приступних података.
- 100% локално: ваш унос никада не напушта прегледач, тако да је безбедно за коришћење чак и за осетљив материјал приступних података у овлашћеној процени.
Kako se koristi
- Унесите лозинку или ниску коју желите да хеширате у поље за унос.
- Кликните на „Generate NTLM Hash“.
- Прочитајте 32-знаковни хексадецимални NTLM хеш (излаз великим словима је подразумевано укључен, што одговара начину на који га приказују Windows и већина алата за разбијање — искључите поље за мала слова).
- Кликните на „Copy“ да бисте копирали хеш у клипборд.
Primer
Unos
passwordRezultat
8846F7EAEE8FB117AD06BDD830B7586CОво је добро познат, независно проверљив тест-вектор: NTLM хеш дословне ниске „password“ увек је 8846F7EAEE8FB117AD06BDD830B7586C. Излаз овог алата можете проверити у односу на било коју другу исправну NTLM имплементацију.
NTLM у поређењу са модерним хеширањем лозинки
Табела испод истиче зашто се NTLM сматра застарелим за заштиту нових система, иако остаје уграђен у старију Windows и Active Directory инфраструктуру.
| Особина | NTLM | bcrypt / scrypt / Argon2 |
|---|---|---|
| Основни примитив | Један пролаз MD4 | Наменски спор хеш са подесивим трошком |
| Сољење | Нема — идентичне лозинке се увек хеширају идентично | Јединствена насумична со по лозинки |
| Итерација / развлачење | Нема | Подесив фактор рада, могуће повећање временом |
| Отпорност на грубу силу | Врло слаба — милијарде погађања/с на модерним GPU-овима | Намерно скупо по покушају |
| Где се још увек налази | Старија Windows аутентификација, Active Directory резерва | Нове апликације, тренутна најбоља пракса |
Слични алати
Ако вам треба општенаменски криптографски хеш, а не NTLM-специфична конструкција MD4(UTF-16LE), ови алати могу бити боље решење.
→
Često postavljana pitanja
Шта тачно представља NTLM хеш?
То је верификатор лозинке који Windows израчунава и чува за NT LAN Manager аутентификацију, дефинисан у Microsoft-овој MS-NLMP спецификацији као MD4(UTF-16LE(password)) — један пролаз MD4 преко UTF-16 little-endian бајтовног кодирања лозинке. Увек има 128 бита, приказаних као 32 хексадецимална знака.
Зашто баш UTF-16LE, а не UTF-8 или ASCII?
Windows интерно чува текст у UTF-16LE још од дизајна NT-а, тако да се и лозинке кодирају на тај начин пре хеширања. Сваки знак постаје 2 бајта (little-endian редослед бајтова), укључујући обичне ASCII знакове попут 'a', који постају 0x61 0x00 уместо само 0x61. Хеширање UTF-8 бајтова исте ниске производи потпуно другачији, погрешан резултат — ово је најчешћа грешка у NTLM имплементацијама писаним од нуле.
Да ли је NTLM данас безбедно користити?
Не, а и сам Microsoft препоручује прелазак на Kerberos где год је то могуће. NTLM нема со, тако да идентичне лозинке увек производе идентичне хешеве код свих корисника и система, што омогућава претраге помоћу унапред израчунатих rainbow табела. Такође нема итерацију нити фактор рада — један пролаз MD4 без соли — тако да модерни GPU-ови могу да покушају милијарде погађања у секунди против пресретнутог хеша. Опстаје углавном ради компатибилности са старијим Windows системима и апликацијама.
Како се NTLM разликује од модерног хеширања лозинки попут bcrypt, scrypt или Argon2?
Модерни алати за хеширање лозинки су намерно спори и посољени: bcrypt, scrypt и Argon2 сваки додају јединствену насумичну со по лозинки и подесив фактор трошка који се може повећавати временом како хардвер постаје бржи, управо да би напад грубом силом учинили скупим чак и у великим размерама. NTLM не ради ниједно од тога — дизајниран је у ери пре него што је офлајн напад грубом силом постао практичан модел претње, и то се примећује. Управо зато се NTLM никада не сме користити за заштиту било чега дизајнираног данас; стварни случајеви употребе овог алата су компатибилност са постојећом Windows инфраструктуром и овлашћено безбедносно тестирање, а не изградња нових система.
Које су легитимне употребе генератора NTLM хешева?
Провера хешева извучених из SAM базе или NTDS.dit током овлашћеног penetration теста или ревизије приступних података; провера да ли ваш сопствени алат или скрипта исправно имплементира MS-NLMP; генерисање тест хешева за hashcat (режим 1000) или провере компатибилности Mimikatz формата у лабораторији коју контролишете; и решавање CTF или тренинг вежби које изричито укључују NTLM. Коришћење овог алата за напад на налоге или системе које не поседујете или за чије тестирање немате писано овлашћење није легитимна употреба.
Да ли се моја лозинка или унос шаљу на сервер?
Не. Израчунавање MD4 се у потпуности одвија у JavaScript-у у вашем прегледачу — не постоји нативни API прегледача за MD4, тако да је имплементиран директно у клијентском коду ове странице, и ништа што унесете се нигде не преноси.