Я работаю над заданием, в котором мне нужно написать взломщик паролей, чтобы взломать пароль, для которого я нашел хеш-значение при компрометации системного файла (.htpasswd) на веб-сервере.
Я написал программу, и она отлично работает с простыми и основными хэшами MD5, но я буду использовать хэш Salted MD5.
Я попросил помощи у своего лектора, и он предоставил следующее:
Модуль импорта из passlib.hash import apr_md5_crypt использует эту функцию apr_md5_ crypt.encrypt (password, salt = salt), где пароль - это слово из RockYou, а salt - значение из хеш-значения разработчика.Это должно вам помочь.
Я добавил это в свою программу, но он все еще не выбирает пароль из списка слов, который содержит пароль.
Цель состоит в том, чтобы сделать мойкод работает, а не найти пароль (мне удалось получить его на предыдущем этапе с помощью John The Ripper).
#!/usr/bin/env python
#Importing algorithm
import md5
import hashlib
import passlib.hash
#Importing the algorithm for the hashed SALT
from passlib.hash import apr_md5_crypt
#The password is 1qa2ws3ed
#The SALT value is Wv63/0xM
counter = 1
pass_in = raw_input("Please enter MD5 Hash: ")
pwfile = raw_input("please enter the wordlist file name: ")
#Opening the file to make sure the path is correct prior commencing to crack the password
try:
pwfile = open(pwfile, "r")
except:
print "\nFile Not found."
quit()
for password in pwfile:
filemd5 = apr_md5_crypt.encrypt('1qa2ws3ed', salt='Wv63/0xM')
md5.new(password.strip()).hexdigest()
print "Trying password number %d: %s " % (counter, password.strip())
counter += 1
if pass_in == filemd5:
print "\nMatch Found. \nPassword is: %s" % password
break
else: print "\nPassword Not Found."