x32x01
أدارة أكتب كود
- بواسطة x32x01 ||
إنشاء سكربت للقيام بهجمة القوة العمياء Brute-force و التعرف على مكتبة zipfile في بايثون PYTHON
جمع المعلومات و القيام بـ Brute-force
سوف نتحدث اليوم عن Brute-force أو ما تسمى باللغة العربية هجوم القوة العمياء و في هذا الجزء لا نريد أن نتحدث به بشكل كبير, سوف نعطيكم الإختصار و الخلاصة, سنتحدث عن عملية "جمع المعلومات" و عملية information gathering مفترض تكون أول الخيط الذي سوف نمشي به و تكون اول عملية لدينا و مفتروض أن نكون على ثقة كبيرة بأن هذه العملية أي عملية ثانية يتم بنائها عن طريق جمع المعلومات, تعتبر عملية جمع المعلومات هي صلب الموضوع بالقيام بهذه الهجمة, لو أننا جمعنا معلومات صحيحة عن الضحية نستطيع أن نعمل عليه هجوم Brute-force و نكون واثقين بنجاح الهجمة, كلما كانت لدينا معلومات اكثر كلما كانت الثقة اكثر بنجاح الهجمة خصيصاً بمثل هذه الهجمات Brute-force لأنها تعتمد إعتماداً كلياً على جمع المعلومات.أمثلة حية لأسلوب جمع المعلومات
1- ليكن لدينا شخص يعمل في شركة و نعرف عنه معلومات كثيرة جداً مثل "ماهي اكلته المفضلة و تاريخ ميلاده أو ميلاد زوجته و اطفاله و من هم اصدقاءه المفضلين المحببين ....الخ", من الممكن أن نجمع هذه المعلومات و وضعها في word list أو مجموعة من الباسوردات التي ممكن أن نضع انفسنا مكان هذا الشخص, لو كنا نحن في مكانه ما هي الباسوردات الذي سوف نضعها؟ نضع باسوردات مهمة او غيرها, نبدأ بالتخمين عن طريق المعلومات الذي جمعناها عنه.2- لدينا قفل لباب منزل ما و لدينا عدة مفاتيح موجودة و لا نعرف أي مفتاح يقوم بفتح هذا الباب, نقوم بتجريب جميع المفاتيح لحين وضع المفتاح الصحيح و المعلومات الذي لدينا هي مثل قفل هذا الباب يعني هذه معلومة مهمة, و المعلومات الذي جمعناها هي المفاتيح لهذا الباب هذا ابسط شرح.
مكتبة zipfile في بايثون
مكتبة zipfile هي مكتبة مهمة جداً تتعامل مع الملفات المضغوطة من نوع zip و يكون لهذه الملفات باسورد.عمل سكربت تخمين على ملف مضغوط zip
نقوم بضغط أي ملف على سطح المكتب و نضع له باسورد, على سبيل المثال "الباسورد هي sss123 و اسم الملف هو tech". Code:
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 و بعد ذلك قمنا بإنشاء متغير ووضع به عدة باسوردات ضمن لستة للتخمين به اربع باسوردات و احداها صحيح و الباقي غير صحيحات, ثم حددنا مسار الملف المضغوط و أعطيناه المود "r" يعني قراءة هذا الملف و أدخلناه في حلقة لوب ليتم المرور على جميع ما بداخل اللستة for p in list_p يعني إذا p الباسورد موجود في list_p اللستة قم بقراءة المسار و ارجع القيمة بترميز UTF-8 و قلنا له بحال كان الباسورد غلط إطبعه و إطبع العبارة not vaild password و إذا كان الباسورد صحيح إطبعه مع the password is و عند تشغيل السكربت يتم المرور على جميع البيانات في اللسته و يكتب بجانب كل واحدة إذا خطأ لنتجنب كتابتها و اذا صحيحة نجربها و نفتح هذا الملف بها.
التعديل الأخير: