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()

原文发布于微信公众号 - 安恒网络空间安全讲武堂(gh_fa1e45032807)

原文发表时间:2017-12-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏沈唁志

PHP的一句话木马代码和函数eval的简介

3968
来自专栏coder修行路

Python通过future处理并发

future初识 通过下面脚本来对future进行一个初步了解: 例子1:普通通过循环的方式 1 import os 2 import time 3 im...

2096
来自专栏程序猿DD

Swagger中配置了@ApiModelProperty的allowableValues属性但不显示的问题

现在用Swagger来生成API文档的例子已经非常多了,今天碰到开发同事问了一个问题,帮着看了一下,主要还是配置方法的问题,所以记录一下。如果你也碰到了同样的问...

1.1K1
来自专栏fixzd

[代码结构设计]根据不同条件使用不同实现类的业务代码设计

这样大家可能不是太理解。举个例子,现在大街小巷上的商户都采用了聚合支付的支付方式,聚合支付也就是商户柜台前放了一个支持支付宝、微信、京东钱包、银联等等的二维码,...

1184
来自专栏Ken的杂谈

WCF常见问题及解决办法

一、问题:这可能是由于服务终结点绑定未使用 HTTP 协议造成的。这还可能是由于服务器中止了 HTTP 请求上下文(可能由于服务关闭)所致

1442
来自专栏Golang语言社区

package runtime

runtime包提供和go运行时环境的互操作,如控制go程的函数。它也包括用于reflect包的低层次类型信息;参见reflect报的文档获取运行时类型系统的可...

1742
来自专栏极客编程

如何用Python为以太坊和比特币生成vanity地址

今天,我们将编写一个非常简单的python脚本来生成虚荣地址,这些地址是以某个短语或字母序列开头的加密货币地址。该过程涉及生成私钥并检查目标短语的地址,直到找到...

1733
来自专栏用户2442861的专栏

Base64编码原理与应用

2015年,我们在青云平台上实现了“百度云观测”应用。青云应用本质上是一个iframe,在向iframe服务方发送的请求中会携带一些数据,青云平台会使用Bas...

1322
来自专栏欧阳大哥的轮子

Windows窗口对象的附加数据

Windows编程中,每一个窗口对象(HWND)都是一个窗口类(WNDCLASSEX)的实例。每个窗口类实例出来的窗口对象都按同样的方式进行处理,共享相同的回调...

1732
来自专栏极客慕白的成长之路

CTF札记二

首先第一层检查需要绕过ereg漏洞,百度可以知道存在截断的问题:ereg读到%00的时候,就截止了, 那么在字符串里面包括%00即可; 接着需要长度小于8但要大...

1093

扫码关注云+社区

领取腾讯云代金券