前言:
这个工具不是一个很实用的工具,不过还是在有些情景下会用到。同时,我们慢慢的从基础,一点点去写自己的脚本,每天进步一点,我们就会感到很从充实,也是为了避免我们以后有了思路,又四处百度,再构造代码,而从其中浪费自己的时间。
建议买一本 《Python绝技:运用Python成为顶级黑客》,慢慢敲里面的代码。
思路:
其实就是爆破,就是我们自己准备好一个由好多密码组成的字典文件,然后用脚本模拟打开文件然后输入密码,如果正确,返回密码,如果错误,继续下一个密码的测试
1.新建一个压缩文件zip
1.注意是zip格式的
2.压缩的时候,选择传统加密(现在的加密,库文件没办法打开)
2.准备好字典文件
3.代码的编写
这里我不像上一次直接贴代码了,python这门语言其实和我们小时候玩的搭积木差不多,只是可能要记住的多一些,只要我们多使用,就可以理解清楚,就像lol,王者的各个技能的了解和不同英雄的配合。
3_1.zip文件的读取和解密函数
#文件读取
zFile = zipfile.ZipFile('filename.txt')
#解密函数 extractFile(pwd=password)
#一个读取文件,然后用自己密码打开的例子
password='ceshi'
def extractFile(zFile,password):
try:
zFile.extractall(pwd=password)
print '[+] Password ='+password+'\n'
except Exception,e:
pass
这个我们以后会经常用到,主要用来爆破,如果正常,就打印测试A,程序出错,就打印error
try:
print '测试a'
except Exception,e:
print 'error'
3_2:读取文件:
#读物文件函数 open('文件名字','r')
#r那里有3种,[a+]--追加 [w]--写入 [r]--读取
#passFile.readlines() 读取文件的每一行
#passFile.close() 关闭这个文件
passFile = open('filename.txt','r')
for line in passFile.readlines():
password = line.strip('\n')
print password
passFile.close()
3_3:帮助选项库 optparse
这个效果是这样的
#optarse.OptionParser("") 这个函数按照下面的来整
#add_option()种
#-f 选项
#dest='zname' 是紧随-f后面的文件
#type='string' 是选项类型
#help = 是帮助文档
#cmd 执行 zip_pro_py -f ceshi.zip -d password.txt
#options,args=parser.parse_args() 运行这个方法,把属性分别赋值给别的options,args
parser = optparse.OptionParser("usage%prog "+"-f -d ")
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()
3_4:
我们怎么搭好积木呐:
1.一个循环读取密码文件中的信息
2.用解压模块来验证密码,正确返回密码,错误pass,继续下一个
3__5:
具体代码:
import zipfile
from threading import Thread
import optparse
'''
exit(0) 正常退出
学会利用try 爆破中要么打印密码,要不pass
from threading import Thread
#建立进程
t = Thread(target=函数,args=(参数A,参数B))
t.start() 开启进程
optparse:
add_option('-f',dest='',type='',help='')
-f 参数
dest 会提取那个参数然后作为变量等待下面的调用
help 帮助
OptionParser("useage%prog "+"-f ")
parseer.parse_args() 传递进来的参数
测试中,zip只有以前的加密方法,extractall能够解开
'''
def extractFile(zFile,password):
try:
zFile.extractall(pwd=password)
print '[+] Password ='+password+'\n'
except Exception,e:
pass
def main():
parser = optparse.OptionParser("usage%prog "+"-f -d ")
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,'r')
for line in passFile.readlines():
password = line.strip('\n')
t = Thread(target=extractFile,args=(zFile,password))
t.start()
passFile.close()
zFile.close()
if __name__ == '__main__':
main()
zFile = zipfile.ZipFile('filename.txt')
结束
当你完成一个小物件的时候,你就会继续急需下下一个,这叫上瘾,欢迎上瘾。