Unix 密码破解器

对于我来说,武术的非凡之处在于它的简单。简单是最美的,而武术也没有什么特别之处;以无法为有法,以有限为无限,是为武术最高境界。

Unix 密码破解器需要使用 Python 标准库中的 crypt 模块的 crypt() 函数,只需传入密码和盐就能返回对应的哈希密码值。

PS: 需要注意的是:crypt 模块只能在 xNIX 系统中才能使用,在 Windows 系统中会报错。

程序分为两部分,一部分是打开字典,另一部分是哈希匹配密码

① 匹配哈希密码

crypt 模块

#!/usr/bin/python3
#encoding='utf-8'

import crypt

result = crypt.crypt('zhutou','HX')
print(result)

结果

可以发现,返回的结果的前两位就是盐值(HX)

root@kali:~/桌面/script/unix密码破解器# python3 temp.py 
HXs5YE43ZU2tA

② 哈希匹配密码

密码文件

zhutou1:nsnobfisnbfo
zhutou2:nsbfisnbfo
zhutou3:nsnobfsnbfo
zhutou4:nsnobfisnbf
zhutou5:nsnobisnbfo

打开密码文件,读取密码

with open('temp.txt','r') as f:
    lines = f.readlines()
    for line in lines:
        user = line.split(':')[0] #以分号作为隔离
        passwd = line.split(':')[1].strip()
        print(passwd)

结果

nsnobfisnbfo
nsbfisnbfo
nsnobfsnbfo
nsnobfisnbf
nsnobisnbfo

Process finished with exit code 0

③ 整合

定义一个 testPass() 函数提取字典文件中的值加密后和密码比对,正确则输出

字典文件 dictionary.txt

root@kali:~/桌面/script/unix密码破解器# cat dictionary.txt 
zhutou9
zhutou8
zhutou3
zhutou7
zhutou6

最终代码

#!/usr/bin/python3
#encoding='utf-8'

import crypt

def testPass(cryptPass):
	salt = cryptPass[0:2] # 获取盐值
	with open('dictionary.txt','r') as f:
		lines = f.readlines()
		for line in lines:
			line = line.strip() # 去除换行符
			cryptWord = crypt.crypt(line,salt)
			if cryptWord == cryptPass:
				print('Found Passwd: ', line)
				return
		print('Password not found!') # 如果在 for 循环不能找到密码就输出并退出


def main():
	with open('password.txt','r') as f:
		lines = f.readlines()
		for line in lines:
			user = line.split(':')[0]
			passwd = line.split(':')[1].strip()
			print('Cracking Password For: ',user)
			testPass(passwd)

if __name__=='__main__':
	main()

结果

root@kali:~/桌面/script/unix密码破解器# python3 temp.py 
Cracking Password For:  zhutou1
Password not found!
Cracking Password For:  zhutou2
Password not found!
Cracking Password For:  zhutou3
Found Passwd:  zhutou3
Cracking Password For:  zhutou4
Password not found!
Cracking Password For:  zhutou5
Password not found!
Cracking Password For:  zhutou6
Found Passwd:  zhutou6
Cracking Password For:  zhutou7
Found Passwd:  zhutou7
                                                                                                                                                                      猪头
                                                                                                                                                                    2020.4.7
发布了51 篇原创文章 · 获赞 4 · 访问量 2739

猜你喜欢

转载自blog.csdn.net/LZHPIG/article/details/105374645
今日推荐