# qianxiao996精心制作
#博客地址:https://blog.csdn.net/qq_36374896
#!/usr/bin/env python #指定这是一个python文件,使用这个解释器执行
#-*- coding:utf-8 -*- #设定编码格式,防止报错
#unix系统下使用,必须把注释删掉,不然有可能报错 import crypt #调用crypt这个库 user_passfile = "/etc/shadow" #获取系统密码路径
zidian = "/root/桌面/password.txt" #获取字典路径 #提取系统中的用户名和密文
def get_pass(user_passfile):
used = {} #定义一个空字典
f=open(user_passfile,"r") #读取系统密码文件
userline = f.readlines() #将该文件转换为列表格式
f.close() #关闭文件
for i in userline: #遍历列表里的内容
if len(i.split(":")[1]) > 3: #以":"分割,取第二个元素的长度,也就是完整密文值的长度,如果大于3,我们认定它有密码,把它取出来
used[i.split(":")[0]]=i.split(":")[1] #我们将取出的密文给了相应的用户,这里的used[i.split(":")[0]]是字典的key,也就是系统中的用户名,后面的i.split(":")[1]是用户名后的加密密文
return used #返回这个字典 #提取我们密码字典里的内容
def look_d(zidian):
f = open(zidian,'r') #读取字典文件内容
mwlist = f.readlines() #将读取的内容转换为列表
f.close() #关闭文件
return mwlist #返回这个列表 #根据密文是否相同判断出对应的用户和密码
def main(user_passfile,zidian):
used = get_pass(user_passfile) #调用自定义函数get_pass
mingwen = look_d(zidian) #调用自定义函数look_d
for user in used:
passwd = used[user] #一次遍历每个用户的密文
salt = "$6$"+passwd.split("$")[2] #获取盐值
for passwdmw in mingwen: #遍历系统中的每个完整密文
if passwd == crypt.crypt(passwdmw.rstrip(),salt): #如果我们猜想的密文与系统中的密文相同,输入它的用户名和密码
print("userName:%s passWord:%s" %(user,passwdmw.rstrip())) if __name__ == "__main__":
main(user_passfile,zidian)

python程序unix密码破解的更多相关文章

  1. python写unix口令破解器

    看了python绝技做出来的unix口令破解器 首先需要crypt. python并不自带!! windows下pip安装失败= = 后来直接去kali敲了 附件:jiami.txt #假设是unix ...

  2. unix 密码破解,zip破解总结

    unix /etc/passwd 破解,假设的前两位是salt import crypt #数据比较 def password_crak(pass_word): salt = pass_word[0: ...

  3. 用Python写一个zip文件的密码破解程序

    最近在读<python绝技:运用python成为顶级黑客>一书,文中有如何运用Python中zipfile自带的方法破解zip文件.短短的十几行代码就将一个程序实现了.下面给出书中所用的代 ...

  4. Python 黑客 --- 001 UNIX口令破解机

    Python 黑客 实战:UNIX口令破解机 使用的系统:Ubuntu 14.04 LTS Python语言版本:Python 2.7.10 V crypt 库是Python内置的库.在UNIX系统使 ...

  5. 【Python】zip文件密码破解

    掌握基础语法后,尝试使用python的zipfile模块练手. zipfile是Python里用来做zip格式编码的压缩和解压缩的. 这里将大体的思路分解成四段代码,逐一完善功能: 第一段代码:解压z ...

  6. 不同的类UNIX操作系统密码破解方法介绍

    (一)Linux 系统密码破解 1.在grub选项菜单按E进入编辑模式 2.编辑kernel那行 /init 1 (或/single) 3.按B重启 4.进入后执行下列命令 root@#passwd ...

  7. Python实现云服务器防止暴力密码破解

    云服务器防止暴力密码破解 云服务器暴露在公网上,每天都有大量的暴力密码破解,更换端口,无济于事,该脚本监控安全日志,获取暴力破解的对方ip,加入hosts黑名单 路径说明 描述 路径 登录安全日志 / ...

  8. 最详细Python批量字典暴力破解zip密码

    工具破解 前两天在网上下来了一波项目案例,结果全是加密的压缩包,于是去网上找了一个压缩包破解的工具 苦于工具破解太慢,一个压缩包要好久,解压了三个之后就放弃了,准备另寻他法 密码字典 巧的是破解的三个 ...

  9. Linux各版本的本地root密码破解方法

    (一)RedHat/CentOS/Fedora 系统密码破解 1.在grub选项菜单按E进入编辑模式 2.编辑kernel 那行最后加上S (或者Single) 3.按B,启动到single-user ...

随机推荐

  1. 使用污点分析检查log4j问题

    摘要:log4j问题的余波还在继续,为什么这个问题潜伏了这么长时间,大家一直没有发现?这里从静态分析的角度谈下log4j问题的发现. 本文分享自华为云社区<使用污点分析检查log4j问题> ...

  2. Rock Pi开发笔记(二):入手Rock Pi 4B plus(基于瑞星微RK3399)板子并制作系统运行

    前言   入手rock pi 4b plus板子,查看具体的实物,然后制作系统,刷系统,让摇滚派的ubuntu系统运行起来.   Rock Pi 4B plus 介绍   ROCK Pi 4 是 Ra ...

  3. Springboot原理

    1. SpringBoot特点 一个starter导入所有 依赖管理 父项目做依赖管理:声明了所需依赖的版本号 依赖管理 <parent> <groupId>org.sprin ...

  4. 流程控制( if while )

    目录 流程控制 必知必会 分支结构 if 1.单 if 分支结构 2. if与else连用 3. if, else和 elif if 判断之嵌套 if 练习题 while 循环 while+break ...

  5. 【ybtoj】二分算法例题

    [基础算法]第三章 二分算法 例一 数列分段 题目描述 对于给定的一个长度为N的正整数数列A,现在将其分成M段,并要求每段连续,且每段和的最大值最小. 输入格式 第1行包含两个正整数N,M. 第2行包 ...

  6. 我们一起来学Shell - 初识shell

    文章目录 Shell 的分类 `bash` `csh` `ksh` `tcsh` `sh` `nologin` `zsh` Shell 能做什么 bash 环境变量文件 `/etc/profile` ...

  7. BigDecimalAvoidDoubleConstructorRule:不要直接用double变量作为构造BigDecimal的参数

    先上结论: 不要直接用double变量作为构造BigDecimal的参数. 线上有这么一段Java代码逻辑: 1,接口传来一个JSON串,里面有个数字:57.3. 2,解析JSON并把这个数字保存在一 ...

  8. 树莓派GPIO开发(二)RGB模块-PWM调节

    配置环境 系统:Raspbian11(官方64位) 设备:树莓派CM4 一.PWM简单介绍 全称:Pulse-width modulation,脉冲宽度调制,简单的数模转换方法 1.基本原理 脉冲宽度 ...

  9. 树莓派GPIO开发(一):激光头传感器模块的使用

    配置环境 系统:Raspbian11(64位) 设备:树莓派CM4 一.写在前面 主要为了测试我捡漏买的CM4的拓展版 拓展板子没有焊接引脚,但是预留的接口 手动焊接一下 测试成功 ,说明我捡的这块板 ...

  10. 已经安装的nginx增加额外配置步骤

    这里以安装第三方ngx_http_google_filter_module模块为例nginx的模块是需要重新编译nginx,而不是像apache一样配置文件引用.so1. 下载第三方扩展模块ngx_h ...