#!/usr/bin/env
#coding=utf-8
import
zipfile
import
threading
import
osimport
sysclass
crackzip:
def__init__
(self):
self._result =none
defrun(self,zfile,password):
try:
zfile.extractall(pwd=password)
print("
found passwd:
",password)
print('
password=
',password)
self._result=password
except
:
pass
defgetpass(self):
return
self._result
defcheckfile(path):
flag=false
ifnot
os.path.isfile(path):
flag=false
print('
[-] %s檔案不存在
',path)
return
flag
defmain():
cz=crackzip()
if len(sys.ar**)>=3:
zippath=sys.ar**[1]
dictionarypath=sys.ar**[2]
flag=(len(sys.ar**)>3 and sys.ar**[3]=='-t'
) typename=none
ifnot
checkfile(dictionarypath):
if dictionarypath[-3:]!='
txt'
:
print('
字典不是txt檔案')
return
ifnot
checkfile(zippath):
if zippath[-3:]!='
zip'
:
print('
只能爆破zip檔案')
return
zfile=zipfile.zipfile('
test.zip
','r')
passfile=open(dictionarypath,'r'
)
for line in
passfile.readlines():
password=line.strip('
\n').encode('
utf-8')
ifflag:
false
t=threading.thread(target=cz.run,args=(zfile,password))
t.start()
else
: cz.run(zfile,password)
password=cz.getpass()
typename='
singlethread'if
password:
return
if typename=='
singlethread':
print("
字典裡找不到密碼")
else
:
print('
命令不正確,格式為:python zip.py zippath dictionarypath')
return
if__name__=='
__main__':
main()
遇到了以下問題:
1. 字典裡獲取出來的字元需要編碼(utf-8)才能被extractall識別
2. 開啟執行緒爆破後如何檢測所有執行緒執行完畢?(提示爆破失敗)
密碼爆破 medusa
方法 medusa h host h file u username u file p password p file c file m module opt 引數簡介 h text 目標主機名稱或者ip位址 h file 包含目標主機名稱或者ip位址檔案 u text 測試的使用者名稱 u fil...
burpsuite弱密碼爆破
利用burpsuite的intruder 模組進行弱密碼的破解 posirtions模組 positions 選擇攻擊模式 sniper 對變數依次進行暴力破解 battering ram 對變數同時進行破解 pitchfork 沒乙個變數標記對應乙個字典,一一對應進行破解 cluster bomb...
python zip檔案壓縮 python
python自帶了zipfile,貌似支援zip64,看幫助文件裡好像有個選項 今天我的工作只是備份,所以只是建立zip檔,其他就不關心了 usr bin env python coding gbk python at live.it import os import sys import geto...