使用 python 和 hashlib 对 unix /etc/shadow 密码进行字典攻击?



可以这样做吗?我的测试似乎不起作用。我的明文通行证在字典.txt和密码中.txt来自/etc/shadow 文件的格式传递.- 我获得通行证并使用 hash.sha512(盐 + 明文密码(对其进行哈希处理。 然后我将该哈希值与"cat/etc/shadow |格雷普用户'

import hashlib
import sys
def checkpass(passwd):
try:
semi_c = ':'
d_sign = '$'
pwdlist = passwd.split("$")
salt = '$'+pwdlist[1]+'$'+pwdlist[2]+'$'
print 'Salt is : ' + salt
cryptPas = passwd.split(d_sign, 3)[3]
cryptPass = cryptPas.split(semi_c)[0]
print cryptPass 
dictFile = open('dictionary.txt', 'r')
for word in dictFile.readlines():
word = word.strip('n')
print 'Comparing to pass in list : ' + word + ' to ' + passwd + ' ---- '
cryptWord = hashlib.sha512(salt + word).hexdigest()
print 'Reproduced Hash : ' + cryptWord
if (cryptWord == cryptPass):
print '[+] Found Password : ' + word + 'n'
return cryptWord
else:
print '[-] Password not found.n'
return cryptWord
except Exception, e:
print e
return  
def main():
try:
passfile = open('password.txt')
passwd = passfile.readline()
semi_c = ':'
#print passwd
if semi_c in passwd:
user = passwd.split(semi_c)[0]
print '[*] Cracking Password for : ' + user
checkpass(passwd)
except Exception, e:
print e
return    
if __name__ == '__main__':
main() 

我不知道Python的hashlib,但请注意crypt((不仅是DES,MD5 vor SHA,而且只基于它们。例如,它使用几轮。应该有一个 Python crypt 模块。

最新更新