Erdem YILDIZ

Siber Güvenlik Araştırmacısı
Python Geliştiricisi
Linux Hayranı

Python ile Zip Şifresi Kırma

Merhaba arkadaşlar bugün python ile yazmış olduğum scripte parametre olarak hedef zip dosyası ve bu dosya üzerinde denenecek olan şifrelerin olduğu (Wordlist) bir dosya yolu verdikten sonra verilen zip'i kırmaya çalışan script'in amacını , kodlarını ve video ile kullanımı göstereceğim. Haydi bir giriş yapalım...

Arkadaşlar bu scripteki amacım şuydu.Bir önceki post'umda sizlere BUSİBER katıldığımı ve orada karşılaştığım sorular üzerine Hash Function script'ini yazdığımı söyledim.Bu script'in amacıda bir öncekiyle aynıdır.CTF'lerde genellike zip'lenmiş bir dosya verilir ve bunu açılmasını ister. Bende bu mantıkta çalışan kullanıcıdan zip'lenmiş dosyanın yolunu ve üzerinde denenecek olan şifrelerin bir listesinin istiyeren zip'lenmiş dosyayı kırmaya çalışan bir script yazmak istedim.Burada verdiğiniz şifrelerin olduğu dosya ne kadar çok detaylı şifre içeriyorsa script'i kırma ihtimalimiz bir hayli fazlalaşıyor.

Kötü kod yazdığım için üzgünüm.Daha iyi bir yazılımcı olmak için yazılım geliştirme ve problem çözme yeteneğim üzerinde hala uğraşmaktayım.
                                        #Zip-Crack.py
                                        import sys
                                        import zipfile
                                        import argparse

                                        def CrackZip(z_file,passwd):
                                            zfile = zipfile.ZipFile(z_file)
                                            try:
                                                zfile.extractall(pwd=passwd)
                                                print "This password is working ---> {}".format(passwd)
                                                return True
                                            except:
                                                print "This password isn't working ---> {}".format(passwd)


                                        def Main():
                                            parse = argparse.ArgumentParser()
                                            parse.add_argument("--f","--zip_file",help="Please enter zip file way")
                                            parse.add_argument("--w","--word-list",help="Please enter the word list")
                                            args = parse.parse_args()


                                            wordlist = args.w
                                            with open(wordlist,"r") as file:
                                                liste = file.readlines()
                                                for i in liste:
                                                    resp = CrackZip(args.f ,i.strip("\n") )
                                                    if resp:
                                                        sys.exit(0)


                                        Main()

                                        

Yukarıda paylaşmış olduğum kodda bir sıkıntı yada yapılabilecek iyileştirmeler için bana ulaşabilirseniz çok sevinirim.Okuduğunuz için çok teşekkür ederim.Esen kalın :)