CodeKitHub
أدوات الترميز

مولد تجزئة NTLM

آخر تحديث:

تُحسب تجزئة NTLM بترميز المدخل بصيغة UTF-16LE (بايتان لكل حرف، بترتيب البايتات الصغير) ثم تمريره عبر خوارزمية اختصار الرسائل MD4 — تلك العملية أحادية التمرير وغير المُمَلَّحة هي كامل مخطط تجزئة NTLM الذي تستخدمه أنظمة Microsoft Windows منذ NT 4.0 لتخزين محققات كلمات المرور. تنفّذ هذه الأداة هذا الحساب بالضبط محليًا في متصفحك، بالكامل بلغة JavaScript، بحيث لا يُرسَل أي شيء تكتبه إلى أي خادم. صُمِّمت لأغراض العمل الأمني المشروع — كالتحقق من تصديرات تجزئات Active Directory، أو فحص صيغ مخرجات hashcat أو Mimikatz، أو العمل على تحديات CTF ومختبرات اختبار الاختراق — وليس لمهاجمة حسابات لا تملكها أو لا تملك تصريحًا لاختبارها.

NTLM Hash

ما هي هذه الأداة؟

بروتوكول NTLM (NT LAN Manager) هو بروتوكول مصادقة التحدي والاستجابة القديم من Microsoft، لا يزال يُستخدم اليوم لتسجيلات دخول حسابات Windows المحلية وكحل احتياطي في العديد من بيئات Active Directory. محقق كلمة المرور الخاص به — المعروف عادةً بـ«تجزئة NTLM» — مُعرَّف في مواصفة بروتوكول MS-NLMP الخاصة بـ Microsoft على أنه `MD4(UTF-16-LE(password))`: تُرمَّز كلمة المرور أولًا بصيغة UTF-16 بترتيب البايتات الصغير (بحيث يصبح كل حرف بايتين، بخلاف UTF-8)، ثم تُجزَّأ سلسلة البايتات هذه مرة واحدة بخوارزمية MD4 من RFC 1320.

خطوة UTF-16LE هي التفصيلة التي يخطئ فيها معظم الناس عند إعادة تنفيذ NTLM: تجزئة بايتات UTF-8 لسلسلة نصية بدلًا من بايتات UTF-16LE الخاصة بها ينتج مُلخّصًا مختلفًا تمامًا وغير صحيح، حتى لو بدا النص المرئي متطابقًا. تُرمِّز هذه الأداة بشكل صحيح، لذا تتطابق مخرجاتها مع ما يخزّنه Windows نفسه وما تتوقعه أدوات مثل hashcat (النمط 1000) و Mimikatz.

لأن NTLM يسبق تصميم تجزئة كلمات المرور الحديث، فهو يفتقر إلى جميع الحمايات التي بُنيت لاحقًا خصيصًا لإبطاء عمليات الكسر: لا ملح لكل مستخدم، ولا عامل عمل قابل للتهيئة، ولا تكرار مُتعمَّد. إنها تمريرة MD4 واحدة، مما يجعل حسابها سريعًا للغاية — خاصية مريحة للتوافق القديم لكنها كارثية لمقاومة هجمات القوة الغاشمة وهجمات القاموس.

لماذا تستخدمها؟

  • التحقق من أن تجزئة مُستخرجة من قاعدة بيانات SAM في Windows، أو تفريغ NTDS.dit، أو تصدير من Active Directory تطابق قيمة متوقعة أثناء اختبار أمني مُصرَّح به.
  • تأكيد فهمك لخوارزمية MS-NLMP، أو التحقق من تجزئة أنتجها كودك الخاص، مقابل تنفيذ معروف بأنه صحيح.
  • إنشاء تجزئات NTLM لأداة hashcat (`-m 1000`) أو لاختبار قوائم كلمات John the Ripper في مختبر أو بيئة CTF مصرَّح لك بمهاجمتها.
  • التحقق المتقاطع من مخرجات Mimikatz أو أدوات اختبار الاختراق الأخرى أثناء عمليات التقييم المشروعة للفريق الأحمر أو تدقيق بيانات الاعتماد.
  • محلي 100%: لا يغادر مدخلك المتصفح أبدًا، لذا فهو آمن للاستخدام حتى مع بيانات اعتماد حساسة في تقييم مُصرَّح به.

كيفية الاستخدام

  1. اكتب كلمة المرور أو النص الذي تريد تجزئته في مربع الإدخال.
  2. انقر على "إنشاء تجزئة NTLM".
  3. اقرأ تجزئة NTLM السداسية العشرية المكوّنة من 32 حرفًا (مخرجات الأحرف الكبيرة مُفعَّلة افتراضيًا، بما يطابق طريقة عرض Windows ومعظم أدوات الكسر لها — أزل التحديد من المربع للحصول على أحرف صغيرة).
  4. انقر على "نسخ" لنسخ التجزئة إلى الحافظة.

مثال

الإدخال

password

الناتج

8846F7EAEE8FB117AD06BDD830B7586C

هذا متجه اختبار معروف يمكن التحقق منه بشكل مستقل: تجزئة NTLM للسلسلة النصية الحرفية "password" هي دائمًا 8846F7EAEE8FB117AD06BDD830B7586C. يمكنك مقارنة مخرجات هذه الأداة بأي تنفيذ آخر صحيح لـ NTLM.

NTLM مقابل تجزئة كلمات المرور الحديثة

يوضّح الجدول أدناه لماذا يُعتبر NTLM باليًا لحماية الأنظمة الجديدة، رغم بقائه مُدمجًا في بنية Windows و Active Directory القديمة.

الخاصيةNTLMbcrypt / scrypt / Argon2
البدائية الأساسيةتمريرة MD4 واحدةتجزئة بطيئة مصمَّمة خصيصًا بتكلفة قابلة للضبط
التمليحلا يوجد — كلمات المرور المتطابقة تُجزَّأ دائمًا بشكل متطابقملح عشوائي فريد لكل كلمة مرور
التكرار / التمديدلا يوجدعامل عمل قابل للتهيئة، يمكن زيادته مع الوقت
مقاومة القوة الغاشمةضعيفة جدًا — مليارات التخمينات/الثانية على وحدات معالجة الرسوميات الحديثةمكلفة عن قصد لكل تخمين
أين لا يزال موجودًامصادقة Windows القديمة، الحل الاحتياطي لـ Active Directoryالتطبيقات الجديدة، أفضل الممارسات الحالية

أدوات ذات صلة

إذا كنت بحاجة إلى تجزئة تشفيرية عامة الغرض بدلًا من بنية MD4(UTF-16LE) الخاصة بـ NTLM، فقد تكون هذه الأدوات أنسب.

الأسئلة الشائعة

ما هي تجزئة NTLM بالضبط؟

إنها محقق كلمة المرور الذي يحسبه Windows ويخزّنه لمصادقة NT LAN Manager، المُعرَّف في مواصفة MS-NLMP الخاصة بـ Microsoft على أنه MD4(UTF-16LE(password)) — تمريرة MD4 واحدة على ترميز بايتات UTF-16 بترتيب البايتات الصغير لكلمة المرور. طولها دائمًا 128 بت، تُعرَض كـ 32 حرفًا سداسي عشري.

لماذا UTF-16LE تحديدًا، وليس UTF-8 أو ASCII؟

خزَّن Windows النصوص داخليًا بصيغة UTF-16LE منذ تصميم NT، لذا تُرمَّز كلمات المرور بهذه الطريقة أيضًا قبل تجزئتها. يصبح كل حرف بايتين (بترتيب البايتات الصغير)، بما في ذلك أحرف ASCII العادية مثل 'a'، التي تصبح 0x61 0x00 بدلًا من 0x61 فقط. تجزئة بايتات UTF-8 لنفس السلسلة تنتج نتيجة مختلفة تمامًا وخاطئة — وهذا هو الخطأ الأكثر شيوعًا في تنفيذات NTLM المبنية من الصفر.

هل NTLM آمن للاستخدام اليوم؟

لا، وتوصي Microsoft نفسها بالابتعاد عنه لصالح Kerberos حيثما أمكن. لا يستخدم NTLM ملحًا، لذا فإن كلمات المرور المتطابقة تنتج دائمًا تجزئات متطابقة عبر كل مستخدم وكل نظام، مما يتيح عمليات البحث المُحسوبة مسبقًا في جداول قوس قزح. كما أنه يفتقر إلى التكرار أو عامل العمل — تمريرة MD4 واحدة غير مُمَلَّحة — لذا يمكن لوحدات معالجة الرسوميات الحديثة محاولة مليارات التخمينات في الثانية ضد تجزئة مسروقة. يبقى موجودًا بشكل رئيسي للتوافق القديم مع أنظمة وتطبيقات Windows الأقدم.

كيف يختلف NTLM عن تجزئة كلمات المرور الحديثة مثل bcrypt أو scrypt أو Argon2؟

أدوات تجزئة كلمات المرور الحديثة بطيئة ومُمَلَّحة عن قصد: تضيف كل من bcrypt و scrypt و Argon2 ملحًا عشوائيًا فريدًا لكل كلمة مرور وعامل تكلفة قابل للضبط يمكن زيادته مع الوقت مع تسارع الأجهزة، وذلك تحديدًا لجعل هجمات القوة الغاشمة مكلفة حتى على نطاق واسع. لا يفعل NTLM أيًا من ذلك — فقد صُمِّم في عصر سبق أن تكون هجمات القوة الغاشمة غير المتصلة تهديدًا عمليًا، وهذا واضح فيه. لهذا السبب بالضبط لا ينبغي أبدًا استخدام NTLM لحماية أي شيء يُصمَّم اليوم؛ حالات الاستخدام الحقيقية لهذه الأداة هي التوافق مع بنية Windows التحتية القائمة والاختبار الأمني المُصرَّح به، وليس بناء أنظمة جديدة.

ما هي الاستخدامات المشروعة لمولد تجزئة NTLM؟

التحقق من التجزئات المستخرجة من قاعدة بيانات SAM أو NTDS.dit أثناء اختبار اختراق مُصرَّح به أو تدقيق لبيانات الاعتماد؛ التحقق من أن أدواتك أو نصوصك البرمجية تنفّذ MS-NLMP بشكل صحيح؛ إنشاء تجزئات اختبار لأداة hashcat (النمط 1000) أو لفحوصات التوافق بصيغة Mimikatz في مختبر تتحكم فيه؛ والعمل على تمارين CTF أو تدريبية تتضمن NTLM صراحةً. استخدام هذه الأداة لمهاجمة حسابات أو أنظمة لا تملكها أو ليس لديك تصريح كتابي لاختبارها ليس استخدامًا مشروعًا.

هل تُرسَل كلمة مروري أو مدخلي إلى خادم؟

لا. يعمل حساب MD4 بالكامل بلغة JavaScript في متصفحك — لا توجد واجهة برمجة تطبيقات أصلية للمتصفح لـ MD4، لذا فهي مُنفَّذة مباشرة في كود هذه الصفحة من جانب العميل، ولا يُنقَل أي شيء تكتبه إلى أي مكان.