最详细Python批量字典暴力破解zip密码
工具破解
前两天在网上下来了一波项目案例,结果全是加密的压缩包,于是去网上找了一个压缩包破解的工具
苦于工具破解太慢,一个压缩包要好久,解压了三个之后就放弃了,准备另寻他法
密码字典
巧的是破解的三个都是4位数字密码,这让我想到了依靠字典破解
说干就干,伸手就来

#生成从0000到9999的密码表
f = open('passdict4.txt','w')
for id in range(10000):
password = str(id).zfill(4)+'\n'
f.write(password)
f.close()
果然猜想没错,破解速度的确快了不
习大大说,科技是第一生产力,创新是引领发展的第一动力
既然有更快速的方法,那为什么不研究个自动的方法出来呢
ZipFile库
Python有个叫ZipFile的库可以解压zip文件,从其相关文档中
ZipFile.extractall(path=None, members=None, pwd=None)
将zip文档内的指定文件解压到当前目录。
参数path指定了解析文件保存的文件夹
参数members指定要解压的文件名称或对应的ZipInfo对象
参数pwd为解压密码。
只需循环读取文件夹下的zip文件然后逐个解压即可
注意:python3有一个中文文件名乱码的,将ZipFile.py中的“cp437”改成“gbk”(两个地方需更改)即可永久解决
# zipfile打开zip文件
z = zipfile.ZipFile(f'{file_path}', 'r'
# path为解压路径,解包后位于该路径下
z.extractall(path=f"{root})
z.close()
在这个基础上再加上循环密码字典
注意:由于解压是密码错误会产生异常,这里可以利用try except进行处理
# 获取字典中的内容
passFile = open(r"D:\python\passdict4.txt")
# 循环获得单个密码
for line in passFile.readlines():
# 去换行
password = line.strip('\n')
try:
zip_file.extractall(path=f"{root}", pwd=password.encode("utf-8"))
print(password)
# 密码对了就不继续下去了
break
except:
# 什么都不做
pass
zip_file.close() # 关闭文件,必须有,释放内存
这么一通操作下来本以为大功告成,没想到事情没那么简单
大多是时候是可以破解的,但是总有些就破解失败了,束手无策的各个网站找方法
刚开始以为是extractall方法调用错了,但是报的错是密码错误,这就让我很迷
偶然见在一个看到一篇文章才得知

默认情况下,WinRAR在CTR模式下使用AES-256加密ZIP文件,而传统加密是通过CRC32加密,即ZIP 2.0传统加密算法,虽然AES-256比ZIP 2.0传统加密算法安全得多,但它可能与一些旧的解压软兼容,而Python标准库中的zipfile模块只支持CRC32加密的zip文件,所以不采用传统加密方式是无法通过zipfile库进行解压的
已经花了这么多心思,要是到这里就放弃,那真的是太淦了
既然加密方式不一样,那么解压软件是怎么做到直接解压的呢
这里产生了一个构想,要是能从代码里调用解压软件,那不就好办了吗
于是我赶紧使用绝技

成功搜索到,7z等多款解压软件有相关功能
调用第三方软件命令行
配置环境变量

命令行验证一下

奈斯,配置成功
passFile = open(r"D:\python\passdict4.txt")
for line in passFile.readlines():
password = line.strip('\n')
# t 测试
command='7z -p'+password+' t '+file_path
child=subprocess.call(command)
if(child==0):
print(password)
break
加密方式不一样的事情是解决了,不过人的贪欲真的是可怕
重复调用命令行这一闪一闪的又让我不爽了
pyzipper库(终极)
恰巧在查加密方式的时候看到有人提出
Python有个pyzipper库可以很好的兼容代替zipfile,可以读写AES加密的zip文件
都走到这了,没有撤退可言
安装pyzipper
pip install pyzipper
会出现中文名乱码情况,记得改下
f1 = open('D:\python\passdict4.txt','r')
with pyzipper.AESZipFile(file_path,'r') as f:
for i in f1:
i = i.rstrip('\n')
f.pwd = str.encode(i)
try:
f.extractall(path=f"{root}")
print(file_path+"\t密码是:"+i)
break
except Exception:
pass
f.close()
f1.close()
这个方法,堪称完美
点击下载相关代码,文件,工具
参考:
1.【补丁破解】ZIP压缩包密码破解工具PassperforZIP_v3.6.0.1
2.python-批量解压zip文件
3.python破解同事的压缩包密码
4.Python实现加密的ZIP文件解压(密码已知)
5.暴力破解(一)——python脚本暴力破解 加密的zip压缩文件
6.7Z命令行详解
7.4.python编写ZIP压缩文件爆破工具
8.Python中的zipfile模块使用详解
9.Python3中zipfile模块文件名乱码问题
最详细Python批量字典暴力破解zip密码的更多相关文章
- 【pyhon】黑客用字典暴力破解Zip文件密码原理性展示
基本原理:用程序把字典文件里拟定好的密码一个个提取出来,去测试zip能否打开 字典文件pass.txt内容: 1224 2121 asdf abcd1234 dwsdsd dssds 程序代码: # ...
- 暴力破解ZIP文件密码
Python 的标准库提供了 ZIP 文件的提取压缩模块 zipfile,现在让我们试着用这个模块,暴力破解出加密的 ZIP 文件!我们可以用 extractall()这个函数抽取文件,密码正确则返回 ...
- 分享一个撩妹、装13神技能,0基础用Python暴力破解WiFi密码
WiFi密码Python暴力破解 Python密码破解部分截图 获取视频资料,转发此文+点击喜欢,然后获取资料请加Python交流群:580478401,就可以获取视频教程+源码 环境准备: py ...
- 忘记秘密利用python模拟登录暴力破解秘密
忘记秘密利用python模拟登录暴力破解秘密: #encoding=utf-8 import itertools import string import requests def gen_pwd_f ...
- 记录ssh暴力破解的密码字典
之前我已经在wooyun和91ri上发表了这篇文章,今天转到51cto上... 默认的ssh日志是不带密码记录功能的,现在想把登录密码记录下来,这样就可以搜集黑客的ssh爆破字典了,从而可以反扫回去. ...
- 使用Medusa美杜莎暴力破解SSH密码
使用Medusa美杜莎暴力破解SSH密码 1.Medusa简介 Medusa(美杜莎)是一个速度快,支持大规模并行,模块化的爆力破解工具.可以同时对多个主机,用户或密码执行强力测试.Medusa和hy ...
- 使用pdfcrack & crunch暴力破解PDF密码
crunch是密码字典生成器,可以根据指定的字符来生成组合密码字典. pdfcrack是Linux下一个PDF暴力破解密工具,可以使用crunch生成的密码字典来暴力破解PDF文件的密码. 注:没有强 ...
- Linux用root强制踢掉已登录用户;用fail2ban阻止ssh暴力破解root密码
Linux用root强制踢掉已登录用户 首先使用w命令查看所有在线用户: [root@VM_152_184_centos /]# w 20:50:14 up 9 days, 5:58, 3 use ...
- Odoo14 防暴力破解登录密码
1 # Odoo14 防暴力破解登录密码 2 # 主要工具:redis 3 # 实现思路:限制每个用户24小时内登录失败次数.连续超过5次失败后,需要等待一定时间后才能再次尝试登录 4 # 配置:在你 ...
随机推荐
- 配置内网访问的TV
前言 通过内网模式访问tv远程机器 方法 云主机配置 一台云主机,云主机申请两个公网IP 云主机启动两个frps进程绑定到两个内网的ip 客户端配置 远程一台linux跳板机运行frpc,启动两个进程 ...
- linx mysql安装
文章引用:https://www.cnblogs.com/shizhongyang/p/8464876.html 只做了少量修改,感谢博主 注:未防止混淆,这里都用绝对路径执行命令 除了文件内容中的# ...
- 我要进大厂之大数据Hadoop HDFS知识点(2)
01 我们一起学大数据 老刘继续分享出Hadoop中的HDFS模块的一些高级知识点,也算是对今天复习的HDFS内容进行一次总结,希望能够给想学大数据的同学一点帮助,也希望能够得到大佬们的批评和指点! ...
- DOM XSS详解
DOM XSS简介 DOM XSS与反射性XSS.存储型XSS的主要区别在于DOM XSS的XSS代码不需要服务端解析响应的直接参与,触发XSS的是浏览器端的DOM解析. DOM XSS复现 环境搭建 ...
- Nginx 解析漏洞复现
一.漏洞描述 该漏洞与nginx.php版本无关,属于用户配置不当造成的解析漏洞 二.漏洞原理 1.由于nginx.conf的如下配置导致nginx把以'.php'结尾的文件交给fastcgi处理,为 ...
- ci爬坑
1.row_array() 问题描述:没有数据返回NULL,直接foreach,报错
- kail下安装RsaCtfTool
最近做了一些RSA的ctf题目,感觉在RsaCtfTool是很麻烦的事,但是发现在kali上安装下载非常简便,所以找一了一些教程,总结一下 参考链接:http://www.sohu.com/a/257 ...
- word教程字体和段落设置
放大/缩小字号:1.选中文字-点击"大A"或"小A" 2.同时摁着ctrl+shift+>/ctrl+shift+<即可 设置标题与正文间距:鼠标放 ...
- php数字运算与格式化
浮点数高精度运算 PHP 官方手册 浮点数的精度有限.尽管取决于系统,PHP 通常使用 IEEE 754 双精度格式,则由于取整而导致的最大相对误差为 1.11e-16.非基本数学运算可能会给出更大误 ...
- npm,pm2等相关知识的学习
现在开始接手node端测试,有好多知识点,比如启动进程的命令,查看进程的命令都不是很清晰,现在具体来学习下- npm由来 前端最大的社区是GitHub,大家在这里分享代码,讨论问题,收集学习资源.大家 ...