بايثون | شرح مكتبة zipfile وطريقة Brute-force

    بايثون | شرح مكتبة zipfile وطريقة Brute-force

    اليوم سنتعرف على مكتبة مهمة zipfile , تمكننا هذه المكتبة من عمل مهما برنامج WinZip مثل ضغط الملفات وفك ضغطها الى غير ذلك من, اليوم سنستخدم هذه المكتبة في كسر تشفير ملفات zip وتخمين الباسوورد.


    الشرح


    سنقوم باستعمال اهم دوال هذه المكتبة zipFile

    أول خطوة هي بتثبيت مكتبة zipfile بالأمر
    pip install zipfile
    كمثال سنقوم بفك الضغط على ملف مضغوط بصيغة zip 

    الطريقة كالاتي


    أولا استدعاء المكتبة كالاتي:

    import zipfile

    قم بتمرير مسار الملف المراد فك الضغط عنه

    filename = 'archive_protected.zip'

    الى الدالة (ZipFile(filename

    فيصبح الامر

    zip_File = zipfile.ZipFile(filename)

    ثم أضف أمر فك الضغط extractall

    zip_File.extractall()

    بعد ان أخذنا فكرة حول استخدام المكتبة, سنقوم بكتابة سكريبت بسيط جدا للتخمين على ملف مضغوط Brute-Forcing archive.zip

    الطريقة كالاتي


    نستدعي المكتبة بالامر

    import zipfile

    نقوم بانشاء متغير filename ونضع به اسم الملف المضغوط المراد التخمين على رقم السري Password الخاص به

    ملاحظة: 
    ان كان الملف بجانب المشروع نكتفي باسم الملف, أما في حالة كان بمجلد أخر نضع المسار كاملا

    كمثال:

    '/root/project/archive_protected.zip'

    filename = 'archive_protected.zip'

    ننشئء متغير اخر dictionary ونعين له قيمة تحتوي ملف أو قائمة للباسووردات

    dictionary = 'passwordlist.txt'

    قم بانشاء متغير باسم password فارغ سنحتاجه فيما بعد, سيحمل الباسوورد المراد تجربته

    password = None

    الأن نحتاج لفتح الملف المضغوط باستعمال الدالة ZipFile

    فقط نمرر لها اسم الملف المراد فك تشفيره

    zip_to_open = zipfile.ZipFile(filename)

    الان نقوم بقراءة ملف الباسووردات dictionary عبر حلقة for

    with open(dictionary, 'r') as f:
        for line in f.readlines():
            password = line.strip('\n')

    الان نقوم بفك الضغط عن الملف وفي هذه الخطوة سنقوم بتمرير الباسوورد لتجربته عليه (extractall(pwd=password

                try:
                    file_to_open.extractall(pwd=password)

    ان نجح الامر يطبع لك الباسوورد الصحيح وان لم ينجح يقوم بتجربة باسوررد اخر لاننا وضعنا حلقة for

                    password = '[+] Password found: %s' % password
                    print password
                except :
                    print "[!] Password Incorrect: %s" % password


    وهذا السكريبت كاملا


    يمكنك نسخه من هنا

    import zipfile, sys
    filename = 'archive_protected.zip'
    dictionary = 'passwordlist.txt'
    password = None
    zip2Open = zipfile.ZipFile(filename)
    with open(dictionary, 'r') as f:
        for line in f.readlines():
            password = line.strip('\n')
            try:
                zip2Open.extractall(pwd=password)
                print '[+] Password found: %s' % password
                sys.exit(0)
            except:
                print "[!] Password Incorrect: %s" % password


    يمكنكم الدخول على ويكي حاسوب للاطلاع على مهام هذه المكتبة مع الشرح بالعربي

    وثائق المكتبة الاصلية بالانجليزي
    شارك المقال

    مقالات متعلقة

    إرسال تعليق