zip字典爆破

在网上找了一些资源,但由于来路不明,很多带有密码的zip文件让我渴望有不可及。

然后在网上找了一些相关的资料,写了一个zip爆破脚本,话不多说,代码献上

import zipfile
import traceback

def reaf_dict(filename):
    dict=[]
    with open(filename,'r') as fm:
        dict = [pwd.strip() for pwd in fm.readlines()] # 按行切割字典
        return dict

def blast(zip_f,pwd):
    try:
        zip_f.extractall('./',pwd=pwd.encode())
        return pwd
    except Exception as e:
        if 'Bad password' in str(e):
            return False
        traceback.print_exc() # 抛出异常

if __name__ =='__main__':
    dict_file="./test.txt"
    zip = input('输入你要爆破的压缩文件')
    zip_file=zipfile.ZipFile(zip)
    for password in reaf_dict(dict_file):
        result = blast(zip_file,password)
        if result:
            print(f'passwd is:{result}')
            break
    else:
            print('not passwd')

1.压缩包和字典以及程序必须放在同一个路径下。

2.如果运行中出现error: Error -3 while decompressing data: incorrect header check错误,不会影响爆破结果,是由于gzip和zlib的头不一致导致的,有兴趣的可以去了解一下https://stackoverflow.com/questions/1838699/how-can-i-decompress-a-gzip-stream-with-zlib

3.常用字典献上:https://github.com/rootphantomer/Blasting_dictionary

结果展示:
image.png

你可能感兴趣的:(zip字典爆破)