كيفية تفجير جميع أنواع الهاش باستخدام برنامج hashcat

صفر ، المعرفة الأساسية

1. وظيفة التجزئة

وظيفة التجزئة هي مصطلح عام لنوع من الوظائف. مدخلات هذا النوع من الوظائف هي بيانات ثنائية تعسفية ، والمخرجات هي بيانات ثنائية ذات طول ثابت. يتميز هذا النوع من الوظائف بالخصائص التالية:

  • أحادية الاتجاه: من السهل والسريع الحصول على المخرجات من حساب المدخلات ، ولكن من غير الممكن رياضياً استنتاج المدخلات من المخرجات

  • قيود التصادم: من الصعب للغاية العثور على مدخلين مختلفين لهما نفس المخرجات

يمكن تسمية الوظائف التي تلبي هذه الخصائص بوظيفة التجزئة. يتم استخدام بيانات معينة كمدخل لوظيفة التجزئة ، ويتم حساب الإخراج ، ومن المعتاد تسمية هذا الإخراج بقيمة التجزئة للبيانات. تتمثل إحدى الوظائف الرئيسية لوظيفة التجزئة

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

2.hashcat

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

بناءً على هذه الفكرة ، ظهرت hashcat ، ويقال إن hashcat ولدت لإثبات أن تفجير hash أمر بسيط للغاية. تدعي hashcat أنها أسرع أداة تفجير تجزئة في العالم ، بل إنها تدعم وحدة معالجة الرسومات و FGPA ، إذا كان لديك أي منها.


hashcat ليس سريعًا فحسب ، بل يدعم أيضًا أكثر من مائتي وظيفة تجزئة بشكل احترافي ، باستخدام الأمر:

hashcat --help

يمكنك رؤية قائمة بجميع وظائف التجزئة المدعومة من قبل hashcat ، هناك الكثير منها ولن أقوم بنشرها هنا.

يتم تثبيت hashcat افتراضيًا في Kali ويمكن استخدامه مباشرة. ولكن تم تثبيت Kali الخاص بي في VirtualBox ، وأشعر دائمًا أن الآلة الافتراضية أبطأ ، لذلك أريد استخدام hashcat في المضيف الفعلي. انتقل أولاً إلى الموقع الرسمي لـ hashchat لتنزيل hashcat. حتى الآن ، أحدث إصدار هو الإصدار 3.5.0 ، الذي تم إصداره في 2017.04.05. من تاريخ التحديث ، يمكن ملاحظة أن hashchat مليء بالحيوية. لتجنب مشكلة الترجمة ، يمكنك تنزيل الحزمة الثنائية مباشرة ، وهي 2.7 ميجا فقط ، وهي صغيرة جدًا مقارنة بالألعاب التي تكلف عشرات جيجابايت.

بعد اكتمال التنزيل ، قم بفك ضغط hashcat وسترى:

هي ملفات قابلة للتنفيذ في linux و windows تحت 32 بت و 64 بت ، ما عليك سوى اختيار أحدها وفقًا لحالة جهاز الكمبيوتر الخاص بك. اخترت hashcat64.bin ، من أجل الجمال ، أضف سطرًا في ملف ~/.bashrc:

alias hashcat='مسار hashcat64.bin '

بعد الحفظ ، أعد فتح المحطة الافتراضية لجعل ملف ~/.bashrc ساري المفعول ، وبهذه الطريقة ، أينما كنت ، يمكنك إدخال أمر hashcat مباشرة دون تبديل الدليل أو إدخال "64.bin" القبيح ، كما هو موضح في الصورة أدناه.

حسنًا ، يمكنك الآن البدء في استخدام hashcat لتفجير التجزئة المختلفة.

1. التفجير md5

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

  import hashlib 
  كلمات المرور = ['123123', 'bond007', 'xxxxxx', '*H@&(NT*@BR#^'] 
  لـ كلمة المرور في كلمات المرور: 
    md5 = hashlib.md5() 
    md5.update(كلمة المرور) 
    print md5.hexdigest()

يقوم الكود أعلاه بحساب قيم التجزئة لأربع سلاسل على التوالي ، ونتيجة الإخراج هي:

  4297f44b13955235245b2497399d7a93 
  cbdb7e2b1ed566ceb796af2df07205a3 
  dad3a37aa9d50688b5157698acfd7aee 
  d77db958c179bbffae04b2b908b75c26

احفظ نتيجة الإخراج في الملف md5.hash ، مع قيمة hahs واحدة لكل سطر. ثم استخدم hashcat لتفجير قيم التجزئة هذه. الأمر هو كما يلي:

  hashcat -w 3 -a 0 -m 0 --remove -o md5.out md5.hash wordlist.dic

المعلمة-w تستخدم لتحديد وضع العمل ، وهناك أربعة أنواع ، كما هو موضح في الجدول أدناه:

Nالأداءوقت التشغيلاستهلاك الطاقةتأثير سطح المكتب
1Low2 msLowMinimal
2Default12 msEconomicNoticeable
3High96 msHighUnresponsive
4Nightmare 480 msInsaneHeadless

يتم استخدام المعلمة -a لتحديد وضع الهجوم ، ومعنى 0 هو مباشر ومستمر ، أي أنه يتم تفجيره باستخدام قاموس كلمة المرور ، وهناك خمس قيم لـ -a ، كما هو موضح في الجدول أدناه:

Nوضع
0مستقيم
1مجموعة
3Brute-force
6Hybrid Wordlist + Mask
7Hybrid Mask + Wordlist

-m يستخدم لتحديد التجزئة المراد تفجيرها وظيفة التجزئة للقيمة ، 0 تعني أن وظيفة التجزئة هي md5 ، والقيم الأخرى موضحة في الجدول التالي:

NNameCategory
0MD5Raw Hash
300MySQL4.1/MySQL5خادم قاعدة البيانات
1000NTLMأنظمة التشغيل
1800sha512crypt $6$, SHA512 (Unix)أنظمة التشغيل
2611vBulletin < v3.8.5Forums, CMS, E-Commerce, Frameworks

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

المعلمة – إزالة تعني أنه إذا تم تفجير قيمة تجزئة معينة بنجاح ، تتم إزالة القيمة من md5.hash.

المعلمة -o متبوعة باسم ملف يشير إلى المكان الذي يتم فيه حفظ نتائج التفجير. المعلمتان الأخيرتان من

هما md5. التجزئة وقائمة الكلمات. dic هما قيمة التجزئة وقاموس كلمة المرور المراد تفجيرهما على التوالي. قيمة التجزئة وقاموس كلمة المرور كلاهما واحد في كل سطر. تم حساب المحتوى الموجود في md5.hash بواسطة Python. إذا لم يكن لديك قاموس كلمة مرور مناسب في متناول اليد ، فيمكنك استخدام الأمر:

  wget -O wordlist.dic https://samsclass.info/123/proj10/500_passwords.txt

下载一个。现在完事具备,按下回车,结果华丽地报错:(

  clGetPlatformIDs(): CL_PLATFORM_NOT_FOUND_KHR

ربما يكون هناك بيئة تشغيل مفقودة ، ثم قم بتثبيتها. لقد قمت بتثبيت هذه الأشياء في المجموع:

  sudo apt-get install gcc make p7zip-full git lsb-core 
  wget http://registrationcenter-download.intel.com/akdlm/irc_nas/9019/opencl_runtime_16.1.1_x64_ubuntu_6.4.0.25.tgz 
  tar -xvf opencl_runtime_16.1.1_x64_ubuntu_6.4.0.25.tgz 
  قرص مضغوط opencl_runtime_16.1.1_x64_ubuntu_6.4.0.25 
  sudo ./install.sh

إذا كانت سرعة الشبكة جيدة ، فستكون آمنة في وقت قصير. يبلغ الأمر الأول عن خطأ:

  /sbin/ldconfig.real: /usr/lib/nvidia-375/libEGL.so.1 is not a symbolic link 
  /sbin/ldconfig.real: /usr/lib32/nvidia-375/libEGL.so.1 is not a symbolic link

ولكن يبدو أنه لا يؤثر على أي شيء ، فقط تجاهله. بعد تثبيتها ، اضغط على Enter مرة أخرى لتشغيل الأمر الذي أبلغ عن الخطأ في الأصل ، ووجدت أنه لم يتم الإبلاغ عن خطأ آخر ، وتم الانتهاء من التنفيذ في لمح البصر. بعد تنفيذ الأمر ، تحقق من محتويات الملفين md5.hash و md5.out ، ووجدت أنه لم يتبق سوى تجزئة واحدة في md5.hash ، وقد تم نقل التجزئة الثلاثة التي تم تفجيرها بنجاح إلى الملف md5.out هناك ثلاث قيم تجزئة وقيمتها الأصلية ، كما هو موضح في الشكل أدناه:

2. تفجير كلمة مرور تسجيل الدخول إلى Windows 7 hash

يتم حفظ قيمة التجزئة لكلمة مرور تسجيل الدخول إلى Windows في ملف SAM ، SAM هو اختصار "مدير حساب الأمان". عادة ، يقع في

  C:\Windows\system32\config\SAM

ملف SAM محمي بواسطة Windows ولا يمكن قراءته مباشرة ويتطلب مساعدة أدوات مثل SAMInside. ابحث عن جهاز افتراضي لنظام التشغيل Windows 7 ، وقم بإنشاء مستخدم مسؤول جديد يسمى hashcat ، وقم بتعيين كلمة مرور ، ثم قم بتنزيل وفك ضغط SAMInside في نظام التشغيل Windows 7 وتشغيله بامتيازات المسؤول ، ثم انقر فوق File-> Import Local Users vis Scheduler ، كما هو موضح في الشكل أدناه: قد يكون SAMInside "غير مستجيب" بعد

، ولكن لا يهم ، انتظر بصبر لبضع ثوانٍ ، ويرقى SAMInside إلى مستوى التوقعات ويقرأ التجزئة التي نريدها ، كما هو موضح في الشكل أدناه:

حدد المستخدم "hashcat" الذي نريد تفجير كلمة المرور الخاصة به ، واضغط على Ctrl+5 لنسخ NT-hash ، ثم عد إلى Ubuntu حيث تم تثبيت hashcat ، استخدم الأمر التالي لحفظ قيمة التجزئة المنسوخة في الملف win7.hash:

  echo 356ceae0c89fb6b6b 
  hashcat -w 3 -a 0 -m 1000 --remove -o win7.out win7.hash wordlist.dic

تم الانتهاء من التنفيذ بعد لحظة ، وتحقق من ملف win7.out ووجد أن التفجير كان ناجحًا ، وكلمة مرور تسجيل الدخول للمستخدم hashcat هي rush2112:

  werner@Yasser:~/hashcat$ cat win7.out 
  356ceae0c89fb65ed6d6aa7a445c4ce5:rush2112

كيفية الحصول على ملف SAM ، يرجى الرجوع إلى "كيفية تصدير سلسلة تجزئة Windows 1". فيما يلي سجل لعملية قراءة ملف SAM في الجهاز الظاهري Windows 7.

إذا كان جهازًا فعليًا ، فاستخدم Win PE لبدء تشغيل الجهاز واقرأ ملف SAM الموجود على القرص. جهازي هو جهاز افتراضي ، يمكنك قراءة الملفات الموجودة على القرص الافتراضي عن طريق تثبيت ملف القرص الافتراضي في نظام الملفات. الجهاز الظاهري الذي أستخدمه هو VirtualBox ، ويمكن القيام بذلك باستخدام الأمر vdfuse. إذا لم يكن لديك vdfuse ، فأنت بحاجة إلى تثبيت virtualbox-fuse أولاً:

  sudo apt-get install virtualbox-fuse

يمكنك أيضًا تنزيل حزمة تثبيت virtualbox-fuse بنفسك.

بعد اكتمال التثبيت ، سيكون لديك أمر vdfuse ، ويمكنك بدء تعيين القرص الافتراضي وتركيبه:

  mkdir -p ~/vmdisk 
  sudo vdfuse -t vmdk -f Win7Pro32.vmdk ~/vmdisk/

بعد تنفيذ هذه الخطوة ، انظر إلى دليل ~/vmdisk ، الذي يحتوي على ثلاثة ملفات: EntireDisk و Partition1 و Partition2 ، قم بإنشاء دليل جديد:

  mkdir -p ~/vmdisk_en 
  mkdir -p ~/vmdisk_1 
  mkdir -p ~/vmdisk_2

استخدم الأمر mount لتركيب الملفات الثلاثة EntireDisk و Partition1 و Partition2 على التوالي:

  sudo mount ~/vmdisk/EntireDisk   ~/vmdisk_en 
  sudo mount ~/vmdisk/Partition1   ~/vmdisk_1 
  sudo mount ~/vmdisk/Partition2   ~/vmdisk_2

وجدت أن تركيب القرص بالكامل فشل ، والمحتوى الموجود في القسم 1 ليس ما أردته ، والملف الموجود في الجهاز الظاهري Windows 7 في القسم 2 هو بالضبط ما أردته. انسخ ملف SAM الهدف الخاص بنا من vmdisk_fs:

  cp ~/vmdisk_2/Windows/System32/config/SAM ./

بالمناسبة ، انسخ ملف النظام أيضًا:

  cp ~/vmdisk_2/Windows/System32/config/SYSTEM ./

عرض محتوى ملف SAM ، كما هو موضح في الشكل أدناه ، ليس ملفًا نصيًا عاديًا ، بل هو بالفعل نمط Windows ،

حسنًا ، على الرغم من فتح ملف SAM بنجاح ، إلا أننا ما زلنا لا نحصل على التجزئة ، ماذا يجب أن نفعل بعد ذلك ؟ لا يمكنك تحليل محتويات ملف SAM إلا بمساعدة الأدوات. أدخل كل من ملف sam وملف النظام إلى Kali وقم بتشغيل الأمر:

  samdump2 -o sam.hash SYSTEM sam

ثم تحقق من sam.hash ، ويمكنك أيضًا رؤية قيمة التجزئة لكلمة مرور تسجيل الدخول لكل مستخدم. كل سطر في ملف sam.hash هو مستخدم ، وتنسيق كل سطر هو:

   اسم المستخدم: RID: LM-hash value: NTLM-hash value 

لاحظ أن هذا التنسيق هو تنسيق إخراج أمر samdump2 ، وليس "تنسيق كلمة مرور التجزئة تحت Windows".

3. تفجير تجزئة كلمة مرور تسجيل الدخول إلى linux

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

  sudo adduser justforfun

يتم تخزين قيمة التجزئة لكلمة مرور تسجيل الدخول للمستخدم في linux في الملف /etc/shadow (ملاحظة: ليس /etc/passwd). استخدم الأمر التالي لعرض قيمة التجزئة لكلمة مرور تسجيل الدخول للمستخدم الجديد:

test@test-VirtualBox:~$ sudo tail -n 1 /etc/shadow 
justforfun:$6$0fokwg59$6hpMS5dM9wDT/42DDoSD0i0g/wHab50Xs9iEvVLC3V20yf1kRmXZHGXCM0Efv6XU69hdgMZ4FwaMzso4hQaGQ0:17373:0:99999:7:::

يستخدم الأمر الذيل لقراءة الأسطر القليلة الأخيرة من الملف. الافتراضي هو 10 أسطر. استخدم المعلمة -n لتحديد عدد الأسطر. المستخدم الذي أنشأناه للتو موجود بشكل طبيعي في السطر الأخير ، لذلك استخدم tail -n 1 لقراءته. نتيجة القراءة هي بيانات مقسمة بـ ":". الجزء الأول هو اسم المستخدم "justforfun"، والجزء الثاني هو قيمة التجزئة لكلمة المرور. لا داعي للقلق بشأن الأجزاء الأخرى في هذه المقالة. نركز على الجزء الثاني.

يشير "$6$" الذي يبدأ بـ

إلى أن نوع وظيفة التجزئة المستخدمة هو SHA-512. بالإضافة إلى "$6$"، في linux ، يشير "$1$" إلى MD5 ، و"$2a$" إلى Blowfish ، و"$2y$" يشير إلى Blowfish (المعالجة الصحيحة للأحرف 8 بت)، "$5$" يشير إلى SHA-256 ، انظر ويكيبيديا: passwd للحصول على التفاصيل. بالإضافة إلى ذلك ، يوضح الملف /etc/login.defs أيضًا خوارزمية التجزئة.

الجزء "0fokwg59" الذي يبدأ من "$6$" حتى قبل "$" التالي هو ملح (SALT). ما هو الملح ؟ يعرف Baidu أن إجابة CNB2009 على السؤال " ما هي قيمة ملح md5 " بسيطة وسهلة الفهم:

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

هذه الإجابة مخصصة لـ md5 ، وينطبق الشيء نفسه على وظائف التجزئة الأخرى. الجزء بعد الملح هو قيمة التجزئة. الآن انسخ الجزء الثاني بالكامل إلى الملف linux.hash ، يجب أن يكون محتوى linux.hash هو:

 $6$0fokwg59$6hpMS5dM9wDT/42DDoSD0i0g/wHab50Xs9iEvVLC3V20yf1kRmXZHGXCM0Efv6XU69hdgMZ4FwaMzso4hQaGQ0

ثم استخدم الأمر التالي لتفجير كلمة مرور تسجيل الدخول إلى linux:

  hashcat -w 3 -a 0 -m 1800 --remove -o linux.out linux.hash wordlist.dic

بعد لحظات اكتمل التفجير شاهد النتائج:

werner@Yasser:~/hashcat$ cat linux.out 
$6$0fokwg59$6hpMS5dM9wDT/42DDoSD0i0g/wHab50Xs9iEvVLC3V20yf1kRmXZHGXCM0Efv6XU69hdgMZ4FwaMzso4hQaGQ0:4321

يمكن ملاحظة أن التفجير كان ناجحًا.

4. تفجير كلمة مرور تسجيل الدخول إلى Mysql hash

أولاً ، يجب أن يكون لديك Mysql. لقد حدث أن يكون لدي في جهازي الافتراضي. تعرف Baidu أن قيمة التجزئة لكلمة مرور تسجيل الدخول Mysql محفوظة في الملف user.MYD. أين هو الملف user.MYD ؟ لا أعرف أيضًا ، فقط ابحث عنه:

  test@test-VirtualBox:~$ sudo find / -name user.MYD 
  /var/lib/mysql/mysql/user.MYD

تم العثور عليه في /var/lib/mysql/mysql/user.MYD ، عرض محتوى الملف:

  sudo cat /var/lib/mysql/mysql/user.MYD

ليس ملفًا نصيًا عاديًا ، لا يهم كثيرًا ، ولا يزال من الممكن أن نرى أن قيمة التجزئة لكلمة مرور تسجيل الدخول لجذر المستخدم هي:

  6B825255FB466413D6B1B724644E23428C94BBCB

احفظ هذه القيمة في الملف mysql.hash واستخدم الأمر التالي لتفجير تجزئة كلمة مرور تسجيل الدخول mysql:

 {

}

بعد لحظات ، تم الانتهاء من التفجير ، شاهد النتائج:

  werner@Yasser:~/hashcat$ cat mysql.out 
  6b825255fb466413d6b1b724644e23428c94bbcb:viper

يمكن ملاحظة أن التفجير كان ناجحًا.

5. تفجير ديسكوز! كلمة سر المنتدى

Discuz! إنه برنامج منتدى php معروف في الصين ويستخدم على نطاق واسع. الآن دعونا نفجر Discuz! قيمة التجزئة لكلمة مرور المستخدم. أولاً ، علينا أن نجد قيمة التجزئة ، أين يمكنني العثور عليها ؟ من Discuz ، بالطبع! في قاعدة البيانات.

يمكن مناقشتها! أين قاعدة البيانات ؟ هكذا قمت بحلها ، قم بتنزيل أحدث إصدار من Discuz من موقعه الرسمي! الكود المصدر ، قم بتشغيل التثبيت ، وستحصل على Discuz! قاعدة بيانات :smile:

Discuz! اسم قاعدة البيانات الافتراضي هو ultrax ، ويحتفظ جدول pre_ucenter_members بقيمة التجزئة لكلمة مرور تسجيل الدخول. "pre_" هي البادئة الافتراضية ويمكن تغييرها أثناء التثبيت. لن يتغير "ucenter_members". استخدم عبارة sql التالية للاستعلام عن قيمة التجزئة لكلمة مرور تسجيل الدخول:

  select password,salt from pre_ucenter_members; 

احفظ قيمة التجزئة وقيمة الملح في الملف:

     echo   69bcba126b93c6f397983629a0f70553: c13fd9   >   discuz.hash 

قيمة التجزئة وقيمة الملح في نفس الصف ، مقسمة بواسطة ":". أخيرًا ، استخدم الأمر التالي لتفجير كلمة مرور تسجيل الدخول Discuz hash:

  hashcat -w 3 -a 0 -m 2611 --remove -o discuz.out discuz.hash wordlist.dic

بعد لحظات ، تم الانتهاء من التفجير ، شاهد النتائج:

  werner@Yasser:~/hashcat$ cat discuz.out 
  69bcba126b93c6f397983629a0f70553:c13fd9:winter

يمكن ملاحظة أن التفجير كان ناجحًا.

6. اختبار القاموس الكبير

حتى الآن ، نستخدم قاموسًا صغيرًا يحتوي على 500 كلمة فقط ، ويستغرق الأمر لحظة واحدة فقط في كل مرة لتفجير التجزئة المختلفة بنجاح ، أليس من الغريب ؟ وذلك لأنني قمت عمدًا بتعيين كلمة مرور ضعيفة في القاموس لممارسة استخدام hashcat ، وإلا فلن يجعل الناس يشعرون بالسوء إذا لم يتم الكشف عنها. من المستحيل الحصول على مثل هذا الحظ الجيد في الممارسة العملية. دعونا نحسب بشكل عرضي قيمة md5 لكلمة مرور أقل ضعفًا ، ونفجرها باستخدام قاموس كبير ، ونجرب حظنا من ناحية ، ونرى مدى سرعة hashcat من ناحية أخرى.

احسب قيمة md5 أولاً:

  import hashlib 
  md5 = hashlib.md5() 
  md5.update("werner123456!!!") 
  print md5.hexdigest()

الإخراج هو:

  b17133f9abff287ed0546c1af2b171f7

ثم حدد قاموس بحجم 10.5 جيجا يحتوي على 940 مليون كلمة مرور وابدأ التفجير:

  hashcat -w 3 -a 0 -m 0 --remove -o big.out b17133f9abff287ed0546c1af2b171f7 big.dic

لاحظ أنه عندما يكون هناك قيمة تجزئة واحدة فقط ، يمكنك كتابتها مباشرة في معلمات سطر الأوامر بدلاً من حفظها في ملف. بدأ التفجير قبل الذهاب إلى النوم ، واستيقظت في اليوم التالي لرؤية النتائج ووجدت:

  بدأ: Wed Jul 26 22:55:27 2017 
  توقف: Wed Jul 26 23:02:28 2017

اتضح أنه استغرق 7 دقائق فقط! اعتقدت أن الأمر سيستغرق 7 ساعات ، وهو أسرع بـ 60 مرة مما كنت أتوقع! من المؤسف أن قيمة التجزئة لم تكسر بنجاح ، ويبدو أن "werner123456!!!" ليست موجودة في قاموس كلمة المرور. يبدو أنني بحاجة إلى إعداد قاموس كلمات مرور بحجم 100 جيجا ، ولكن من غير المناسب حفظ ونقل مثل هذا القاموس الكبير ، ألا توجد طريقة أخرى ؟ بالطبع ، هل تتذكر وضع الهجوم ؟ لقد استخدمنا وضع "Straight" ، بعد ذلك ، دعونا ندرس العديد من الأوضاع الأخرى.

7. ملخص

استخدم hashcat لتفجير التجزئة. الخطوة الأولى هي العثور على التجزئة الصحيحة. تحتوي الأنظمة المختلفة والبرامج المختلفة على مواقع مختلفة لتخزين التجزئة ، لذلك تحتاج إلى العثور على التجزئة بدقة القيمة ؛ والثاني هو الحكم بشكل صحيح على نوع التجزئة ، وتحديد ما إذا كان hashcat يدعم هذا النوع من التجزئة ، واختيار المعلمة الصحيحة -m ، وإلا فمن المستحيل تقريبًا النجاح ؛ والثالث هو أن قاموس كلمة المرور أفضل ، فما إذا كان من الممكن تفجيره بنجاح في النهاية يعتمد على القاموس. على الرغم من أن قاموس كلمة المرور ليس أكبر كلما كان ذلك أفضل ، إلا أنه لا يزال من الأفضل دائمًا أن يكون أكبر. تشتهر hashcat أيضًا بسرعتها. القواميس الكبيرة ليست مشكلة بالنسبة لـ hashcat. إليك قاموس أفضل: أبواب التسرب السابقة + مجموعة قاموس كلمات المرور الضعيفة شائعة الاستخدام. 7Z، كلمة مرور فك الضغط هي: anywlan. بالإضافة إلى ذلك ، إذا قمت بجمع الكثير من القواميس الصغيرة ، فيمكنك دمج القواميس الصغيرة وفرزها وإزالة تكرارها للحصول على قاموس كبير لتسهيل تفجير hashcat. إذا كان القاموس الصغير في نفس الدليل ، فيمكنك القيام بذلك باستخدام أمر واحد:

    cat * | sort | uniq > Merge.dic

ماذا لو تم تنظيم القاموس الصغير حسب الفئة وتوزيعه في دليل متعدد الطبقات ؟ من الواضح أن استخدام أمر cat فقط لا يكفي ، ولكنه في الواقع يتطلب أمرًا واحدًا فقط. بافتراض أن جميع القواميس الصغيرة مخزنة في الدليل MyDictionary ، يمكن كتابة الأمر على النحو التالي:

    find ./MyDictionary -type f -exec cat {} \;  | sort | uniq > Merge.dic

المادة السابقةما هي أنواع الملفات المشفرة التي يمكن أن يفهمها ماستر استعادة كلمة المرور للمستندات؟وفيما يلي ملفات تنسيق دعم الكسر
المادة التاليةعدة أنماط هجوم من hashcat

المقالة العليا

  • ركز على Word ، Excel ، PPT ، PDF ، RAR ، ZIP ، 7Z ، الحزم المضغوطة ، فتح وفك تشفير ملفات Office المشفرة
  • نحن نوفر للمستخدمين استعادة كلمة مرور الحزمة المضغوطة للملفات عالية الجودة ، وإلغاء قفل PDF واسترداد كلمة مرور Word
  • حقوق النشر © سيد استعادة كلمة مرور المستندات منصة فك التشفير عبر الإنترنت