CodeKitHub
კოდირების ხელსაწყოები

NTLM Hash Generator

ბოლოს განახლდა:

NTLM ჰეში გამოითვლება თქვენი შეყვანილი მონაცემის UTF-16LE-ად კოდირებით (2 ბაიტი სიმბოლოზე, little-endian) და შემდეგ MD4 შეტყობინების დაიჯესტის ალგორითმში გატარებით — ეს ერთჯერადი, უმარილო ოპერაცია არის მთელი NTLM ჰეშირების სქემა, რომელსაც Microsoft Windows იყენებს NT 4.0-დან მოყოლებული პაროლის ვერიფიკატორების შესანახად. ეს ხელსაწყო ამ ზუსტ გამოთვლას ასრულებს ლოკალურად, თქვენს ბრაუზერში, მთლიანად JavaScript-ში, ასე რომ თქვენ მიერ აკრეფილი არაფერი არასდროს იგზავნება სერვერზე. ის არსებობს კანონიერი უსაფრთხოების სამუშაოსთვის — Active Directory ჰეშ ექსპორტების გადამოწმებისთვის, hashcat ან Mimikatz გამომავალი ფორმატების შემოწმებისთვის, ან CTF და პენტესტინგ-ლაბორატორიის გამოწვევებზე მუშაობისთვის — და არა თქვენს არარსებული ან ავტორიზაციის გარეშე ტესტირებადი ანგარიშების შესატევად.

NTLM Hash

რა არის ეს ხელსაწყო?

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 (mode 1000) და Mimikatz, ელოდება.

იმის გამო, რომ NTLM წინ უსწრებდა თანამედროვე პაროლის ჰეშირების დიზაინს, მას არ გააჩნია არცერთი დაცვა, რომელიც მოგვიანებით სპეციალურად აშენდა გატეხვის შესანელებლად: არანაირი მომხმარებელ-სპეციფიკური მარილი, არანაირი კონფიგურირებადი სამუშაო ფაქტორი და არანაირი განზრახული იტერაცია. ეს არის ერთი MD4 გავლა, რაც მას ძალიან სწრაფად გამოსათვლელს ხდის — თვისება, რომელიც მოსახერხებელია მემკვიდრეობითი თავსებადობისთვის, მაგრამ კატასტროფული — უხეში ძალით და ლექსიკონური შეტევებისადმი წინააღმდეგობისთვის.

რატომ გამოვიყენო ის?

  • გადაამოწმეთ, რომ Windows SAM მონაცემთა ბაზიდან, NTDS.dit დამპიდან ან Active Directory ექსპორტიდან ამოღებული ჰეში ემთხვევა მოსალოდნელ მნიშვნელობას ავტორიზებული უსაფრთხოების ტესტირების დროს.
  • დაადასტურეთ MS-NLMP ალგორითმის თქვენი გაგება, ან შეამოწმეთ თქვენი საკუთარი კოდის მიერ წარმოებული ჰეში ცნობილად სწორ იმპლემენტაციასთან.
  • დააგენერირეთ NTLM ჰეშები hashcat-ისთვის (`-m 1000`) ან John the Ripper-ის ლექსიკონის ტესტირებისთვის ლაბორატორიაში ან CTF გარემოში, რომლის შეტევაზეც ავტორიზებული ხართ.
  • გადაამოწმეთ Mimikatz-ის ან სხვა პენტესტინგ ხელსაწყოს გამოსავალი კანონიერი წითელი გუნდის ან სერტიფიკატების აუდიტის დავალებების დროს.
  • 100% ლოკალური: თქვენი შეყვანილი მონაცემი არასდროს ტოვებს ბრაუზერს, ამიტომ უსაფრთხოა მისი გამოყენება მგრძნობიარე სერტიფიკატის მასალისთვისაც კი ავტორიზებული შეფასების დროს.

როგორ გამოვიყენო

  1. აკრიფეთ პაროლი ან სტრიქონი, რომლის ჰეშირებაც გსურთ, შეყვანის ველში.
  2. დააჭირეთ „Generate NTLM Hash“-ს.
  3. წაიკითხეთ 32-სიმბოლოიანი თექვსმეტობითი NTLM ჰეში (დიდი ასოებით გამოსავალი ნაგულისხმევად ჩართულია, რაც შეესაბამება იმას, თუ როგორ აჩვენებს მას Windows და გატეხვის უმეტესი ხელსაწყოები — მოხსენით მონიშვნა პატარა ასოებისთვის).
  4. დააჭირეთ „Copy“-ს ჰეშის ბუფერში დასაკოპირებლად.

მაგალითი

შეყვანა

password

შედეგი

8846F7EAEE8FB117AD06BDD830B7586C

ეს არის კარგად ცნობილი, დამოუკიდებლად გადამოწმებადი სატესტო ვექტორი: სტრიქონ „password“-ის NTLM ჰეში ყოველთვის არის 8846F7EAEE8FB117AD06BDD830B7586C. შეგიძლიათ შეადაროთ ამ ხელსაწყოს გამოსავალი ნებისმიერ სხვა სწორ NTLM იმპლემენტაციას.

NTLM და თანამედროვე პაროლის ჰეშირება

ქვემოთ მოცემული ცხრილი გამოკვეთს, თუ რატომ ითვლება NTLM მოძველებულად ახალი სისტემების დასაცავად, მიუხედავად იმისა, რომ ის კვლავ ჩართულია მემკვიდრეობით Windows და Active Directory ინფრასტრუქტურაში.

თვისებაNTLMbcrypt / scrypt / Argon2
ძირითადი პრიმიტივიერთი MD4 გავლასპეციალურად აშენებული ნელი ჰეში მორგებადი ღირებულებით
მარილირებაარცერთი — იდენტური პაროლები ყოველთვის ერთნაირად ჰეშირდებაუნიკალური შემთხვევითი მარილი თითოეულ პაროლზე
იტერაცია / გაწელვაარცერთიკონფიგურირებადი სამუშაო ფაქტორი, ზრდადი დროთა განმავლობაში
წინააღმდეგობა უხეში ძალის მიმართძალიან სუსტი — მილიარდობით ცდა წამში თანამედროვე GPU-ებზეგანზრახ ძვირი თითოეული ცდისთვის
სად გვხვდება ჯერ კიდევმემკვიდრეობითი Windows ავთენტიფიკაცია, Active Directory სათადარიგო ვარიანტიახალი აპლიკაციები, ამჟამინდელი საუკეთესო პრაქტიკა

დაკავშირებული ხელსაწყოები

თუ გჭირდებათ ზოგადი დანიშნულების კრიპტოგრაფიული ჰეში და არა NTLM-სპეციფიკური MD4(UTF-16LE) კონსტრუქცია, ეს ხელსაწყოები შეიძლება უკეთესად მოგერგოთ.

ხშირად დასმული კითხვები

რა არის ზუსტად 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-table ძებნებს. მას ასევე არ აქვს იტერაცია ან სამუშაო ფაქტორი — ერთი უმარილო MD4 გავლა — ამიტომ თანამედროვე GPU-ებს შეუძლიათ მილიარდობით ცდას სცადონ წამში დაჭერილი ჰეშის წინააღმდეგ. ის გადარჩება ძირითადად ძველ Windows სისტემებთან და აპლიკაციებთან თავსებადობისთვის.

როგორ განსხვავდება NTLM თანამედროვე პაროლის ჰეშირებისგან, როგორიცაა bcrypt, scrypt ან Argon2?

თანამედროვე პაროლის ჰეშირების ხელსაწყოები განზრახ ნელი და მარილიანია: bcrypt, scrypt და Argon2 თითოეული ამატებს უნიკალურ შემთხვევით მარილს თითოეულ პაროლზე და მორგებად ღირებულების ფაქტორს, რომელიც შესაძლებელია დროთა განმავლობაში გაიზარდოს აპარატურის სწრაფად განვითარებასთან ერთად, სპეციალურად უხეში ძალის შეტევის ძვირად საჯდომად. NTLM არცერთს არ აკეთებს — ის შეიქმნა ეპოქაში, სანამ ოფლაინ უხეში ძალის შეტევა პრაქტიკული საფრთხის მოდელი გახდებოდა, და ეს ეტყობა. ეს არის ზუსტად ის მიზეზი, თუ რატომ არასდროს უნდა იქნას გამოყენებული NTLM დღეს შექმნილი ნებისმიერი რამის დასაცავად; ამ ხელსაწყოს რეალური გამოყენების შემთხვევებია არსებულ Windows ინფრასტრუქტურასთან თავსებადობა და ავტორიზებული უსაფრთხოების ტესტირება და არა ახალი სისტემების აშენება.

რა არის NTLM ჰეშ გენერატორის კანონიერი გამოყენებები?

SAM მონაცემთა ბაზიდან ან NTDS.dit-იდან ამოღებული ჰეშების გადამოწმება ავტორიზებული შეღწევადობის ტესტირების ან სერტიფიკატების აუდიტის დროს; თქვენი საკუთარი ხელსაწყოების ან სკრიპტების MS-NLMP-ის სწორად იმპლემენტირების შემოწმება; hashcat-ისთვის (mode 1000) ან Mimikatz-ფორმატის თავსებადობის შემოწმებებისთვის სატესტო ჰეშების გენერირება თქვენს მიერ კონტროლირებად ლაბორატორიაში; და CTF ან ტრენინგის სავარჯიშოებზე მუშაობა, რომლებიც პირდაპირ მოიცავს NTLM-ს. ამ ხელსაწყოს გამოყენება ისეთი ანგარიშების ან სისტემების შესატევად, რომლებიც არ არის თქვენ საკუთარი ან წერილობითი ავტორიზაციის გარეშე ტესტირებადი, არ არის კანონიერი გამოყენება.

იგზავნება ჩემი პაროლი ან შეყვანილი მონაცემი სერვერზე?

არა. MD4 გამოთვლა მთლიანად სრულდება JavaScript-ში თქვენს ბრაუზერში — არ არსებობს ბრაუზერის ბუნებრივი API MD4-სთვის, ამიტომ ის პირდაპირ არის იმპლემენტირებული ამ გვერდის მხარეს-კოდში, და თქვენ მიერ აკრეფილი არაფერი არსად გადაიცემა.