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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
pack — PACK (مجموعة تحليل وتكسير كلمات المرور) | Kitploit
أدوات/GitHubGitHub/iphelix/pack
كسر كلمات المرورهجمات كلمات المرورتحليل التجزئةالأدوات والمكونات
GitHubiphelix/pack

pack

PACK (مجموعة تحليل وتكسير كلمات المرور)

عرض المستودعالموقع الإلكتروني
890174منذ 7 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

Password Analysis and Cracking Kit by Peter Kacherginsky (iphelix)

PACK (Password Analysis and Cracking Toolkit) هي مجموعة من الأدوات المساعدة التي تم تطويرها للمساعدة في تحليل قوائم كلمات المرور بهدف تحسين عملية اختراق كلمات المرور من خلال اكتشاف أنماط الأقنعة والقواعد ومجموعات الأحرف وغيرها من خصائص كلمات المرور. تقوم مجموعة الأدوات بإنشاء ملفات إدخال صالحة لعائلة Hashcat من أدوات اختراق كلمات المرور.

ملاحظة: مجموعة الأدوات نفسها غير قادرة على اختراق كلمات المرور، ولكنها مصممة لجعل تشغيل أدوات اختراق كلمات المرور أكثر كفاءة.

اختيار قوائم كلمات المرور للتحليل

قبل أن نتمكن من بدء استخدام مجموعة الأدوات، يجب علينا وضع معايير اختيار لقوائم كلمات المرور. نظرًا لأننا نهدف إلى تحليل الطريقة التي ينشئ بها الأشخاص كلمات مرورهم، يجب علينا الحصول على أكبر عينة ممكنة من كلمات المرور المسربة. إحدى هذه القوائم الممتازة تعتمد على اختراق RockYou.com. توفر هذه القائمة مجموعة كبيرة ومتنوعة بما يكفي تعطي نتائج جيدة لكلمات المرور الشائعة التي تستخدمها مواقع مماثلة (مثل الشبكات الاجتماعية). قد لا يعمل التحليل الذي تم الحصول عليه من هذه القائمة مع المؤسسات التي لديها سياسات كلمات مرور محددة. لذلك، يجب أن يكون اختيار عينة الإدخال أقرب ما يمكن إلى هدفك. بالإضافة إلى ذلك، حاول تجنب الحصول على قوائم تعتمد على كلمات مرور تم اختراقها بالفعل لأنها ستولد انحيازًا إحصائيًا للقواعد والأقنعة التي يستخدمها الفرد (الأفراد) الذين يخترقون القائمة وليس المستخدمين الفعليين.

StatsGen

أبسط تحليل يمكنك إجراؤه هو ببساطة الحصول على أكثر الأطوال شيوعًا، ومجموعة الأحرف، وغيرها من خصائص كلمات المرور في القائمة المتوفرة. في المثال أدناه، سنستخدم ملف 'rockyou.txt' الذي يحتوي على حوالي 14 مليون كلمة مرور. قم بتشغيل statsgen.py مع سطر الأوامر التالي:

root@kitploit:~
$ python statsgen.py rockyou.txt

فيما يلي المخرجات من الأمر أعلاه:

root@kitploit:~
                       _
     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%.

إليك ما يمكننا تعلمه فورًا من القائمة أعلاه:

  • معظم كلمات المرور يتراوح طولها بين 6 و 10 أحرف.
  • غالبية كلمات المرور تحتوي على مجموعة أحرف أبجدية رقمية صغيرة.
  • لا يوجد حد أدنى أو أقصى واضح لتعقيد كلمة المرور.
  • تميل كلمات المرور التي تم تحليلها إلى اتباع قناع بسيط "سلسلة متبوعة بأرقام".

القسم الأخير، "الأقنعة المتقدمة"، يحتوي على الأقنعة الأكثر تكرارًا باستخدام تنسيق Hashcat. يمكن تفسير الرموز الفردية على النحو التالي:

root@kitploit:~
?l - حرف صغير واحد
?u - حرف كبير واحد
?d - رقم واحد
?s - حرف خاص واحد

على سبيل المثال، القناع الأول جدًا، "?l?l?l?l?l?l?l?l"، سيطابق جميع كلمات المرور الأبجدية الصغيرة. بالنظر إلى حجم العينة، ستتمكن من اختراق حوالي 4% من كلمات المرور. ومع ذلك، بعد إنشاء المخرجات الأولية، قد تكون مهتمًا باستخدام المرشحات لتضييق نطاق بيانات كلمة المرور.

استخدام المرشحات

دعنا نرى كيف يميل مستخدمو RockYou إلى اختيار كلمات المرور الخاصة بهم باستخدام القناع البسيط "stringdigit" (سلسلة متبوعة بأرقام):

root@kitploit:~
$ 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, إلخ.]

ملاحظة: يمكن تحديد أكثر من مرشح من نفس الفئة كقائمة مفصولة بفواصل:

root@kitploit:~
--simplemask="stringdigit,digitstring"

حفظ الأقنعة المتقدمة

بينما يعرض قسم "الأقنعة المتقدمة" فقط الأنماط المطابقة لأكثر من 1% من جميع كلمات المرور، يمكنك الحصول على وحفظ قائمة كاملة بأقنعة كلمات المرور المطابقة لقاموس معين باستخدام الأمر التالي:

root@kitploit:~
$ python statsgen.py rockyou.txt -o rockyou.masks

سيتم حفظ جميع أقنعة كلمات المرور وتردداتها في الملف المحدد بتنسيق CSV. بطبيعة الحال، يمكنك توفير مرشحات لإنشاء ملف أقنعة يطابق المعلمات المحددة فقط. يمكن استخدام ملف الإخراج كمدخل لأداة MaskGen التي سيتم تغطيتها في القسم التالي.

MaskGen

يسمح لك MaskGen بصياغة هجمات القناع القائمة على الأنماط لإدخالها في عائلة Hashcat من أدوات اختراق كلمات المرور. تستخدم الأداة المخرجات التي ينتجها statsgen أعلاه باستخدام العلامة '-o' لإنتاج هجوم القناع الأكثر مثالية مرتبة حسب تعقيد القناع أو تكرار القناع أو نسبة الاثنين (الفهرس الأمثل).

دعنا نشغل MaskGen مع إخراج StatGen فقط كوسيطة:

root@kitploit:~
$ python maskgen.py rockyou.masks

                       _ 
     MaskGen #.#.#    | |
      _ __   __ _  ___| | _
     | '_ \ / _` |/ __| |/ /
     | |_) | (_| | (__|   < 
     | .__/ \__,_|\___|_|\_\
     | |                    
     |_| [email protected]


[*] تحليل الأقنعة في [rockyou.masks]
[*] استخدام 1,000,000,000 مفتاح/ثانية للحسابات.
[*] فرز الأقنعة حسب [optindex].
[*] انتهى من إنشاء الأقنعة:
    الأقنعة المُنشأة: 146578
    تغطية الأقنعة:  100% (14344390/14344390)
    وقت تشغيل الأقنعة:   >1 سنة

هناك عدة معلومات يجب ملاحظتها:

  • السرعة الافتراضية للاختراق المستخدمة في الحسابات هي 1,000,000,000 مفتاح/ثانية.
  • وضع الفرز الافتراضي هو [optindex] المكافئ للعلامة --optindex.
  • تم إنشاء 146,578 قناعًا فريدًا بتغطية 100%
  • إجمالي وقت تشغيل جميع الأقنعة المُنشأة هو أكثر من عام.

تحديد الوقت المستهدف

نظرًا لأنك عادةً ما تكون محدودًا في الوقت لأداء وصياغة الهجمات، يسمح لك maskgen بتحديد مقدار الوقت المتاح لك لتنفيذ هجمات القناع وسيقوم بإنشاء المجموعة الأكثر مثالية من الأقنعة بناءً على وضع الفرز. دعنا نجرب قليلاً بأوضاع فرز مختلفة وأوقات مستهدفة:

root@kitploit:~
$ python maskgen.py rockyou.masks --targettime 600 --optindex -q
[*] تحليل الأقنعة في [rockyou.masks]
[*] استخدام 1,000,000,000 مفتاح/ثانية للحسابات.
[*] فرز الأقنعة حسب [optindex].
[!] تم تجاوز الوقت المستهدف.
[*] انتهى من إنشاء الأقنعة:
    الأقنعة المُنشأة: 779
    تغطية الأقنعة:  56% (8116195/14344390)
    وقت تشغيل الأقنعة:   0:11:36


$ python maskgen.py rockyou.masks --targettime 600 --complexity -q
[*] تحليل الأقنعة في [rockyou.masks]
[*] استخدام 1,000,000,000 مفتاح/ثانية للحسابات.
[*] فرز الأقنعة حسب [complexity].
[!] تم تجاوز الوقت المستهدف.
[*] انتهى من إنشاء الأقنعة:
    الأقنعة المُنشأة: 5163
    تغطية الأقنعة:  31% (4572346/14344390)
    وقت تشغيل الأقنعة:   0:10:01


$ python maskgen.py rockyou.masks --targettime 600 --occurrence -q
[*] تحليل الأقنعة في [rockyou.masks]
[*] استخدام 1,000,000,000 مفتاح/ثانية للحسابات.
[*] فرز الأقنعة حسب [occurrence].
[!] تم تجاوز الوقت المستهدف.
[*] انتهى من إنشاء الأقنعة:
    الأقنعة المُنشأة: 4
    تغطية الأقنعة:  16% (2390986/14344390)
    وقت تشغيل الأقنعة:   1:34:05

جميع عمليات التشغيل أعلاه لها وقت مستهدف يبلغ 600 ثانية (أو 10 دقائق) مع أوضاع فرز مختلفة. بناءً على تجاربنا، يمكن للأقنعة المُنشأة باستخدام وضع الفرز OptIndex اختراق 56% من كلمات مرور RockYou في حوالي 10 دقائق. في الوقت نفسه، لا تتمتع الأقنعة المُنشأة باستخدام وضع الفرز Occurrence بتغطية ضعيفة بنسبة 16% فقط فحسب، بل تجاوزت أيضًا الوقت المستهدف المحدد بأكثر من ساعة.

ملاحظة: يمكن أن تكون الأقنعة المرتبة حسب التعقيد فعالة جدًا عند مهاجمة القوائم القائمة على السياسات.

دعنا نرى بعض الأقنعة المُنشأة بواسطة maskgen في وضع optindex باستخدام العلامة --showmasks:

root@kitploit:~
$ python maskgen.py rockyou.masks --targettime 43200 --optindex -q --showmasks
[*] تحليل الأقنعة في [rockyou.masks]
[*] استخدام 1,000,000,000 مفتاح/ثانية للحسابات.
[*] فرز الأقنعة حسب [optindex].
[L:] القناع:                          [ التكرار:  ] [ الوقت:  ]
...
[ 7] ?l?d?s?l?l?d?d                 [6      ] [ 0:00:00]  
[ 8] ?s?l?l?l?l?l?l?s               [3480   ] [ 0:05:36]  
[ 9] ?l?l?l?l?d?d?d?d?s             [1553   ] [ 0:02:30]  
[ 8] ?d?l?d?d?d?l?l?l               [47     ] [ 0:00:04]  
[ 8] ?d?l?l?d?l?d?d?l               [47     ] [ 0:00:04]  
[ 8] ?d?l?l?d?d?l?d?l               [47     ] [ 0:00:04]  
[ 8] ?d?l?d?l?d?d?l?l               [47     ] [ 0:00:04]  
[ 8] ?d?d?l?l?d?l?d?l               [47     ] [ 0:00:04]  
[ 8] ?d?l?d?d?l?l?l?l               [122    ] [ 0:00:11]  
[ 8] ?u?u?d?u?d?d?d?d               [18     ] [ 0:00:01]  
[ 6] ?d?s?s?s?s?s                   [4      ] [ 0:00:00]  
[10] ?l?l?l?l?l?l?l?l?d?d           [213109 ] [ 5:48:02]  
[!] تم تجاوز الوقت المستهدف.
[*] انتهى من إنشاء الأقنعة:
    الأقنعة المُنشأة: 3970
    تغطية الأقنعة:  74% (10620959/14344390)
    وقت تشغيل الأقنعة:   16:10:38

تتبع الأقنعة المعروضة تنسيقًا بديهيًا إلى حد ما:

[ 9] ?l?l?l?l?d?d?d?d?s [1553 ] [ 0:02:30] \ \ \
\ _ القناع المُنشأ \ _ وقت تشغيل القناع \
_ طول القناع _ تكرار القناع

في العينة أعلاه يمكنك رؤية بعض المنطق الذي يدخل في إنشاء القناع. على سبيل المثال، في حين أن قناع '?s?l?l?l?l?l?l?s' لديه أحد أطول أوقات التشغيل في العينة (5 دقائق)، إلا أنه لا يزال يتمتع بأولوية أعلى بسبب تكراره المرتفع نسبيًا مقارنة بـ '?l?l?l?l?d?d?d?d?s'. في الوقت نفسه، في حين أن '?l?d?s?l?l?d?d' له تغطية منخفضة إلى حد ما، إلا أنه لا يزال يحصل على أولوية أعلى من الأقنعة الأخرى لأنه كقناع مكون من ستة أحرف فقط يتم تنفيذه بسرعة كبيرة.

تحديد مرشحات القناع

يمكنك تحسين هجمات القناع المُنشأة بشكل أكبر باستخدام المرشحات. على سبيل المثال، قد يكون لديك أجهزة قوية بما يكفي حيث يمكنك ببساطة القيام بهجوم القوة العمياء لجميع كلمات المرور حتى 8 أحرف. في هذه الحالة، يمكنك إنشاء أقنعة أكبر من 8 أحرف فقط باستخدام العلامة --minlength كما يلي:

root@kitploit:~
$ python maskgen.py rockyou.masks --targettime 43200 --optindex -q --minlength 8
[*] تحليل الأقنعة في [rockyou.masks]
[*] استخدام 1,000,000,000 مفتاح/ثانية للحسابات.
[*] فرز الأقنعة حسب [optindex].
[!] تم تجاوز الوقت المستهدف.
[*] انتهى من إنشاء الأقنعة:
    الأقنعة المُنشأة: 585
    تغطية الأقنعة:  41% (5905182/14344390)
    وقت تشغيل الأقنعة:   15:50:36

بطبيعة الحال، انخفضت تغطية القناع المُنشأ، لكن هذه المرشحات تصبح مفيدة عند تحضير مجموعة من الأقنعة عند مهاجمة قوائم كلمات المرور غير تلك المستخدمة لإنشائها.

القائمة أدناه توضح مرشحات إضافية يمكنك استخدامها:

root@kitploit:~
  خيارات مرشح القناع الفردي:
    --minlength=8       الحد الأدنى لطول كلمة المرور
    --maxlength=8       الحد الأقصى لطول كلمة المرور
    --mintime=3600      الحد الأدنى لوقت تشغيل القناع (بالثواني)
    --maxtime=3600      الحد الأقصى لوقت تشغيل القناع (بالثواني)
    --mincomplexity=1   الحد الأدنى للتعقيد
    --maxcomplexity=100
                        الحد الأقصى للتعقيد
    --minoccurrence=1   الحد الأدنى للتكرار
    --maxoccurrence=100
                        الحد الأقصى للتكرار

يمكن أن تكون علامات التكرار والتعقيد قوية بشكل خاص لضبط الأقنعة المُنشأة باستخدام أوضاع فرز مختلفة.

حفظ الأقنعة المُنشأة

بمجرد أن تصبح راضيًا عن الأقنعة المُنشأة أعلاه، يمكنك حفظها باستخدام العلامة -o:

root@kitploit:~
$ python maskgen.py rockyou.masks --targettime 43200 --optindex -q -o rockyou.hcmask
[*] تحليل الأقنعة في [rockyou.masks]
[*] حفظ الأقنعة المُنشأة في [rockyou.hcmask]
[*] استخدام 1,000,000,000 مفتاح/ثانية للحسابات.
[*] فرز الأقنعة حسب [optindex].
[!] تم تجاوز الوقت المستهدف.
[*] انتهى من إنشاء الأقنعة:
    الأقنعة المُنشأة: 3970
    تغطية الأقنعة:  74% (10620959/14344390)
    وقت تشغيل الأقنعة:   16:10:38

سينتج عن ذلك ملف 'rockyou.hcmask' يمكن استخدامه مباشرة بواسطة مجموعة أدوات Hashcat أو كجزء من برنامج نصي مخصص يتنقل بينها.

التحقق من تغطية القناع

غالبًا ما يكون من المفيد معرفة مدى جودة أداء الأقنعة المُنشأة مقابل القوائم التي تم اختراقها بالفعل. يمكن لـ Maskgen مقارنة مجموعة من الأقنعة بأخرى لمعرفة مدى أدائها إذا تم تجربة أقنعة من قائمة كلمات مرور واحدة مقابل أخرى. دعنا نقارن كيف ستؤدي الأقنعة المُنشأة من قائمة RockYou مقابل قائمة أخرى تم اختراقها مثل Gawker:

root@kitploit:~
$ python statsgen.py ../PACK-0.0.3/archive/gawker.dic -o gawker.masks

$ python maskgen.py gawker.masks --checkmasksfile rockyou.hcmask -q
[*] تحليل الأقنعة في [gawker.masks]
[*] استخدام 1,000,000,000 مفتاح/ثانية للحسابات.
[*] التحقق من تغطية الأقنعة في [rockyou.hcmask]
[*] انتهى من مطابقة الأقنعة:
    الأقنعة المطابقة: 1775
    تغطية الأقنعة:  96% (1048889/1084394)
    وقت تشغيل الأقنعة:   16:25:44

باستخدام المعامل '--checkmasksfile' حاولنا تشغيل الأقنعة داخل ملف 'rockyou.hcmask' الذي تم إنشاؤه سابقًا مقابل الأقنعة من قائمة مسربة نموذجية 'gawker.masks'. نتج عن ذلك تغطية جيدة بنسبة 96% حيث تطابقت 1775 من إجمالي 3970 قناعًا تم إنشاؤها من RockYou مع الأقنعة في قائمة Gawker.

من الممكن أيضًا رؤية تغطية قناع واحد أو أكثر عن طريق تحديدها مباشرة في سطر الأوامر كما يلي:

root@kitploit:~
$ python maskgen.py gawker.masks --checkmasks="?u?l?l?l?l?l?d,?l?l?l?l?l?d?d" -q
[*] تحليل الأقنعة في [gawker.masks]
[*] استخدام 1,000,000,000 مفتاح/ثانية للحسابات.
[*] التحقق من تغطية هذه الأقنعة [?u?l?l?l?l?l?d, ?l?l?l?l?l?d?d]
[*] انتهى من مطابقة الأقنعة:
    الأقنعة المطابقة: 2
    تغطية الأقنعة:  1% (18144/1084394)
    وقت تشغيل الأقنعة:   0:00:04

كلا القناعين المحددين تطابقا مع تغطية 1% فقط.

تحديد السرعة

اعتمادًا على مواصفات الأجهزة الدقيقة الخاصة بك والتجزئة المستهدفة، قد ترغب في زيادة أو تقليل سرعة المفاتيح في الثانية المستخدمة أثناء الحسابات باستخدام المعامل '--pps':

root@kitploit:~
$ python maskgen.py rockyou.masks --targettime 43200 --pps 50000000 -q
[*] تحليل الأقنعة في [rockyou.masks]
[*] استخدام 50,000,000 مفتاح/ثانية للحسابات.
[*] فرز الأقنعة حسب [optindex].
[!] تم تجاوز الوقت المستهدف.
[*] انتهى من إنشاء الأقنعة:
    الأقنعة المُنشأة: 1192
    تغطية الأقنعة:  61% (8754548/14344390)
    وقت تشغيل الأقنعة:   12:17:31

استخدام المعامل '--pps' لمطابقة الأداء الفعلي الخاص بك يجعل الوقت المستهدف أكثر معنى.

PolicyGen

سيفشل الكثير من هجمات القناع والقاموس في البيئة المؤسسية مع الحد الأدنى من متطلبات تعقيد كلمة المرور. بدلاً من اللجوء إلى هجوم القوة العمياء الخالص، يمكننا الاستفادة من قواعد تعقيد كلمة المرور المعروفة أو المخمنة لتجنب تجربة مرشحات كلمات المرور التي لا تتوافق مع السياسة أو بالمقابل التدقيق فقط على كلمات المرور غير المتوافقة. باستخدام PolicyGen، ستتمكن من إنشاء مجموعة من الأقنعة التي تتبع تعقيد كلمة المرور من أجل تقليل وقت الاختراق بشكل كبير.

فيما يلي جلسة نموذجية حيث نقوم بإنشاء جميع أقنعة كلمات المرور الصالحة لبيئة تتطلب رقمًا واحدًا على الأقل، وحرفًا كبيرًا واحدًا، وحرفًا خاصًا واحدًا.

root@kitploit:~
$ python policygen.py --minlength 8 --maxlength 8 --minlower 1 --minupper 1 --mindigit 1 --minspecial 1 -o complexity.hcmask
                       _ 
     PolicyGen #.#.#  | |
      _ __   __ _  ___| | _
     | '_ \ / _` |/ __| |/ /
     | |_) | (_| | (__|   < 
     | .__/ \__,_|\___|_|\_\
     | |                    
     |_| [email protected][*] Saving generated masks to [complexity.hcmask]
[*] Using 1,000,000,000 keys/sec for calculations.
[*] Password policy:
    Pass Lengths: min:8 max:8
    Min strength: l:1 u:1 d:1 s:1
    Max strength: l:None u:None d:None s:None
[*] Generating [compliant] masks.
[*] Generating 8 character password masks.
[*] Total Masks:  65536 Time: 76 days, 18:50:04
[*] Policy Masks: 40824 Time: 35 days, 0:33:09

من المخرجات أعلاه، يمكنك رؤية أننا قمنا بتوليد 40824 قناعًا مطابقة للتعقيد المحدد والتي ستستغرق حوالي 35 يومًا للتشغيل بسرعة 1,000,000,000 مفتاح/ثانية.

في حالة كنت تقوم فقط بتدقيق كلمات المرور ومكلف باكتشاف كلمات المرور غير المتوافقة فقط، يمكنك تحديد العلم '--noncompliant' لعكس الأقنعة المولدة:

root@kitploit:~
$ python policygen.py --minlength 8 --maxlength 8 --minlower 1 --minupper 1 --mindigit 1 --minspecial 1 -o noncompliant.hcmask -q --noncompliant
[*] Saving generated masks to [noncompliant.hcmask]
[*] Using 1,000,000,000 keys/sec for calculations.
[*] Password policy:
    Pass Lengths: min:8 max:8
    Min strength: l:1 u:1 d:1 s:1
    Max strength: l:None u:None d:None s:None
[*] Generating [non-compliant] masks.
[*] Generating 8 character password masks.
[*] Total Masks:  65536 Time: 76 days, 18:50:04
[*] Policy Masks: 24712 Time: 41 days, 18:16:55

لنرَ بعضًا من الأقنعة غير المتوافقة المولدة أعلاه باستخدام العلم '--showmasks':

root@kitploit:~
$ python policygen.py --minlength 8 --maxlength 8 --minlower 1 --minupper 1 --mindigit 1 --minspecial 1 -o noncompliant.hcmask -q --noncompliant --showmasks
[*] Saving generated masks to [noncompliant.hcmask]
[*] Using 1,000,000,000 keys/sec for calculations.
[*] Password policy:
    Pass Lengths: min:8 max:8
    Min strength: l:1 u:1 d:1 s:1
    Max strength: l:None u:None d:None s:None
[*] Generating [non-compliant] masks.
[*] Generating 8 character password masks.
[ 8] ?d?d?d?d?d?d?d?d               [l: 0 u: 0 d: 8 s: 0] [ 0:00:00]  
[ 8] ?d?d?d?d?d?d?d?l               [l: 1 u: 0 d: 7 s: 0] [ 0:00:00]  
[ 8] ?d?d?d?d?d?d?d?u               [l: 0 u: 1 d: 7 s: 0] [ 0:00:00]  
[ 8] ?d?d?d?d?d?d?d?s               [l: 0 u: 0 d: 7 s: 1] [ 0:00:00]  
... 
[ 8] ?s?s?s?s?s?s?s?d               [l: 0 u: 0 d: 1 s: 7] [ 0:07:06]  
[ 8] ?s?s?s?s?s?s?s?l               [l: 1 u: 0 d: 0 s: 7] [ 0:18:28]  
[ 8] ?s?s?s?s?s?s?s?u               [l: 0 u: 1 d: 0 s: 7] [ 0:18:28]  
[ 8] ?s?s?s?s?s?s?s?s               [l: 0 u: 0 d: 0 s: 8] [ 0:23:26]  
[*] Total Masks:  65536 Time: 76 days, 18:50:04
[*] Policy Masks: 24712 Time: 41 days, 18:16:55

كما ترى، جميع الأقنعة تفتقر إلى شرط واحد على الأقل من شروط تعقيد كلمة المرور. ومن المثير للاهتمام أنه مع عدد أقل من الأقنعة المولدة، يستغرق الهجوم وقتًا أطول بسبب الأقنعة طويلة المدى مثل '?s?s?s?s?s?s?s?s'.

تحديد أقصى تعقيد

من الممكن أيضًا تحديد أقصى تعقيد لكلمة المرور باستخدام الأعلام --maxlower و --maxupper و --maxdigit و --maxspecial لضبط هجومك بدقة. على سبيل المثال، فيما يلي موقع نموذجي يفرض سياسة كلمة مرور لكنه لا يسمح بأي أحرف خاصة:

root@kitploit:~
$ python policygen.py --minlength 8 --maxlength 8 --minlower 1 --minupper 1 --mindigit 1 --maxspecial 0 -o maxcomplexity.hcmask -q
[*] Saving generated masks to [maxcomplexity.hcmask]
[*] Using 1,000,000,000 keys/sec for calculations.
[*] Password policy:
    Pass Lengths: min:8 max:8
    Min strength: l:1 u:1 d:1 s:None
    Max strength: l:None u:None d:None s:0
[*] Generating [compliant] masks.
[*] Generating 8 character password masks.
[*] Total Masks:  65536 Time: 76 days, 18:50:04
[*] Policy Masks: 5796 Time: 1 day, 20:20:55

تحليل القواعد

يقوم rulegen.py بتنفيذ تحليل كلمات المرور وتوليد القواعد لمتطفل كلمات المرور Hashcat كما هو موصوف في ورقة تحليل وتوليد قواعد كلمات المرور التلقائي. يُرجى مراجعة هذا المستند لمناقشة مفصلة حول نظرية تحليل وتوليد القواعد.

يمكن أن يكون عكس كلمات المصدر وقواعد تشويه الكلمات من كلمات المرور التي تم اختراقها بالفعل فعالاً جدًا في تنفيذ هجمات ضد التجزئات المشفرة. من خلال إعادة تدوير/توسيع القواعد والكلمات المولدة باستمرار، قد تتمكن من اختراق عدد أكبر من كلمات المرور.

المتطلبات الأساسية

هناك عدة متطلبات أساسية للاستخدام الفعال لـ rulegen.py. تستخدم الأداة مكتبة التدقيق الإملائي Enchant للتواصل مع عدد من محركات التدقيق الإملائي مثل Aspell و MySpell وما إلى ذلك. يجب تثبيت هذه الأدوات قبل الاستخدام. من المهم أيضًا تثبيت القواميس لأي محرك تدقيق إملائي ينتهي بك الأمر إلى استخدامه (بدلاً من ذلك، يمكن استخدام قائمة كلمات مخصصة). أخيرًا، قمت بتضمين PyEnchant للراحة والذي يجب أن يتصل مباشرة بمكتبات Enchant المشتركة؛ ومع ذلك، إذا كانت هناك أي مشكلات، فما عليك سوى إزالة دليل 'enchant' المضمن وتثبيت PyEnchant لتوزيعتك.

للحصول على تفاصيل إضافية حول بناء جملة قواعد Hashcat المحددة، انظر هجوم Hashcat القائم على القواعد.

تحليل كلمة مرور واحدة

الاستخدام الأساسي لـ rulegen.py يتضمن تحليل كلمة مرور واحدة لاكتشاف القواعد تلقائيًا. دعنا نكتشف القواعد وكلمة المصدر المحتملة المستخدمة لتوليد كلمة مرور نموذجية P@55w0rd123:

root@kitploit:~
$ python rulegen.py --verbose --password P@55w0rd123
                       _ 
     RuleGen #.#.#    | |
      _ __   __ _  ___| | _
     | '_ \ / _` |/ __| |/ /
     | |_) | (_| | (__|   < 
     | .__/ \__,_|\___|_|\_\
     | |                    
     |_| [email protected]


[*] Using Enchant 'aspell' module. For best results please install
    'aspell' module language dictionaries.
[*] Analyzing password: P@55w0rd123
[-] Pas sword => {edit distance suboptimal: 8 (7)} => P@55w0rd123
[+] Password => sa@ ss5 so0 $1 $2 $3 => P@55w0rd123
[+] Passwords => sa@ ss5 so0 o81 $2 $3 => P@55w0rd123
[+] Passwords => sa@ ss5 so0 i81 o92 $3 => P@55w0rd123
[+] Passwords => sa@ ss5 so0 i81 i92 oA3 => P@55w0rd123
[+] Password's => sa@ ss5 so0 o81 o92 $3 => P@55w0rd123
[+] Password's => sa@ ss5 so0 o81 i92 oA3 => P@55w0rd123
[+] Password's => sa@ ss5 so0 i81 o92 oA3 => P@55w0rd123

هناك عدة أعلام استخدمناها في هذا المثال:

  • --password - يحدد كلمة مرور واحدة لتحليلها.
  • --verbose - يطبع معلومات مفصلة مثل القواعد المولدة وإحصائيات الأداء.

مزود التدقيق الإملائي

لاحظ أننا نستخدم وحدة Enchant aspell لاكتشاف كلمة المصدر. يمكن تغيير محرك التدقيق الإملائي الدقيق باستخدام العلم --provider كما يلي:

root@kitploit:~
$ python rulegen.py --verbose --provider myspell --password P@55w0rd123 -q
[*] Using Enchant 'myspell' module. For best results please install
    'myspell' module language dictionaries.
...

ملاحظة: يمكن تحديد أولوية محرك المزود باستخدام قائمة مفصولة بفواصل (مثل --provider aspell,myspell).

فرض كلمة المصدر

يمكن تعطيل استخدام محرك اكتشاف كلمة المصدر تمامًا عن طريق تحديد كلمة مصدر باستخدام العلم --word:

root@kitploit:~
$ python rulegen.py -q --verbose --word word --password P@55w0rd123
[*] Analyzing password: P@55w0rd123
[+] word => ^5 ^5 ^@ ^P so0 $1 $2 $3 => P@55w0rd123

من خلال تحديد كلمات مصدر مختلفة، يمكنك الاستمتاع كثيرًا بتجربة محرك توليد القواعد.

تعريف قاموس مخصص

حتمًا ستأتي نقطة يصبح فيها توليد القواعد باستخدام قائمة كلمات محرك التدقيق القياسي غير كافٍ. يمكنك تحديد قائمة كلمات مخصصة باستخدام العلم --wordlist. وهذا مفيد بشكل خاص عند إعادة استخدام كلمات المصدر من جلسة تحليل سابقة:

root@kitploit:~
$ python rulegen.py -q --verbose --wordlist rockyou.txt --password 1pa55w0rd1
[*] Using Enchant 'Personal Wordlist' module. For best results please install
    'Personal Wordlist' module language dictionaries.
[*] Analyzing password: 1pa55w0rd1
[+] password => ^1 ss5 so0 $1 => 1pa55w0rd1

يمكن أن تكون قائمة الكلمات المخصصة مفيدة بشكل خاص عند استخدام كلمات غير مألوفة مثل العامية وكذلك استخدام كلمات المرور التي تم اختراقها بالفعل.

توليد قواعد وكلمات دون المستوى الأمثل

بينما يحاول rulegen.py توليد وتسجيل أفضل كلمات المصدر وكلمات المرور فقط، قد تكون هناك حالات تكون فيها مهتمًا بمزيد من النتائج. استخدم العلمين --morewords و --morerules لتوليد كلمات وقواعد قد تتجاوز مسافة التحرير المثلى:

root@kitploit:~
$ python rulegen.py -q --verbose --password '$m0n3y$' --morerules --morewords
[*] Using Enchant 'aspell' module. For best results please install
    'aspell' module language dictionaries.
[*] Analyzing password: $m0n3y$
[+] money => ^$ so0 se3 $$ => $m0n3y$
[+] moneys => ^$ so0 se3 o6$ => $m0n3y$
[+] mingy => ^$ si0 sg3 $$ => $m0n3y$
[+] many => ^$ sa0 i43 $$ => $m0n3y$
[+] Mooney => sM$ o1m so0 se3 $$ => $m0n3y$

من الممكن توسيع الكلمات المولدة بشكل أكبر باستخدام العلمين --maxworddist و --maxwords. وبالمثل، يمكنك إنتاج المزيد من القواعد باستخدام العلمين --maxrulelen و --maxrules.

تعطيل المحركات المتقدمة

يتضمن rulegen.py عددًا من المحركات المتقدمة لتوليد كلمات وقواعد ذات جودة أفضل. من الممكن تعطيلها لملاحظة الفرق (أو إذا كانت تسبب مشكلات) باستخدام العلمين --simplewords و --simplerules. دعنا نلاحظ كيف تتغير كل من كلمات المصدر والقواعد مع تشغيل هذه الأعلام:

root@kitploit:~
$ python rulegen.py -q --verbose --password '$m0n3y$' --simplewords --simplerules
[*] Using Enchant 'aspell' module. For best results please install
    'aspell' module language dictionaries.
[*] Analyzing password: $m0n3y$
[-] Meany => {edit distance suboptimal: 5 (4)} => $m0n3y$
[+] many => i0$ o20 i43 i6$ => $m0n3y$
[+] mingy => i0$ o20 o43 i6$ => $m0n3y$
[+] money => i0$ o20 o43 i6$ => $m0n3y$
[+] mangy => i0$ o20 o43 i6$ => $m0n3y$
[+] manky => i0$ o20 o43 i6$ => $m0n3y$

لاحظ أن جودة الكلمات والقواعد المولدة انخفضت بشكل كبير مع كلمات مثل 'manky' التي لها علاقة أقل بكلمة المصدر الفعلية 'money'. في الوقت نفسه، تم تقليل القواعد المولدة إلى عمليات إدراج وحذف واستبدال بسيطة.

معالجة قوائم كلمات المرور

الآن بعد أن أتقنت جميع الأعلام والمفاتيح المختلفة، يمكننا محاولة توليد كلمات وقواعد لمجموعة من كلمات المرور. دعنا ننشئ ملفًا نصيًا korelogic.txt يحتوي على كلمات المرور الاختبارية المعقدة إلى حد ما التالية:

root@kitploit:~
&~defcon
'#(4)\
August19681
'&a123456
10-D'Ann
~|Bailey
Krist0f3r
f@cebOOK
Nuclear$(
zxcvbn2010!
13Hark's
NjB3qqm
Sydney93?
antalya%]
Annl05de
;-Fluffy

الآن دعنا نلاحظ تحليل rulegen.py عن طريق تحديد ملف كلمات المرور كأول وسيطة:

root@kitploit:~
$ python rulegen.py korelogic.txt -q
[*] Using Enchant 'aspell' module. For best results please install
    'aspell' module language dictionaries.
[*] Analyzing passwords file: korelogic.txt:
[*] Press Ctrl-C to end execution and generate statistical analysis.
[*] Saving rules to analysis.rule
[*] Saving words to analysis.word
[*] Finished processing 16 passwords in 1.00 seconds at the rate of 15.94 p/sec
[*] Generating statistics for [analysis] rules and words.
[-] Skipped 0 all numeric passwords (0.00%)
[-] Skipped 2 passwords with less than 25% alpha characters (12.50%)
[-] Skipped 0 passwords with non ascii characters (0.00%)

[*] Top 10 rules
[+] ^3 ^1 o4r - 3 (2.00%)
[+] i61 i79 i86 i98 oA1 - 2 (1.00%)
[+] ^- ^0 ^1 i4' o5A - 2 (1.00%)
[+] sS1 i13 T2 - 1 (0.00%)
[+] i61 se9 i86 i98 oA1 - 1 (0.00%)
[+] o61 i79 i86 i98 oA1 - 1 (0.00%)
[+] ^- ^0 ^1 so' i5A - 1 (0.00%)
[+] D3 si0 i55 $e - 1 (0.00%)
[+] i61 i79 se6 i98 oA1 - 1 (0.00%)
[+] i3a o5y o6a i7% o8] - 1 (0.00%)

[*] Top 10 words
[+] Analyze - 1 (0.00%)
[+] defcon - 1 (0.00%)
[+] Kristen - 1 (0.00%)
[+] Bailey - 1 (0.00%)
[+] Augusts - 1 (0.00%)
[+] Annelid - 1 (0.00%)
[+] Hack's - 1 (0.00%)
[+] antlers - 1 (0.00%)
[+] antelope - 1 (0.00%)
[+] xxxv - 1 (0.00%)

باستخدام جميع الإعدادات الافتراضية، تمكنا من إنتاج عدة قواعد عالية الجودة. يعرض التطبيق بعض الإحصائيات الأساسية لأفضل 10 قواعد وكلمات. يتم حفظ جميع القواعد والكلمات المولدة باستخدام الاسم الأساسي 'analysis' افتراضيًا:

  • analysis.word - كلمات مصدر غير مرتبة وغير فريدة
  • analysis-sorted.word - كلمات مصدر مرتبة حسب التكرار وفريدة
  • analysis.rule - قواعد غير مرتبة وغير فريدة
  • analysis-sorted.rule - قواعد مرتبة حسب التكرار وفريدة

لاحظ أنه تم تخطي عدة كلمات مرور مثل '#(4)\ و '&a123456 لأنها لا تمتلك خصائص كافية للمعالجة. بخلاف عدد الأحرف الأبجدية، سيتخطى البرنامج جميع كلمات المرور الرقمية وكلمات المرور التي تحتوي على أحرف غير ASCII. هذا الأخير يرجع إلى خطأ في محرك Enchant آمل إصلاحه في المستقبل مما يسمح بمعالجة الكلمات للعديد من اللغات.

تحديد اسم الأساس للمخرجات

كما ذكر سابقًا، يحفظ rulegen.py ملفات المخرجات باستخدام الاسم الأساسي 'analysis' افتراضيًا. يمكنك تغيير الاسم الأساسي للملف بالعلم --basename أو -b كما يلي:

root@kitploit:~
$ python rulegen.py korelogic.txt -q -b korelogic
[*] Using Enchant 'aspell' module. For best results please install
    'aspell' module language dictionaries.
[*] Analyzing passwords file: korelogic.txt:
[*] Press Ctrl-C to end execution and generate statistical analysis.
[*] Saving rules to korelogic.rule
[*] Saving words to korelogic.word

تصحيح القواعد

قد تكون هناك مواقف تواجه فيها مشكلات في توليد القواعد لمتطفل كلمات المرور Hashcat. يتضمن rulegen.py العلم --hashcat للتحقق من صحة الكلمات والقواعد المولدة باستخدام hashcat نفسه الذي يعمل في وضع --stdout. لكي يعمل هذا الوضع بشكل صحيح، يجب عليك تنزيل أحدث إصدار من hashcat-cli وتحرير المتغير HASHCAT_PATH في المصدر. على سبيل المثال، في وقت كتابة هذا النص، قمت بوضع مجلد hashcat-0.## في دليل PACK وعرّفت HASHCAT_PATH على أنه 'hashcat-0.##/'.

يمكنك أيضًا ملاحظة الأعمال الداخلية لمحرك توليد القواعد باستخدام العلم --debug. لا تقلق بشأن رسائل فشل بعض القواعد، فهذا نتيجة لمحلل مشكلة التوقف الذي يحاول إيجاد حل أمثل وصالح.

الخاتمة

بينما يقدم هذا الدليل عددًا من الطرق لتحليل كلمات المرور وعكس القواعد وتوليد الأقنعة، هناك عدد من الحيل الأخرى التي تنتظر منك اكتشافها. سأكون متحمسًا إذا أخبرتني عن بعض الاستخدامات غير العادية أو الاقتراحات لأي من الأدوات المغطاة.

اختراق سعيد!

-بيتر

تنزيل الأداة