Python编写渗透工具学习笔记一 | 0x06 Zip包破解程序

时间:2022-04-27
本文章向大家介绍Python编写渗透工具学习笔记一 | 0x06 Zip包破解程序,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

0x06 Zip包破解程序

介绍zipfile的使用

实现思路:

从密码文件中读取密码,然后逐个尝试去破解压缩包

主要使用zipfile库的extractall()方法,其中pwd参数指定密码

代码中导入了optparse库解析命令行参数,调用OptionParser()生成一个参数解析器类的示例,parser.add_option()指定具体解析哪些命令行参数,usage输出的是参数的帮助信息;同时也采用了多线程的方式提高破解速率。

工具源码:

#!/usr/bin/python
# -*- coding: utf-8 -*-
import zipfile
import optparse
from threading import Thread
#破解口令
def extractFile(zFile, password):
    try:
        zFile.extractall(pwd=password)
        print '[+] Found password ' + password + 'n'
    except:
        pass
def main():
    parser = optparse.OptionParser("usage %prog "+
      "-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()
    if (options.zname == None) | (options.dname == None):
        print parser.usage
        exit(0)
    else:
        zname = options.zname
        dname = options.dname
    zFile = zipfile.ZipFile(zname)
    passFile = open(dname)
    #读取密码
    for line in passFile.readlines():
        password = line.strip('n')
        t = Thread(target=extractFile, args=(zFile, password))
        t.start()
if __name__ == '__main__':
    main()