我最近恢复了一个包含一些我需要访问的文件的 zip 存档,但我不记得密码了。我只记得密码很短(大约 3-4 个字符),并且只包含小写字符和可能的数字)。然而,在 John the Ripper 中没有针对这种特殊情况的增量模式。最接近的是 lanman,它还通过包含大写字符来显着增加可能的密码集,我很肯定密码不包含任何密码。
例如,虽然我可以编辑 john.conf 文件以使特定模式仅包含 4 个字符,但我不知道如何自定义要尝试的字符集。我怎么能这样做?
我最近恢复了一个包含一些我需要访问的文件的 zip 存档,但我不记得密码了。我只记得密码很短(大约 3-4 个字符),并且只包含小写字符和可能的数字)。然而,在 John the Ripper 中没有针对这种特殊情况的增量模式。最接近的是 lanman,它还通过包含大写字符来显着增加可能的密码集,我很肯定密码不包含任何密码。
例如,虽然我可以编辑 john.conf 文件以使特定模式仅包含 4 个字符,但我不知道如何自定义要尝试的字符集。我怎么能这样做?
增量实际上有一个小写+数字的预定义模式:
[Incremental:LowerNum]
File = $JOHN/lowernum.chr
MinLen = 1
MaxLen = 13
CharCount = 36
从文档中:
“LowerNum”(小写字母加数字,共 36 个)
只需调整MinLen和MaxLen。
如果您想chr使用自定义字符集创建自己的文件,您可以这样做:
john --pot=YOUR.pot --make-charset=YOUR_NEW_FILE.chr --external=filter_lowernum
filter_lowernum是确定chr文件中将包含哪些字符的过滤器。它在您的john.conf(下[List.External:Filter_LowerNum])中定义,您也可以在那里创建自己的过滤器。LowerNum 的代码如下所示:
[List.External:Filter_LowerNum]
void filter()
{
int i, c;
i = 0;
while (c = word[i++])
if (((c < 'a' || c > 'z') && (c < '0' || c > '9')) || i > 13) {
word = 0; return;
}
}
然后只需将增量过滤器添加到您的配置中。
您可以运行以下 python 代码来执行此操作
import zipfile,sys,time
import itertools
def extractFile(zFile, password):
try:
answer= zFile.extractall(pwd=password)
print 'Fount password : ', password
return True
except:
#print password + " was incorrect"
return False
def main(ifile):
zFile = zipfile.ZipFile(ifile)
pass_str = "abcdebcdefghijklmnopqrstuvwxyz0123456789"
for pass_len in range(1,5):
passwords = itertools.permutations(pass_str,pass_len)
for password in passwords:
#print password
#time.sleep(.01)
password = ''.join(password)
sys.stdout.write("\r checking .. %s" % password )
sys.stdout.flush()
if (extractFile(zFile, password)):
print "checked "+password+" ..."
sys.exit()
if __name__ == '__main__':
try:
ifile = sys.argv[1]
except:
print "please run like 'python python-file-name.py zip-file-name.zip'"
sys.exit()
main(ifile)
这个程序不需要任何外部库。它的纯蟒蛇。运行 llke
python python-file-name.py zip-file-name.zip
使用开膛手约翰 (JtR),您可以使用以下命令找到压缩文件的密码:
zip2john.exe example.zip > hash.txt
john.exe --incremental=LowerNum hash.txt