小白也可以轻松破解被加密的ZIP口令啦

这篇具有很好参考价值的文章主要介绍了小白也可以轻松破解被加密的ZIP口令啦。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

零基础学黑客,搜索公众号:白帽子左一

作者:掌控安全—暗箭

不管是刚刚接触python,还是没有接触过python的同学,

在浏览本篇文章时应该都不会感觉到费力。(python2.7.6版本以上)

我会尽量详细直白的进行讲解,使得即使是一个没有python编码基础的小白,在阅读完本篇文章后,大脑中也会产生如何去构建一个脚本的思路。

希望这篇文章能够提升你们对python的兴趣,

了解python构建脚本时的基本思维,并且感受一下python语言的魅力所在吧。

你将难以想象,通过Python仅仅需要几十行的代码和一本好用的字典就能够轻松破解被加密的压缩包文件。

言归正传,我们来看一下我们是如何一步步构建脚本框架,修改完善脚本,并最终实现口令破解的吧!!!

开始

我们先创建一个文件,将其命名为“zip1.py”,打开文件后便开始了我们的编程之旅。

在此之前,由于是在实验环境,所以我们还需要创建一个含有口令的压缩包:密码设置为123456 并将其命名为”a.zip”

小白也可以轻松破解被加密的ZIP口令啦

我们在尝试读取其中文件时,便会要求我们输入响应的口令:

小白也可以轻松破解被加密的ZIP口令啦

下面我们就要了解,是什么原理让脚本运行起来时能够实现密码的破解呢?

我们打开刚刚创建的“zip1.py”,然后再里面输入以下代码:

import zipfile
zFile = zipfile.ZipFile("a.zip")
zFile.extractall(pwd="123456")

我们首先在第一行调用了python中的zipfile库。

zipfile库简单来说可以让我们实例化压缩文件,并且提供将其破解的函数。

导入库后,用带有口令保护的zip文件的文件名,实例化一个新的ZipFile类。

要解压这个ZIP文件 我们需要用的zipfile库中的“extractall()”函数

pwd就是压缩包的密码

来运行一下脚本,我们发现脚本会将破解后的文件解压,并且存放在我们的根目录下。

小白也可以轻松破解被加密的ZIP口令啦

现在我们已经了解了破解流程,接下来就可以打造属于我们自己的工具了!

我们在破解的时候当然不可能逐一去输入账号密码,这样太费劲了!

所以我们需要拥有一本属于自己zip爆破字典(1.txt)

有了字典之后,我们将字典中的密码遍历到password变量中并对之前的代码进行一下修改:

#coding=utf-8
import zipfile

zFile = zipfile.ZipFile("a.zip") #破解的目标ZIP文件
passFile=open("1.txt") #这是我们的字典

for line in passFile:
 password=line.strip("\n")
 zFile.extractall(pwd=password)

然后尝试运行一下这个脚本:我们发现报错了!

我们的字典内容如下:其中包含我们的正确口令。

我们再来看一下报错信息。

 admin
 qweqasd
 123456
 akjshdkj
 9999999

我们都过检查报错信息的末端发现,这是由于口令错误引起的,进而继续追踪相关函数,发现正是extractall()出现错误引起的。

函数一旦出错便不会跳过错误继续向下遍历密码,那么我们就要使用try-except代码块来避免程序崩溃!

小白也可以轻松破解被加密的ZIP口令啦

改进后的代码如下:

#coding=utf-8
import zipfile

zFile = zipfile.ZipFile("a.zip") #破解的目标ZIP文件
passFile=open("1.txt") #这是我们的字典

for line in passFile:
 password=line.strip("\n")
 try:
 zFile.extractall(pwd=password)
 print password
 except Exception,e:
 pass

try:尝试执行extractall()函数破解,执行成功则输出正确ZIP密码,若执行失败则进入except板块Pass掉这个异常!

这样就不会出现因为破解失败而导致的程序崩溃了

我们再来执行发现,脚本能够正常遍历字典中所有密码,并且输出!

我们再来执行发现,脚本能够正常遍历字典中所有密码,并且输出!

小白也可以轻松破解被加密的ZIP口令啦

但是我们需要的是函数模块化的脚本,而非线性执行的程序

我们不得不让我们的脚本更灵活,更具有可塑性!

下面我们来清理一下代码:

1.我们将定义一个函数extractFile(),使这个函数具有带入字典密码并破解口令的功能。

2.我们再定义一个函数main(),使其能够实例化ZIP文件,遍历字典内容,并执行extractFile()函数的功能!

模块化的代码如下:

#coding=utf-8
import zipfile #导入zipfile库
def extractFile(zFile,password): #定义一个函数,形参为破解目标文件名,密码
try: #避免程序崩溃
zFile.extractall(pwd=password)
return password #返回密码
except:
pass
def main():
zFile=zipfile.ZipFile('a.zip') #实例化一个类ZipFile
passFile=open("1.txt") #打开字典文件
for line in passFile.readlines(): #For遍历字典内容
password=line.strip("\n") #取出空格 上下间隙
guess = extractFile(zFile, password) #将函数放入一个变量
if guess: #如果破解成功则返回出密码 并且退出
print "[*]密码是: " + password +"\n"
exit(0)
if __name__ == '__main__': #如果执行的是当前脚本 则执行函数main()
main()
这里要重点介绍一下if __name__ == ‘__main__‘: 这个条件的意思。

3.当.py文件被直接运行时,if name ==’main‘之下的代码块将被运行;当.py文件以模块形式被导入时,if name == ‘main‘之下的代码块不被运行。

4.因为当前脚本运行时 name =main

5.如果是在abc.py脚本中被导入的话 像是import zip1

6.这样的话__main__ =zip1 而不是main了 所以就会和__main__不匹配

7.从而不会执行该函数

现在我们离成功就差最后一步了!
1.我们接下来我们要设置可选参数,这样我们就可以按照我们的要求,去使用我们想用的字典,破解我们想破解的文件。

2.并且我们还要为此添加多线程的功能,这样在面临庞大的字典时 也能快速的对目标文件进行多线程破解!

终极版代码如下:

#coding=utf-8
import zipfile
import optparse #optparse用于设置可选参数,并进行参数的解释
from threading import Thread #从threading库导入Thread类 主要功能是设置多线程

def extractFile(zFile,password):
 try:
 zFile.extractall(pwd=password) #python3中pwd需要的是byte
 print ('[+] Fonud Password : ' + password + '\n')
 except:
 pass

def main():

 parser = optparse.OptionParser("[*] Usage: ./unzip.py -f <zipfile> -d <dictionary>") #设置参数解释

 parser.add_option('-f',dest='zname',type='string',help='specify zip file') #设置参数 可输入读取目标文件

 parser.add_option('-d',dest='dname',type='string',help='specify dictionary file') #设置字典参数

 (options,args) = parser.parse_args() #options可以理解为sys.argv[1:] 比如(-f xxx.zip -d x.txt)

 if (options.zname == None) | (options.dname == None): #确认参数是否存在
 print (parser.usage) #输出我们前面设置的解释
 exit(0)

 zFile = zipfile.ZipFile(options.zname) #确定破解目标对象
 passFile = open(options.dname) #打开我们需要的字典
 for line in passFile: #遍历字典内容
 line = line.strip('\n')
 t = Thread(target=extractFile,args=(zFile,line)) #设置多线程 target可理解为等于一个方法(自定义函数),args可理解为我们向函数中传的参数 这里就是像extractall()中传入破解ZIP文件和遍历的字典密码
 t.start() #开启线程

if __name__ == '__main__': #如果在当前脚本执行 那么为真
 main()

激动人心的时刻到了!
我们将脚本执行一下看一下效果:

小白也可以轻松破解被加密的ZIP口令啦

破解成功!!!完结撒花★,°:.☆( ̄▽ ̄)/$:.°★ 。
这里脚本中使用的是optparse库来设置的参数和参数解释

因为这会让代码比较简洁并且容易理解。

大家可以尝试使用getopt库来重新定义一下,那样子虽然有些麻烦,但是对于刚刚接触python的同学会更容易理解。

学习完本篇章后大家就再也不用担心别人给ZIP文件加密啦~
建议大家配合crunch字典生成工具使用,将会事半功倍!!!

源码链接:https://pan.baidu.com/s/1-UjEnVFbqZuAquScz8zlrw
提取码:zkaq

声明:本号所分享内容仅用于网安爱好者之间的技术讨论,禁止用于违法途径,所有渗透都需获取授权!否则需自行承担,本号及原作者不承担相应的后果.

小白也可以轻松破解被加密的ZIP口令啦
小白也可以轻松破解被加密的ZIP口令啦文章来源地址https://www.toymoban.com/news/detail-439910.html

到了这里,关于小白也可以轻松破解被加密的ZIP口令啦的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 多个JDK版本可以吗:JDK17、JDK19、JDK1.8轻松切换(无坑版)小白也可以看懂

    多个JDK:JDK17、JDK19、JDK1.8轻松切换(无坑版)小白也可以看懂 提示:看了网上很多教程,5w观看、32w观看、几千观看的,多多少少带点坑,这里我就把踩过的坑都给抹了 提示:已知 JDK1.8 和 JDK17,是长期 且免费版本 jdk17下载 :https://www.oracle.com/java/technologies/downloads/#jdk17-wi

    2024年02月02日
    浏览(45)
  • 【小白必看】网络安全(黑客)0基础学习笔记

    目录 一、自学网络安全学习的误区和陷阱 二、学习网络安全的一些前期准备 三、网络安全学习路线 四、学习资料的推荐 想自学网络安全(黑客技术)首先你得了解什么是网络安全!什么是黑客! 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透

    2024年02月07日
    浏览(44)
  • 零基础小白如何自学网络安全成为顶尖黑客?

    在成为黑客之前,你需要做两点准备: 1、学一门编程语言。学哪一门不重要,但你要参考一下下面的条例: C语言是Unix系统的基础。它(连同汇编语言)能让你学习对黑客非常重要的知识:内存的工作原理。 Python或Ruby是高级而强大的脚本语言 ,能够实现多项任务的自动化

    2023年04月11日
    浏览(39)
  • 弱口令介绍及破解方式

    仅包含简单数字和字母的口令,例如“123”、“abc”等,因为这样的口令很容易被别人破解,从而使用户的计算机面临风险,因此不推荐用户使用。 1、连续字符串(如aaaa,abc等) 2、数字 数字通常会包含个人信息,如生日、身份证号的某几位。 3、字符串+数字;数字+字符串

    2023年04月13日
    浏览(30)
  • 弱口令与暴力破解

    弱口令( weak password ) 没有严格和准确的定义,通常认为容易被别人(他们有可能对你很了解)猜测到或被破解工具破解的口令均为弱口令。弱口令指的是仅包含简单数字和字母的口令。 公共弱口令就是常见的密码,也就是根据大量的密码数据统计得出的出现频率较高的弱口令

    2023年04月12日
    浏览(65)
  • 口令暴力破解--Telnet协议暴力破解、数据库暴力破解与远程桌面暴力破解

    Telnet        Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。要开始一个telnet会话,必须输入用户名和密码来登录服务器。而一般服务器不会对用户名和密码的登录尝试做限制,因此

    2023年04月19日
    浏览(56)
  • web后台登录口令暴力破解及防御

    在实际网络安全评估测试中,前台是给用户使用,后台是给网站管理维护人员使用,前台功能相对简单,后台功能相对复杂,可能保护媒体文件上传,数据库管理等。前台用户可以自由注册,而后台是网站管理或者维护人员设定,渗透中如果能够拿到后台管理员帐号及密码,

    2024年02月02日
    浏览(36)
  • Kali系统MSF模块暴力破解MySQL弱口令漏洞

    攻击环境使用KALI系统(使用虚拟机搭建)的Metasploit模块,msfconsole是metasploit中的一个工具,它集成了很多漏洞的利用的脚本,并且使用起来很简单的网络安全工具。 这里要特别强调:被攻击的环境必须开启mysql远程登陆服务,通常MySQL开启的端口号是3306,故而一般情况下要求

    2023年04月10日
    浏览(49)
  • 四招带您破解用友T3软件SA口令问题

    “ 小陈就职于一家贸易公司,公司目前用的是T3财务软件,因为公司的账比较简单,所以基本上能满足要求。月底的一天早上,小陈跟往常一样来到公司,打开电脑,准备对这个月的账做最后的检查,然后就可以扎帐了。可是,偏偏在这个节骨眼上,电脑里蹦出了这样一个提

    2024年02月07日
    浏览(31)
  • python期末大作业之图书管理系统(超级基础版,小白轻松上手)

      以上就是今天的学习内容啦~ 咱们下期再见老铁~  需要定制python大作业可以加一下我QQ2597170348或者微信15060269323!! 感觉还不错的话请一键三连,谢谢!!

    2024年02月04日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包