使用John the Ripper破解sha512加密的shadow文件密码

时间:2024-02-20 09:48:01

John the Ripper

shadow文件解析

文件的格式为:
{用户名}:{加密后的口令密码}:{口令最后修改时间距原点(1970-1-1)的天数}:{口令最小修改间隔(防止修改口令,如果时限未到,将恢复至旧口令):{口令最大修改间隔}:{口令失效前的警告天数}:{账户不活动天数}:{账号失效天数}:{保留}

其中{加密后的口令密码}的格式为 $id$salt$encrypted

id为1时,采用md5算法加密
id为5时,采用SHA256算法加密
id为6时,采用SHA512算法加密
salt为盐值,是对密码进行hash的一个干扰值
encrypted为散列值

下载安装

wget https://www.openwall.com/john/k/john-1.9.0.tar.gz #下载安装包 (官网:John the Ripper password cracker

tar -xvf john-1.9.0.tar.gz

cd john-1.9.0/src/

make   #找到属于自己的系统

make clean linux-x86-64  #正常linux64位系统就是这个

 

root:$6$RaPWxCGV$Z54bUhH9xccb9X580RP/cIgUVp3u6vKM2jJCaHme.fav0VnDs7UolXznMkPNAUu/dOhEDrdEmyTDNf1tIBMR./:17770:0:99999:7:::

 进入run目录:

  

 默认这些文件:

  

 复制shadow密文到一个文件中ppp,用./john ppp命令即可,出来后用./john --show ppp查看密码:

 

john的所有参数:

[root@iZb3kuz33l2fzfZ run]# ./john
John the Ripper password cracker, version 1.9.0
Copyright (c) 1996-2019 by Solar Designer
Homepage: http://www.openwall.com/john/

Usage: john [OPTIONS] [PASSWORD-FILES]
--single                   "single crack" mode
--wordlist=FILE --stdin    wordlist mode, read words from FILE or stdin
--rules                    enable word mangling rules for wordlist mode
--incremental[=MODE]       "incremental" mode [using section MODE]
--external=MODE            external mode or word filter
--stdout[=LENGTH]          just output candidate passwords [cut at LENGTH]
--restore[=NAME]           restore an interrupted session [called NAME]
--session=NAME             give a new session the NAME
--status[=NAME]            print status of a session [called NAME]
--make-charset=FILE        make a charset, FILE will be overwritten
--show                     show cracked passwords
--test[=TIME]              run tests and benchmarks for TIME seconds each
--users=[-]LOGIN|UID[,..]  [do not] load this (these) user(s) only
--groups=[-]GID[,..]       load users [not] of this (these) group(s) only
--shells=[-]SHELL[,..]     load users with[out] this (these) shell(s) only
--salts=[-]N               load salts with[out] at least N passwords only
--save-memory=LEVEL        enable memory saving, at LEVEL 1..3
--node=MIN[-MAX]/TOTAL     this node\'s number range out of TOTAL count
--fork=N                   fork N processes
--format=NAME              force hash type NAME: descrypt/bsdicrypt/md5crypt/
                           bcrypt/LM/AFS/tripcode/dummy/crypt

 

可以指定自己的密码本

--wordlist=mima.txt

 测试本机的破解速度

-test

 

做个测试

新建一个用户abc,密码123456,指定一个简单的密码本mima.txt,删除历史john.log文件

mima.txt:

abc
abcd
abcde
123456
123
1234
12345

abc用户的shadow密文单独保存到abc文件中:

abc:$6$.rsMQzX5$31imN2bMPitKad5kTfJxk8.yCMos0ocAG9rfJna/hv9KaDzCXTqvM57v1/Zk/v7SbFqvemhdijVdTqtE4Y3RX1:18813:0:99999:7:::

使用下面命令指定mima.txt去破解abc用户

./john --wordlist=mima.txt pwd/abc

几秒钟很快就出来了,毕竟字典那么短。。

 

 解出密码后有个标记,就是会更新文件john.pot和john.log

 

 看下john.log文件

 

再看下john.pot文件,--show参数就是从这里取解密好的明文

 

  

PS:用云服务器跑的可以使用screen保持会话,不间断的跑,还可以随时进去查看进度!

 

 

参考:

/etc/shadow文件破解,密码破解,md5,SHA256,SHA512破解_NetRookieX的博客-CSDN博客_sha512解密 

利用John the Ripper破解密码 - 逍遥人y - 博客园 

著名密码破解利器John the Ripper使用方法详解_不断攀登-CSDN博客 

安全工具——John the Ripper - 先知社区