linux密码暴力破解
由于MD5加密已经发展了很多年,现在市面上已经积累了大量的MD5数据,这样,MD5的安全性也就受到了威胁,所以,从centos6.x版本开始,系统密码开始采用SHA-512加密,与MD5加密相比,SHA-512加密后长度更长,也就意味着SHA-512相比MD5更加安全.
密码加密原理
在我们进行密码破解前,我们首先需要了解linux系统密码加密的原理:
1. 密文由3部分组成,以”$”分隔,第一部分为ID,第二部分为盐值,第三部分为加密密文
什么是ID?
ID用来表示加密的方法.
如下图,
1
表
示
加
密
方
法
使
用
M
D
5
,
6表示加密方法使用SHA-512
密文示例:
$6$D0xsORq3b7GGsbYv$7L8myKFcJf1FqnvtzD.Zcbx9PeHnwGH1YJm/xDeEKmABPIxzUC7mQmEiIEHoHypXeJ969Tfp4c47WQgjkT0YH0
$id$salt$encrypted
采用方法 盐值 加密密文
——————————————
ID 加密方法
1 MD5
5 SHA-256
6 SHA-512
——————————————
什么是盐值(salt)?
盐值就是使用随机字符码混合密码加密算法所产生的密码,作用就是即使是同一个密码,使用同一种加密方式,所产生的密文值也不同
如上面提到的密文示例:
$6$D0xsORq3b7GGsbYv
什么是密文?
这个我就不多介绍了,同上面的密文示例
7L8myKFcJf1FqnvtzD.Zcbx9PeHnwGH1YJm/xDeEKmABPIxzUC7mQmEiIEHoHypXeJ969Tfp4c47WQgjkT0YH0 #这一段就是密文了
了解了原理,我们就可以使用工具来进行密码的暴力破解了
这里采用是利用python进行破解.
需要用到python下的 crypt 这个库,这个库下的.crypt方法可以根据猜想的密码原文和盐值来生成加密后的完整密文.
简单的讲一下思路:
1.获取到盐值
2.将获取的盐值和猜想的密码通过crypt.crypt()加密后生成的密文与系统中存储的密文进行对比,如果密文相同,则输出对应的用户和密码
环境准备:
1.python
2./root/Desktop/wordlist.TXT 存放着我们的密码字典
3./etc/shadow 存放着系统的密码
附上详细代码和注释,有不明的白的可以留言.
import crypt
user_passfile = "/etc/shadow"
zidian = "/root/Desktop/wordlist.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:
used[i.split(":")[0]]=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)
mingwen = look_d(zidian)
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)
linux密码暴力破解由于MD5加密已经发展了很多年,现在市面上已经积累了大量的MD5数据,这样,MD5的安全性也就受到了威胁,所以,从centos6.x版本开始,系统密码开始采用SHA-512加密,与MD5加密相比,SHA-512加密后长度更长,也就意味着SHA-512相比MD5更加安全.密码加密原理在我们进行密码破解前,我们首先需要了解linux系统密码加密的原理: 1. 密...
文章目录1 密文解析2 手动生成密文3 暴力破解 SHA-512 加密密码
在 /etc/shadow 文件中我们可以看到如下行
lilei:$6$zvt9aWzy$aoZDNPL0.mXFfsJczn.9gZtHZwmFTAFIbe4qHZd48zeB1mIka7jOsrmGvGMBV8LUV.iUdr6bk0hQZyGSOPiTy/:18420:0:99999:7:::
文件中每行代表一个用户,使用 “:” 分隔,每行的用户信息有 9 个字段,格式如下:
用户名:加密密码:最后一次修改时间:最小修改时
SHA256是SHA-2下细分出的一种算法
SHA-2,名称来自于安全散列算法2(英语:Secure Hash Algorithm 2)的缩写,一种密码散列函数算法标准,由美国国家安全局研发,属于SHA算法之一,是SHA-1的后继者。
SHA-2下又可再分为六个不同的算法标准
包括了:SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/2...
注意:目前没找到可用的在线解码工具,若有伙伴有,麻烦发我一下
一、/etc/passwd
/etc/passwd中一行记录对应着一个用户,每行记录又被冒号(😃 分隔为7个字段,其格式和具体含义如下:
用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
注意: /etc/passwd 文件是所有用户都可读的
2用户的密码原来直接存储在第二字段,但是为了安全,最后专门有了/etc/shadow文件,现在默认用x替代
用户的uid ,一般情况下root为0,1-499 默认为系统账号
# -*- coding: utf-8 -*-
# -------------------------------------------------------------------------------
# Author: CAO.T.F
# Date: 2019/10/8 16:04
# Description:
# -----------------------------------------------------------------------
SHA-256和SHA-512都是SHA-2算法家族的成员,它们都是一种哈希函数,用于将任意长度的消息压缩成固定长度的消息摘要。它们的主要区别在于哈希长度、安全性和速度等方面。
1. 哈希长度:SHA-256的哈希长度为256位,SHA-512的哈希长度为512位。因此,SHA-512算法生成的哈希值长度是SHA-256算法生成的哈希值长度的两倍。
2. 安全性:SHA-512算法比SHA-256算法更安全。SHA-512算法的哈希长度更长,可以提供更高的安全性,更难以被破解。SHA-512算法也可以抵抗更多的攻击,例如生日攻击和碰撞攻击等。
3. 速度:SHA-256算法比SHA-512算法更快。由于SHA-512算法的哈希长度更长,计算速度相对较慢,需要更多的计算资源。SHA-256算法的哈希长度较短,计算速度相对较快,适合在资源受限的环境中使用。
综上所述,SHA-256和SHA-512算法在哈希长度、安全性和速度等方面有所不同。SHA-512算法提供更高的安全性,但计算速度较慢,适合在高安全性要求的环境中使用。SHA-256算法计算速度较快,适合在资源受限的环境中使用。选择哪种算法应该根据具体的应用需求来决定。