Бұл құрал не істейді?
NTLM (NT LAN Manager) — Microsoft-тың мұрагерлік challenge-response аутентификация протоколы, ол бүгінгі күні жергілікті Windows тіркелгісіне кіру үшін және көптеген Active Directory орталарында резервтік нұсқа ретінде әлі де қолданылады. Оның құпия сөз тексергіші — әдетте "NTLM хеші" деп аталады — Microsoft-тың өз MS-NLMP протокол спецификациясында `MD4(UTF-16-LE(password))` ретінде анықталған: құпия сөз алдымен UTF-16 little-endian форматында кодталады (сонда әрбір символ 2 байтқа айналады, UTF-8-ден өзгеше), содан кейін осы байт тізбегі RFC 1320-дегі MD4 алгоритмімен бір рет хештеледі.
UTF-16LE қадамы — NTLM-ді қайта жасауда адамдар көбіне қателесетін бөлшек: жолдың UTF-16LE байттарының орнына UTF-8 байттарын хештеу мүлдем басқа, дұрыс емес дайджест береді, тіпті көрінетін мәтін бірдей болып көрінсе де. Бұл құрал дұрыс кодтайды, сондықтан оның нәтижесі Windows өзі сақтайтын нәрсеге және hashcat (mode 1000) пен Mimikatz сияқты құралдар күтетін нәрсеге сәйкес келеді.
NTLM заманауи құпия сөз хештеу дизайнынан бұрын пайда болғандықтан, оның кейінірек арнайы бұзуды баяулату үшін жасалған қорғаныстарының ешқайсысы жоқ: пайдаланушыға тән тұз жоқ, реттелетін жұмыс факторы жоқ, әдейі қайталау жоқ. Бұл бір MD4 өтуі, бұл оны есептеуді өте жылдам етеді — бұл қасиет мұрагерлік үйлесімділік үшін ыңғайлы, бірақ дөрекі күш пен сөздік шабуылдарға қарсы тұру үшін апатты.
Оны неге пайдалану керек?
- Windows SAM дерекқорынан, NTDS.dit дампынан немесе Active Directory экспортынан алынған хештің рұқсат етілген қауіпсіздік тестілеуі кезінде күтілетін мәнге сәйкес келетінін тексеріңіз.
- MS-NLMP алгоритмі туралы түсінігіңізді растаңыз немесе өз кодыңыз шығарған хешті белгілі дұрыс іске асырумен салыстырыңыз.
- Сізге шабуыл жасауға рұқсат етілген зертханада немесе CTF ортасында hashcat (`-m 1000`) немесе John the Ripper сөздік тестілеуі үшін NTLM хештерін жасаңыз.
- Заңды қызыл команда немесе тіркелгі деректерін аудиттеу тапсырмалары кезінде Mimikatz немесе басқа пентестинг құралының шығысын айқас тексеріңіз.
- 100% жергілікті: сіздің енгізуіңіз браузерден ешқашан шықпайды, сондықтан оны рұқсат етілген бағалау кезінде сезімтал тіркелгі деректері үшін де пайдалану қауіпсіз.
Оны қалай пайдалану керек
- Хештегіңіз келетін құпия сөзді немесе жолды енгізу өрісіне теріңіз.
- "Generate NTLM Hash" түймесін басыңыз.
- 32 таңбалы он алтылық NTLM хешін оқыңыз (үлкен әріптермен шығыс әдепкі бойынша қосулы, бұл Windows пен көптеген бұзу құралдарының көрсету тәсіліне сәйкес келеді — кіші әріптер үшін құсбелгіні алып тастаңыз).
- Хешті алмасу буферіне көшіру үшін "Copy" түймесін басыңыз.
Мысал
Енгізу
passwordНәтиже
8846F7EAEE8FB117AD06BDD830B7586CБұл жақсы белгілі, тәуелсіз тексерілетін тест векторы: "password" деген сөзбе-сөз жолдың NTLM хеші әрқашан 8846F7EAEE8FB117AD06BDD830B7586C болады. Бұл құралдың шығысын кез келген басқа дұрыс NTLM іске асыруымен салыстырып тексере аласыз.
NTLM және заманауи құпия сөз хештеу
Төмендегі кесте NTLM ескі Windows және Active Directory инфрақұрылымына сіңіп қалғанына қарамастан, жаңа жүйелерді қорғау үшін неге ескірген деп саналатынын көрсетеді.
| Қасиет | NTLM | bcrypt / scrypt / Argon2 |
|---|---|---|
| Негізгі примитив | Бір MD4 өтуі | Реттелетін құнмен арнайы жасалған баяу хеш |
| Тұздау | Жоқ — бірдей құпия сөздер әрқашан бірдей хешталады | Әр құпия сөзге бірегей кездейсоқ тұз |
| Қайталау / созу | Жоқ | Уақыт өте келе арттырылатын реттелетін жұмыс факторы |
| Дөрекі күшке төзімділік | Өте әлсіз — заманауи GPU-ларда секундына миллиардтаған болжам | Әрбір болжамға әдейі қымбат |
| Әлі де кездесетін жерлер | Мұрагерлік Windows аутентификациясы, Active Directory резерві | Жаңа қолданбалар, қазіргі үздік тәжірибе |
Байланысты құралдар
Егер сізге NTLM-ге тән MD4(UTF-16LE) құрылымының орнына жалпы мақсаттағы криптографиялық хеш қажет болса, бұл құралдар жақсырақ сәйкес келуі мүмкін.
→
Жиі қойылатын сұрақтар
NTLM хеші дәл не?
Бұл Windows-тың NT LAN Manager аутентификациясы үшін есептейтін және сақтайтын құпия сөз тексергіші, Microsoft-тың MS-NLMP спецификациясында MD4(UTF-16LE(password)) ретінде анықталған — құпия сөздің UTF-16 little-endian байт кодтауы бойынша бір MD4 өтуі. Ол әрқашан 128 бит, 32 он алтылық таңба ретінде көрсетіледі.
Неге нақты UTF-16LE, ал UTF-8 немесе ASCII емес?
Windows NT жобаланғаннан бері мәтінді ішкі жағынан UTF-16LE форматында сақтап келеді, сондықтан құпия сөздер де хештеуден бұрын осылай кодталады. Әрбір символ 2 байтқа айналады (little-endian байт реті), соның ішінде 'a' сияқты қарапайым ASCII символдары да, олар жай 0x61 емес, 0x61 0x00 болады. Сол жолдың UTF-8 байттарын хештеу мүлдем басқа, дұрыс емес нәтиже береді — бұл нөлден жасалған NTLM іске асыруларындағы ең көп таралған қате.
NTLM бүгінде пайдалану үшін қауіпсіз бе?
Жоқ, және Microsoft-тың өзі мүмкіндігінше Kerberos-қа көшуді ұсынады. NTLM-де тұз жоқ, сондықтан бірдей құпия сөздер әрбір пайдаланушы мен әрбір жүйеде әрқашан бірдей хештер шығарады, бұл алдын ала есептелген rainbow-table іздеулерін мүмкін етеді. Оның сонымен қатар қайталауы немесе жұмыс факторы жоқ — бір тұзсыз MD4 өтуі — сондықтан заманауи GPU-лар алынған хешке қарсы секундына миллиардтаған болжам жасай алады. Ол негізінен ескі Windows жүйелері мен қолданбаларымен үйлесімділік үшін сақталған.
NTLM bcrypt, scrypt немесе Argon2 сияқты заманауи құпия сөз хештеуден қалай ерекшеленеді?
Заманауи құпия сөз хештегіштер әдейі баяу және тұзды жасалған: bcrypt, scrypt және Argon2 әрқайсысы әр құпия сөзге бірегей кездейсоқ тұз және аппараттық құрал жылдамдаған сайын уақыт өте келе арттырылатын реттелетін құн факторын қосады, бұл дөрекі күшпен бұзуды тіпті ауқымды түрде де қымбат ету үшін жасалған. NTLM ешнәрсе жасамайды — ол оффлайн дөрекі күш шабуылы практикалық қауіп моделі болмаған дәуірде жасалған, және бұл көрініп тұр. Дәл осы себепті NTLM бүгін жасалған кез келген нәрсені қорғау үшін ешқашан пайдаланылмауы керек; бұл құралдың нақты пайдалану жағдайлары бар Windows инфрақұрылымымен үйлесімділік және рұқсат етілген қауіпсіздік тестілеуі, жаңа жүйелерді құру емес.
NTLM хеш генераторының заңды қолданыстары қандай?
Рұқсат етілген енуді тестілеу немесе тіркелгі деректерін аудиттеу кезінде SAM дерекқорынан немесе NTDS.dit-тен алынған хештерді тексеру; өз құралдарыңыздың немесе скрипттеріңіздің MS-NLMP-ті дұрыс іске асыратынын тексеру; өзіңіз бақылайтын зертханада hashcat (mode 1000) немесе Mimikatz-форматындағы үйлесімділік тексерулері үшін тест хештерін жасау; және NTLM-ді нақты қамтитын CTF немесе оқу жаттығуларымен айналысу. Бұл құралды сізге тиесілі емес немесе жазбаша рұқсаты жоқ есептік жазбаларға немесе жүйелерге шабуыл жасау үшін пайдалану заңды қолданыс емес.
Менің құпия сөзім немесе енгізуім серверге жіберіле ме?
Жоқ. MD4 есептеуі толығымен браузеріңіздегі JavaScript-те орындалады — MD4 үшін жергілікті браузер API-і жоқ, сондықтан ол осы беттің клиент жағындағы кодында тікелей іске асырылған, және сіз терген ешнәрсе ешжерге тасымалданбайды.