前言
生成社工字典只是信息利用的第一步,还需要利用字典进行密码爆破
本篇就讲述一下如何暴力破解zip加密压缩包~~
视频效果
模块介绍
首先第一步肯定是导入模块,既然要破解压缩包密码,肯定要打开
python里有一个专门为zip压缩包准备的模块——zipfile
zipfile介绍
zipfile是python里用来做zip格式编码的压缩和解压缩的模块,zipfile 模块提供了创建、读取、写入、添加及列出 ZIP 文件的工具
支持解密 ZIP 归档中的加密文件。
本篇所用方法
1.class zipfile.ZipFile(file[, mode[, compression[, allowZip64]]])
参数file表示文件的路径或类文件对象(file-like object); 参数mode指示打开zip文件的模式,默认值为’r’,表示读已经存在的zip文件,也可以为’w’或’a’,w’表示新建一个zip文档或覆盖一个已经存在的zip文档,’a’表示将数据附加到一个现存的zip文档中; 参数compression表示在写zip文档时使用的压缩方法,它的值可以是zipfile. ZIP_STORED 或zipfile. ZIP_DEFLATED。如果要操作的zip文件大小超过2G,应该将allowZip64设置为True。
2.zipFile.extract(member[, path[, pwd]])
将zip文档内的指定文件解压到当前目录。参数member指定要解压的文件名称或对应的ZipInfo对象;参数path指定了解析文件保存的文件夹;参数pwd指定要解压的密码。
还有其它的一些方法和属性,想深入了解可以访问:
https://blog.csdn.net/magicboom/article/details/90046901
了解使用方法之后,我们就需要用到上一篇文章生成的社工字典了,不知道的可以阅读上一篇文章哦~~
加密压缩包如下图:
接下来就是暴力破解的代码哦~~~
import zipfile
#创建passwd列表存入password.txt每一个密码
passwd = []
#打开password.txt进行读取,编码'utf-8'
passwordFile = open('password.txt', 'r', encoding='utf-8')
#把password.txt每一项存入pwdlines中
pwdlines=passwordFile.readlines()
#加载压缩文件,创建ZipFile对象
zfile=zipfile.ZipFile('./test.zip') #填入压缩文件名,这里是test.zip
#遍历pwdlines列表去除'\n',并存入passwd列表中
for line in pwdlines:
passwd.append(line.strip())
pass
#定义变量i为1,循环初始值
i = 1
#遍历,把passwd列表中的每一项取出进行密码爆破~~
for pwd in passwd:
try:
#如果爆破成功,返回信息并停止
zfile.extractall('./', pwd=pwd.encode())
print('破解成功!密码为:{}'.format(pwd))
break
except:
#如果单次爆破失败,则一直尝试,直到破解成功或字典耗尽结束
print('正在尝试第{}次破解'.format(i))
i+=1
pass
以上代码注释也很明确,尽量让更多的初学者能看懂
当然,这只是对于zip压缩包进行的暴力破解,如果想破解rar压缩包,导入rarfile模块即可,原理都一样~~
需要注意的是,暴力破解不一定100%能成功,这要看你收集的信息量和对方设置密码的复杂度
- 如何破解账户密码或压缩文件密码 https://www.iculture.cc/knowledge/pig=279
- 计算方式:若档案为ZIP格式并使用英特尔 i7 处理器来破解,且其密码使用数字和小写字母 … (处理速度:150,000,000/秒)
- 1~7个字符的密码:不到10分钟
- 8个字符:~5小时
- 9个字符:~8天
- 10个字符:~280天
- 11个字符:~27年
- 12个字符:~1001年
- 13个字符:~36060年
不要过于依赖暴力破解,但有时候找不到突破口,暴力破解或许能有奇效
预告