Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
assless-chaps — اختراق تحديات واستجابات MSCHAPv2 بسرعة باستخدام قاعدة بيانات من هاشات NT | Kitploit
أدوات/GitHubGitHub/sensepost/assless-chaps
كسر كلمات المرورتدقيق Wi-Fiتحليل التجزئةالتشفيراختبار الاختراق
GitHubsensepost/assless-chaps

assless-chaps

اختراق تحديات واستجابات MSCHAPv2 بسرعة باستخدام قاعدة بيانات من هاشات NT

عرض المستودع
14119منذ 27 أيامتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

assless-chaps

كسر تحدي/استجابات MSCHAPv2/NTLMv1 بسرعة باستخدام قاعدة بيانات تجزئات NT

مقدمة

Assless CHAPs هي طريقة فعالة لاستعادة تجزئة NT المستخدمة في تبادل MSCHAPv2/NTLMv1 إذا كان لديك التحدي والاستجابة (مثل هجوم WiFi EAP WPE).

يتطلب قاعدة بيانات تجزئات NT، وتعليمات حول كيفية إنشائها من القوائم الحالية أو باستخدام hashcat مع قوائم الكلمات والقواعد متوفرة أدناه. لقد أدرجت قاعدة بيانات عينة من SecLists. ستحتاج إلى فك ضغطها باستخدام bunzip.

التقنية

إن تبادل MSCHAPv2 لا يتطلب "كسر" كلمة المرور النصية الصريحة، بل نحتاج فقط إلى NThash المستخدم.

يقوم MSCHAPv2 بتقسيم NThash إلى ثلاثة أجزاء، ويستخدم كل جزء كمفاتيح مختلفة لتشفير DES لنفس التحدي (المشتق من تحدي النظير والمصادق). يتم تقسيم NTHash إلى مفتاحين بطول 7 بايت، ومفتاح واحد بطول 2 بايت. هذا يعني أن المفتاح الأخير مُمدد بأصفار NULL لصنع مفتاح بالطول المطلوب. يمكن تكسير هذا بسرعة نظرًا لكفاءة عملية DES ومساحة مفاتيح تبلغ 65,535. بمجرد الحصول على هذين البايتين، يمكننا البحث عن جميع تجزئات NT في قاعدة بياناتنا التي تنتهي بهذين البايتين. وهذا يوفر مجموعة أصغر بكثير من التجزئات المحتملة للتحقق.

هذا شكل من المقايضة بين المساحة والوقت، مشابه لجدول قوس قزح. وهو أيضًا شكل من hash shucking.

العرض التقديمي

تم تقديم هذا لأول مرة في Defcon 29's RF Hacking Village. الشرائح متضمنة في هذا المستودع.

السرعة

هذه مقارنة لثلاث عينات من التحدي/الاستجابة وثلاث قوائم كلمات مختلفة: قائمة خاصة صغيرة، وrockyou، وقائمة Have I Been Pwned. تم إجراؤها على Macbook Pro 2016 الخاص بي. يستخدم Hashcat هذه نواة hash schucking ووحدتي GPU مدمجتين ونواة نقية بدلاً من المُحسَّنة (لأن الأخيرة غير موجودة بعد). Hash3 ليس في القوائم لمحاكاة أداء الحالة الأسوأ. لا أحتسب الوقت الذي يستغرقه hashcat لبناء ذاكرة التخزين المؤقت للقاموس في التشغيل الأول.

Hash1

قائمة تجزئات صغيرة:

root@kitploit:~
hashcat 0.50s user 0.27s system 55% cpu 1.405 total (8597.8 kH/s)
assless 0.05s user 0.00s system 294% cpu 0.018 total

قائمة Rockyou:

root@kitploit:~
hashcat 2.67s user 0.51s system 93% cpu 3.413 total
assless 0.05s user 0.01s system 281% cpu 0.021 total

قائمة HIBP:

root@kitploit:~
hashcat 59.97s user 11.72s system 136% cpu 52.603 total (5620.6 kH/s)
assless 0.05s user 0.00s system 292% cpu 0.018 total

Hash 2

قائمة تجزئات صغيرة:

root@kitploit:~
hashcat 0.51s user 0.27s system 55% cpu 1.409 total (8704.7 kH/s)
assless 0.03s user 0.00s system 248% cpu 0.012 total

قائمة Rockyou:

root@kitploit:~
hashcat 2.20s user 0.46s system 110% cpu 2.409 total (5798.4 kH/s)
assless 0.03s user 0.00s system 231% cpu 0.015 total

قائمة HIBP:

root@kitploit:~
hashcat 65.37s user 12.74s system 135% cpu 57.712 total (5768.7 kH/s)
assless 0.03s user 0.00s system 249% cpu 0.013 total

Hash 3

Hash 3 غير موجود في أي من قوائم التجزئات لمحاكاة أداء بحث أسوأ حالة.

قائمة تجزئات صغيرة:

root@kitploit:~
hashcat 0.67s user 0.34s system 66% cpu 1.526 total (7550.1 kH/s)
assless 0.02s user 0.00s system 211% cpu 0.012 total

قائمة Rockyou:

root@kitploit:~
hashcat 2.71s user 0.52s system 94% cpu 3.415 total (5685.4 kH/s)
assless 0.02s user 0.01s system 181% cpu 0.014 total

قائمة HIBP:

root@kitploit:~
hashcat 125.19s user 27.62s system 139% cpu 1:49.75 total (5634.9 kH/s)
assless 0.06s user 0.03s system 115% cpu 0.075 total

التثبيت

سيتطلب إصدار Rust SQLite 3.6.8 أو أحدث.

إصدار Python يتطلب python3 و sqlite3 و pycryptodome.

أداة إنشاء قاعدة البيانات تتطلب python3 وواجهة سطر أوامر sqlite3.

الترجمة

ينطبق هذا فقط على إصدار Rust. ستحتاج إلى cargo.

بعد تثبيت cargo، ما عليك سوى الانتقال إلى دليل assless-chaps-rs، وبنائه باستخدام: cargo build --release

سيكون الملف الثنائي الناتج في دليل target/release/.

الاستخدام

يتطلب Assless التحدي والاستجابة وقاعدة بيانات لتجزئات NT. اختياريًا، يمكن لإصدار Python استخدام ملف البحث المُحسَّن ذو البايتين المرفق. أبسط استخدام يبدو كالتالي:

./assless-chaps <Challenge> <Response> <hashes.db>

على سبيل المثال:

./assless-chaps 5d79b2a85966d347 556fdda5f67d2b746ca3315fd8b93adcab5c792790a92e87 rockyou.db

يجب أن يبدو الإخراج كالتالي:

root@kitploit:~
[-] Two byte lookup file not provided, will brute force instead.
[+] Found in 22636 tries: 586c
[-] Found 222 hashes ending in 586c
[+] Found hash: 8846f7eaee8fb1
[-] Found after 186 hashes.
[+] Found hash: 17ad06bdd830b7
[+] Full hash: 8846f7eaee8fb117ad06bdd830b7586c

التجزئة الكاملة النهائية 8846f7eaee8fb117ad06bdd830b7586c هي تجزئة NT لكلمة المرور password.

البحث بالبايتين - Python فقط

لقد أمضيت بعض الوقت في بناء قائمة بجميع قيم البايتين الممكنة البالغ عددها 65,535 مرتبة حسب الأكثر شيوعًا عبر مجموعة كبيرة من كلمات المرور. هذا الملف مضمن كـ twobytes. يمكنك تمريره كوسيطة رابعة لـ assless.

عادةً ما يوفر هذا بضع جولات من DES، لكنه لا يُحدث فرقًا كبيرًا في السرعة. قد يفيد إذا كنت تقوم بالعديد من التجزئات.

python3 assless-chaps.py 5d79b2a85966d347 556fdda5f67d2b746ca3315fd8b93adcab5c792790a92e87 rockyou.db twobytes

root@kitploit:~
[+] Found in 65533 tries: 586c
[-] Found 222 hashes ending in 586c
[+] Found hash: 8846f7eaee8fb1
[-] Found after 186 hashes.
[+] Found hash: 17ad06bdd830b7
[+] Full hash: 8846f7eaee8fb117ad06bdd830b7586c

إنشاء قاموس التجزئات الخاص بك

سيساعدك ملف mksqlitedb.py في تحويل ملف CSV للتجزئات إلى قاعدة البيانات.

python3 mksqlitedb.py <database name> <csv file>

ملف CSV يتطلب ثلاثة أعمدة:

  • آخر بايتين من التجزئة (آخر أربعة أحرف ASCII)
  • أول 7 بايت (أول 14 حرف ASCII)
  • ثاني 7 بايت (الأحرف من 15 إلى 29 من ASCII)

على سبيل المثال، التجزئة 8846f7eaee8fb117ad06bdd830b7586c ستصبح:

586c,8846f7eaee8fb1,17ad06bdd830b7

مثال على تحويل regexp سيكون: echo 8846f7eaee8fb117ad06bdd830b7586c | sed "s/^\(.\{14\}\)\(.\{14\}\)\(.\{4\}\)$/\3,\1,\2/"

يمكنك إما أخذ قائمة موجودة من التجزئات (مثل قوائم Have I Been Pwned أو إنشاء التجزئات الخاصة بك باستخدام hashcat وقوائم الكلمات/القواعد المفضلة لديك.

استخدام Have I Been Pwned

قوائم كلمات مرور HIBP متاحة بالفعل كتجزئات NT، ما عليك سوى إزالة العدد من الملف وتحويلها إلى تنسيق CSV لاستيرادها إلى قاعدة البيانات.

يمكن القيام بذلك باستخدام أداة Unix القياسية sed كالتالي:

sed "s/^\(.\{14\}\)\(.\{14\}\)\(.\{4\}\):.*/\3,\1,\2/" pwned-passwords-ntlm-ordered-by-hash.txt > hibp.csv

بعد ذلك يمكن استيرادها باستخدام mksqlitedb.py hibp.db hibp.csv.

تحويل قائمة كلمات إلى قائمة تجزئات

لتحويل قائمة كلمات مستقيمة إلى قائمة تجزئات من nthashes، يمكنك استخدام nthasher الذي يمكنه معالجة قوائم الكلمات الكبيرة بسرعة. ستحتاج التجزئات الناتجة إلى تحويلها إلى تنسيق CSV المطلوب كما هو موضح أعلاه.

يوجد أداة nthasher أبطأ بكثير ستخرج التجزئات مباشرة إلى تنسيق CSV المطلوب في هذا المستودع، ويتم تشغيلها ببساطة باستخدام:

python3 nthash-from-clear.py <wordlist> > hashlist.csv

إذا كنت ترغب في توسيع قائمة الكلمات باستخدام القواعد، راجع القسم التالي حول استخدام hashcat.

استخدام hashcat لإنشاء ملف CSV للتجزئات من قوائم الكلمات والقواعد

ستحتاج إلى إجراء تغيير بسيط في كود وحدة OpenCL للنمط 1000 لجعلها تُخرج كل تجزئة، وليس فقط تلك التي تطابق مرشح الكسر الافتراضي. بشكل افتراضي، ستُولد التجزئة بتنسيق CSV المطلوب.

  • انتقل إلى دليل OpenCL الخاص بـ hashcat: cd hashcat/OpenCL
  • طبق التصحيح: patch < m01000_a0-pure.cl.patch
  • أعد ملفًا يحتوي على تجزئة NT مستحيلة الكسر مثل echo 11111111111111111111111111111111 > impossible_hash
  • اعمل الكسر كالمعتاد، ولكن عطّل ملف potfile الخاص بك وأعد توجيه الإخراج إلى ملف: hashcat -m1000 impossible_hash rockyou.txt -r best64.rule --potfile-disable --quiet > rockyou.csv
  • أنشئ قاعدة بيانات التجزئات الخاصة بك: python3 mksqlitedb.py rockyou.db rockyou.csv

ملاحظة حول مساحة القرص وأحجام الملفات

عادةً ما تكون قاعدة بيانات SQLite أكبر بنسبة 61% من ملف CSV المستخدم لإنشائها. قد يستغرق إنشاء قاعدة البيانات بعض الوقت اعتمادًا على حجم الملفات. جهّز متطلبات نظام الملفات وفقًا لذلك.

إليك مثال باستخدام قاموس rockyou:

  • قاموس rockyou الأساسي 129M
  • rockyou.csv المُولد بواسطة hashcat 462M
  • قاعدة بيانات SQLite الناتجة rockyou.db 746M
  • ضغط BZip2 بأقصى ضغط rockyou.db.bz2 339M

يمكنك توفير مساحة عن طريق تحويل وإدراج كل تجزئة ديناميكيًا وتخطي الحاجة إلى ملف CSV وسيط.

NTLMv1 SSP

سيعمل NTLMv1 بنفس الطريقة تمامًا، ما لم يكن يستخدم SSP. ستعرف ما إذا كان SSP قيد الاستخدام إذا حصلت على استجابة LM تنتهي بمجموعة من الأصفار. يمكنك استخدام ملف ntlm-ssp.py المضمن لإنتاج تحدي الخادم الذي ستحتاجه assless.

قم بتشغيله كالتالي: python3 ntlm-ssp.py <lm response> <challenge>

على سبيل المثال إذا استخدمنا مثال تحدي/استجابة NTLMv1-SSP من تجزئات المثال في hashcat: u4-netntlm::kNS:338d08f8e26de93300000000000000000000000000000000:9526fb8c23a90751cdd619b6cea564742e1e4bf33006ba41:cb8086049ec4736c

ستمرر LM والتحدي كالتالي:

python3 ntlm-ssp.py 338d08f8e26de93300000000000000000000000000000000 cb8086049ec4736c

وستحصل على الاستجابة التالية:

The server challenge is: 724edf24aea0d68b

والتي يمكن كسرها باستخدام assless-chaps كالمعتاد:

./assless-chaps 724edf24aea0d68b 9526fb8c23a90751cdd619b6cea564742e1e4bf33006ba41 hashes.db

تنزيل الأداة