I'm doing a cybersecurity course and one of the levels requires editing a python script to brute force a .zip file. I edited some very easy errors like adding parenthesis etc. But when I run the code I get these errors and I dont know how to fix them.
import zipfile import itertools import time # Function for extracting zip files to test if the password works! def extractFile(zip_file, password): try: zip_file.extractall(pwd=password) return True except KeyboardInterrupt: exit(0) # Main code starts here... # The file name of the zip file. zipfilename = 'planz.zip' # The first part of the password. We know this for sure! first_half_password = 'Super' # We don't know what characters they add afterwards... # This is case sensitive! alphabet = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' zip_file = zipfile.ZipFile(zipfilename) # We know they always have 3 characters after Super... # For every possible combination of 3 letters from alphabet... for c in itertools.product(alphabet, repeat=3): # Slowing it down on purpose to make it work better with the web terminal # Remove at your peril time.sleep(0.001) # Add the three letters to the first half of the password. password = first_half_password+''.join(c) # Try to extract the file. print ("Trying: %s"% password) # If the file was extracted, you found the right password. if extractFile(zip_file, password): print ('*' * 20) print ('Password found: %s' % password) print ('Files extracted...') exit(0) # If no password was found by the end, let us know! print ('Password not found.')
Error:Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 23:03:10) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>>
================== RESTART: C:\Users\kianw\Desktop\zipcrack.py =================
Trying: Superaaa
Traceback (most recent call last):
File "C:\Users\kianw\Desktop\zipcrack.py", line 33, in <module>
if extractFile(zip_file, password):
File "C:\Users\kianw\Desktop\zipcrack.py", line 8, in extractFile
zip_file.extractall(pwd=password)
File "C:\Users\kianw\AppData\Local\Programs\Python\Python38\lib\zipfile.py", line 1647, in extractall
self._extract_member(zipinfo, path, pwd)
File "C:\Users\kianw\AppData\Local\Programs\Python\Python38\lib\zipfile.py", line 1700, in _extract_member
with self.open(member, pwd=pwd) as source, \
File "C:\Users\kianw\AppData\Local\Programs\Python\Python38\lib\zipfile.py", line 1497, in open
raise TypeError("pwd: expected bytes, got %s" % type(pwd).__name__)
TypeError: pwd: expected bytes, got str
>>>