
PACK (مجموعة تحليل وتكسير كلمات المرور)
PACK (Password Analysis and Cracking Toolkit) هي مجموعة من الأدوات المساعدة التي تم تطويرها للمساعدة في تحليل قوائم كلمات المرور بهدف تحسين عملية اختراق كلمات المرور من خلال اكتشاف أنماط الأقنعة والقواعد ومجموعات الأحرف وغيرها من خصائص كلمات المرور. تقوم مجموعة الأدوات بإنشاء ملفات إدخال صالحة لعائلة Hashcat من أدوات اختراق كلمات المرور.
ملاحظة: مجموعة الأدوات نفسها غير قادرة على اختراق كلمات المرور، ولكنها مصممة لجعل تشغيل أدوات اختراق كلمات المرور أكثر كفاءة.
قبل أن نتمكن من بدء استخدام مجموعة الأدوات، يجب علينا وضع معايير اختيار لقوائم كلمات المرور. نظرًا لأننا نهدف إلى تحليل الطريقة التي ينشئ بها الأشخاص كلمات مرورهم، يجب علينا الحصول على أكبر عينة ممكنة من كلمات المرور المسربة. إحدى هذه القوائم الممتازة تعتمد على اختراق RockYou.com. توفر هذه القائمة مجموعة كبيرة ومتنوعة بما يكفي تعطي نتائج جيدة لكلمات المرور الشائعة التي تستخدمها مواقع مماثلة (مثل الشبكات الاجتماعية). قد لا يعمل التحليل الذي تم الحصول عليه من هذه القائمة مع المؤسسات التي لديها سياسات كلمات مرور محددة. لذلك، يجب أن يكون اختيار عينة الإدخال أقرب ما يمكن إلى هدفك. بالإضافة إلى ذلك، حاول تجنب الحصول على قوائم تعتمد على كلمات مرور تم اختراقها بالفعل لأنها ستولد انحيازًا إحصائيًا للقواعد والأقنعة التي يستخدمها الفرد (الأفراد) الذين يخترقون القائمة وليس المستخدمين الفعليين.
أبسط تحليل يمكنك إجراؤه هو ببساطة الحصول على أكثر الأطوال شيوعًا، ومجموعة الأحرف، وغيرها من خصائص كلمات المرور في القائمة المتوفرة. في المثال أدناه، سنستخدم ملف 'rockyou.txt' الذي يحتوي على حوالي 14 مليون كلمة مرور. قم بتشغيل statsgen.py مع سطر الأوامر التالي:
$ python statsgen.py rockyou.txt
فيما يلي المخرجات من الأمر أعلاه:
_
StatsGen #.#.# | |
_ __ __ _ ___| | _
| '_ \ / _` |/ __| |/ /
| |_) | (_| | (__| <
| .__/ \__,_|\___|_|\_\
| |
|_| [email protected]
[*] تحليل كلمات المرور في [rockyou.txt]
[+] تحليل 100% (14344390/14344390) من كلمات المرور
ملاحظة: الإحصائيات أدناه تتعلق بعدد كلمات المرور التي تم تحليلها، وليس العدد الإجمالي لكلمات المرور
[*] الطول:
[+] 8: 20% (2966037)
[+] 7: 17% (2506271)
[+] 9: 15% (2191039)
[+] 10: 14% (2013695)
[+] 6: 13% (1947798)
...
[*] مجموعة الأحرف:
[+] loweralphanum: 42% (6074867)
[+] loweralpha: 25% (3726129)
[+] numeric: 16% (2346744)
[+] loweralphaspecialnum: 02% (426353)
[+] upperalphanum: 02% (407431)
...
[*] تعقيد كلمة المرور:
[+] digit: min(0) max(255)
[+] lower: min(0) max(255)
[+] upper: min(0) max(187)
[+] special: min(0) max(255)
[*] الأقنعة البسيطة:
[+] stringdigit: 37% (5339556)
[+] string: 28% (4115314)
[+] digit: 16% (2346744)
[+] digitstring: 04% (663951)
[+] othermask: 04% (576324)
...
[*] الأقنعة المتقدمة:
[+] ?l?l?l?l?l?l?l?l: 04% (687991)
[+] ?l?l?l?l?l?l: 04% (601152)
[+] ?l?l?l?l?l?l?l: 04% (585013)
[+] ?l?l?l?l?l?l?l?l?l: 03% (516830)
[+] ?d?d?d?d?d?d?d: 03% (487429)
...
ملاحظة: يمكنك تقليل عدد القيم الشاذة المعروضة عن طريق تضمين علامة --hiderare التي لن تعرض أي عناصر بنسبة حدوث أقل من 1%.
إليك ما يمكننا تعلمه فورًا من القائمة أعلاه:
القسم الأخير، "الأقنعة المتقدمة"، يحتوي على الأقنعة الأكثر تكرارًا باستخدام تنسيق Hashcat. يمكن تفسير الرموز الفردية على النحو التالي:
?l - حرف صغير واحد
?u - حرف كبير واحد
?d - رقم واحد
?s - حرف خاص واحد
على سبيل المثال، القناع الأول جدًا، "?l?l?l?l?l?l?l?l"، سيطابق جميع كلمات المرور الأبجدية الصغيرة. بالنظر إلى حجم العينة، ستتمكن من اختراق حوالي 4% من كلمات المرور. ومع ذلك، بعد إنشاء المخرجات الأولية، قد تكون مهتمًا باستخدام المرشحات لتضييق نطاق بيانات كلمة المرور.
دعنا نرى كيف يميل مستخدمو RockYou إلى اختيار كلمات المرور الخاصة بهم باستخدام القناع البسيط "stringdigit" (سلسلة متبوعة بأرقام):
$ python statsgen.py ../PACK-0.0.3/archive/rockyou.txt --simplemask stringdigit -q --hiderare
[*] تحليل كلمات المرور في [rockyou.txt]
[+] تحليل 37% (5339556/14344390) من كلمات المرور
ملاحظة: الإحصائيات أدناه تتعلق بعدد كلمات المرور التي تم تحليلها، وليس العدد الإجمالي لكلمات المرور
[*] الطول:
[+] 8: 23% (1267260)
[+] 7: 18% (981432)
[+] 9: 17% (939971)
[+] 10: 14% (750938)
[+] 6: 11% (618983)
[+] 11: 05% (294869)
[+] 12: 03% (175875)
[+] 13: 01% (103047)
[+] 14: 01% (65958)
[*] مجموعة الأحرف:
[+] loweralphanum: 88% (4720184)
[+] upperalphanum: 06% (325941)
[+] mixedalphanum: 05% (293431)
[*] تعقيد كلمة المرور:
[+] digit: min(1) max(252)
[+] lower: min(0) max(46)
[+] upper: min(0) max(31)
[+] special: min(0) max(0)
[*] الأقنعة البسيطة:
[+] stringdigit: 100% (5339556)
[*] الأقنعة المتقدمة:
[+] ?l?l?l?l?l?l?d?d: 07% (420318)
[+] ?l?l?l?l?l?d?d: 05% (292306)
[+] ?l?l?l?l?l?l?l?d?d: 05% (273624)
[+] ?l?l?l?l?d?d?d?d: 04% (235360)
[+] ?l?l?l?l?d?d: 04% (215074)
...
يحدد الجزء العلوي جدًا من المخرجات النسبة المئوية من إجمالي كلمات المرور التي تم تحليلها. في هذه الحالة، من خلال اختراق كلمات المرور المطابقة فقط لقناع "stringdigit" من الممكن استرداد حوالي 37% فقط من المجموعة الإجمالية كما هو موضح في المخرجات الأصلية. بعد ذلك، يبدو أن 11% فقط من نوع كلمة المرور هذا تستخدم أي شيء بخلاف الأحرف الصغيرة. لذلك سيكون من الحكمة التركيز فقط على السلاسل الصغيرة المطابقة لهذا القناع. أخيرًا، في قسم "القناع المتقدم" يمكننا أن نرى أن غالبية كلمات المرور "stringdigit" تتكون من سلسلة برقمين أو أربعة أرقام تتبعها. من خلال المعلومات التي تم الحصول عليها من المخرجات أعلاه، يمكننا البدء في إنشاء صورة ذهنية لأنماط إنشاء كلمات المرور الخاصة بالمستخدمين المستهدفين.
هناك عدد قليل من المرشحات الأخرى المتاحة لطول كلمة المرور والقناع ومجموعات الأحرف:
الطول: --minlength و/أو --maxlength
القناع البسيط: --simplemask [numeric, loweralpha, upperalpha, mixedalpha, loweralphanum, إلخ.]
مجموعات الأحرف: --charset [digit, string, stringdigit, digitstring, digitstringdigit, إلخ.]
ملاحظة: يمكن تحديد أكثر من مرشح من نفس الفئة كقائمة مفصولة بفواصل:
--simplemask="stringdigit,digitstring"
بينما يعرض قسم "الأقنعة المتقدمة" فقط الأنماط المطابقة لأكثر من 1% من جميع كلمات المرور، يمكنك الحصول على وحفظ قائمة كاملة بأقنعة كلمات المرور المطابقة لقاموس معين باستخدام الأمر التالي:
$ python statsgen.py rockyou.txt -o rockyou.masks
سيتم حفظ جميع أقنعة كلمات المرور وتردداتها في الملف المحدد بتنسيق CSV. بطبيعة الحال، يمكنك توفير مرشحات لإنشاء ملف أقنعة يطابق المعلمات المحددة فقط. يمكن استخدام ملف الإخراج كمدخل لأداة MaskGen التي سيتم تغطيتها في القسم التالي.