How to crack password of zip files using python

Follow by Email
Facebook0
Facebook
Google+
https://codingsec.net/2016/11/crack-password-zip-files-using-python/

The time to crack a password is related to bit strength (see password strength), which is a measure of the password’s entropy, and the details of how the password is stored. Most methods of password cracking require the computer to produce many candidate passwords, each of which is checked. One example is brute-force cracking, in which a computer tries every possible key or password until it succeeds. More common methods of password cracking, such as dictionary attacks, pattern checking, word list substitution, etc. attempt to reduce the number of trials required and will usually be attempted before brute force. Higher password bit strength exponentially increases the number of candidate passwords that must be checked, on average, to recover the password and reduces the likelihood that the password will be found in any cracking dictionary.

why write such a script? Well, you might’ve forgotten the password for an important zip file or just don’t know the file’s password in the first place and you need extract its contents ASAP. This script comes to the rescue.

#import the required modules
import optparse
import zipfile
from time import time
  • optparse – to parse the arguments
  • zipfile – to handle the zipfiles
  • time – to find the time taken to crack the zip file
parser = optparse.OptionParser()
parser.add_option('-f', '--file', action="store", dest="file_path", help="Zip File Path", default=None)
parser.add_option('-w', '--word_list', action="store", dest="word_list", help="Word List Path", default=None)
options, args = parser.parse_args()

We use a try…except statement to check if the password is the right one, if yes, the script prints the correct password and stops, if not, the script tries the next password in the list.

 

#!/usr/bin/python

#import the required modules
import optparse 
import zipfile
from time import time

#parse arguments
parser = optparse.OptionParser()
parser.add_option('-f', '--file', action="store", dest="file_path", help="Zip File Path", default=None)
parser.add_option('-w', '--word_list', action="store", dest="word_list", help="Word List Path", default=None)
options, args = parser.parse_args()

def main(file_path, word_list):
	#check if the Zip file exists
	try:
		zip_ = zipfile.ZipFile(file_path)
	except zipfile.BadZipfile:
		print "Please check the file's path. It doesn't seem to be a zip file."
		quit()

	password = None #just in case if the word list is empty
	i = 0 #password count 
	c_t = time() #start time
	with open(word_list, "r") as f: #open the word list
		passes = f.readlines() #read the text file line by line
		for x in passes:
			i += 1 #increment the password try count
			password = x.split("\n")[0] #splitting the newline character 
			try:
				zip_.extractall(pwd=password) #try the password
				t_t = time() - c_t #total time
				print "\nPassword cracked: %s\n" % password #print the password
				print "Took %f seconds to crack the password. That is, %i attempts per second." % (t_t,i/t_t) #stats
				quit() #stop the script
			except Exception:
				pass
		print "Sorry, password not found."

if __name__ == '__main__':
	main(options.file_path, options.word_list)

Take your time to comment on this article.

Follow by Email
Facebook0
Facebook
Google+
https://codingsec.net/2016/11/crack-password-zip-files-using-python/

2 Comments

  1. Ahmed ali 2016-11-05 Reply
  2. Aarzoo 2016-11-06 Reply

Add a Comment

Your email address will not be published. Required fields are marked *

Like the article? please consider sharing it. Thank you

Advertisment ad adsense adlogger