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 - 博客园