recent
أخبار ساخنة

إنشاء سكربت للقيام بتخمين Brute-force والتعامل مع مكتبة zipfile في بايثون

الصفحة الرئيسية
مكتبة zipfile في بايثون

جمع المعلومات و القيام بـ Brute-force

هجمة Brute-Force هجوم القوة العمياء, سوف نتحدث اليوم عن Brute-force أو ما تسمى باللغة العربية هجوم القوة العمياء.

و في هذا الجزء لا نُريد أن نتحدث به بشكل كبير, سوف نعطيكم الإختصار و الخلاصة, سنتحدث عن عملية "جمع المعلومات" و عملية information gathering مفترض تكون أول الخيط الذي سوف نمشي به.

و تكون اول عملية لدينا و مفتروض أن نكون على ثقة كبيرة بأن هذه العملية أي عملية ثانية يتم بنائها عن طريق جمع المعلومات.

تعتبر عملية جمع المعلومات هي صلب الموضوع بالقيام بهذه الهجمة, لو أننا جمعنا معلومات صحيحة عن الضحية نستطيع أن نعمل عليه هجوم Brute-force و نكون واثقين بنجاح الهجمة.

كلما كانت لدينا معلومات اكثر كلما كانت الثقة اكثر بنجاح الهجمة خصيصاً بمثل هذه الهجمات Brute-force لأنها تعتمد إعتماداً كلياً على جمع المعلومات.

 

أمثلة حية لأسلوب جمع المعلومات

المثال الأول

ليكن لدينا شخص يعمل في شركة و نعرف عنه معلومات كثيرة جداً مثل "ماهي اكلته المفضلة و تاريخ ميلاده أو ميلاد زوجته و اطفاله و من هم اصدقاءه المفضلين المحببين ....الخ".

من الممكن أن نجمع هذه المعلومات و وضعها في word list أو مجموعة من الباسوردات التي ممكن أن نضع انفسنا مكان هذا الشخص.

لو كنا نحن في مكانه ما هي الباسوردات الذي سوف نضعها؟ نضع باسوردات مهمة أو غيرها, نبدأ بالتخمين عن طريق المعلومات الذي جمعناها عنه.

 

المثال الثاني

لدينا قفل لباب منزل ما و لدينا عدة مفاتيح موجودة و لا نعرف أي مفتاح يقوم بفتح هذا الباب, نقوم بتجريب جميع المفاتيح لحين وضع المفتاح الصحيح.

و المعلومات التي لدينا هي مثل قفل هذا الباب يعني هذه معلومة مهمة, و المعلومات الذي جمعناها هي المفاتيح لهذا الباب هذا ابسط شرح.


مكتبة zipfile في بايثون

مكتبة zipfile هي مكتبة مهمة جداً تتعامل مع الملفات المضغوطة من نوع zip و يكون لهذه الملفات باسورد.

 

عمل سكربت تخمين على ملف مضغوط zip

نقوم بضغط أي ملف على سطح المكتب و نضع له باسورد, على سبيل المثال "الباسورد هي sss123 و اسم الملف هو tech".

import zipfile
list_p = ["data","123456","sss123","cs"]
zfile = zipfile.ZipFile("C:\\Users\\data\\Desktop\\tech.zip","r")
for p in list_p:
try:
zfile.extractall("C:\\Users\\data\\Desktop\\",pwd=p.encode("utf-8"))
except RuntimeError :
print("not vaild password {0}".format(p))
else:
print("the password is {0}".format(p))

مكتبة zipfile في لغة بايثون و إستخدامها


في البداية قمنا بإستدعاء المكتبة zipfile و بعد ذلك قمنا بإنشاء متغير ووضع به عدة باسوردات ضمن لستة للتخمين به اربع باسوردات و احداها صحيح و الباقي غير صحيحات.

ثم حددنا مسار الملف المضغوط و أعطيناه المود "r" يعني قراءة هذا الملف و أدخلناه في حلقة لوب ليتم المرور على جميع ما بداخل اللستة for p in list_p.

يعني إذا p الباسورد موجود في list_p اللستة قم بقراءة المسار و ارجع القيمة بترميز UTF-8 و قلنا له بحال كان الباسورد غلط إطبعه و إطبع العبارة not vaild password.

و إذا كان الباسورد صحيح إطبعه مع the password is و عند تشغيل السكربت يتم المرور على جميع البيانات في اللسته و يكتب بجانب كل واحدة إذا خطأ لنتجنب كتابتها و إذا صحيحة نجربها و نفتح هذا الملف بها.

لتحميل ملف الشرح قم بالضغط على زر التحميل الآتي ليتم التحميل

google-playkhamsatmostaqltradent