Guide for John the Ripper

文章前言

在我们的渗透测试中或多或少都会涉及到密码的破解,本篇文章将对John的常用用法进行简单的介绍~

工具简介

John the Ripper是目前最受欢迎的密码测试和破解程序之一,它主要用于在已知密文的情况下尝试破解出明文,支持目前大多数的加密算法,如DES、MD4、MD5、SHA-1等,John the Ripper最初是为UNIX操作系统开发的,后来也相继为其他平台开发,目前支持包括Unix、Linux、Windows、DOS模式、BeOS和OpenVMS等多种平台。

基本使用

John the Ripper已预安装在了Kali中,本文涉及的破解皆在Kali中进行~

帮助信息

我们可以在Kali 终端输入"john"直接运行该工具并查看其相关参数说明:

john

配置文件

john.conf是john默认破解规则的配置文件,用户可自行设置每种模式下的具体破解规则,一般特殊的需求,我们是很少改配置的,有兴趣可以自我看一下:

/usr/share/john/john.conf

内置应用

john内置了一些应用用于辅助破解一些文件格式的密码散列,这些辅助实用程序可以通过以下命令查看:

locate *2john

破解模式

John the Ripper以四种不同的方式破解密码:

  • Wordlist mode:有规则及无规则的字典破解模式
  • Single crack mode:最简单的咨讯(源自登录名、"GECOS"、"Full Name"等字段)来进行破解的工作, 速度最快
  • Incremental mode:增强破解模式也被为"暴力法",这将尝试所有可能的字元组合
  • External mode:用户可以自我定义破解模式

纤细的介绍可以移步:https://www.openwall.com/john/doc/MODES.shtml

用户凭证1

下面介绍两种用于破解Linux用户凭证的方法,在此之前我们需要先创建一个用户——Al1ex/123456

方法1:直接破解

首先查看shadow文件,获取用户Al1ex的凭据并将其保存到一个文本文件中,这里将其命名为crack.txt

cat /etc/shadow

之后使用John直接进行破解

john crack.txt

方法2:批量破解

对于第二种方法我们将破解所有用户的凭据,要做到这一点我们将不得不使用John the ripper的一种叫做"unshadow"的工具,通过该工具来组合/etc/passwd和/etc/shadow文件,以便john可以使用它们来破解它们:

unshadow /etc/passwd /etc/shadow > crack.txt

之后使用John来破解所有用户的用户凭证

john crack.txt

当然你也可以通过参数"--wordlist"来指定字典路径(可以是自我前期信息收集阶段构建的字典也可以是John自带的字典)

john --wordlist=/usr/share/john/password.lst crack.txt

用户凭证2

下面介绍对于Windows的身份凭证的破解方法~

首先,我们需要通过reg的save选项将注册表中的SAM、System文件导出到本地磁盘(需要管理员权限哦)

reg save hklm\sam sam.hive
reg save hklm\system system.hive

之后在Kali中使用samdump执行以下命令将哈希提取到 hash.txt 文件中

samdump2 system.hive sam.hive > hash.txt

之后使用John进行破解

john -format=NT hash.txt  #破解,使用john自带的密码字典

之后可以通过以下命令来查看指定格式的破解结果

john --show -format=NT hash.txt   

中断/恢复

当John the Ripper正在破解一些密码时,我们可以中断或暂停破解,并在方便的时候恢复或重新开始破解,您可以通过按"q"或crtl+c来中断cracking

crtl+C

要恢复破解过程,我们可以使用John the Ripper的–restore选项即可

john --restore

加密破解

下面我们使用John the Ripper来解密常见的加密密文,关于John the Ripper支持的破解加密类型可以执行以下命令来查看:

john --list=formats

MD4

要解密md4加密,我们将使用rockyou作为单词列表并破解密码,如下所示:

john --wordlist=/usr/share/wordlists/rockyou.txt --format=raw-md4 crack.txt

MD5

要解密md5加密,我们将使用rockyou作为单词列表并破解密码,如下所示:

john --format=Raw-MD5 rack.txt

#rack.txt格式
usernaem:passwordHash

SHA1

要解密sha1加密,我们可以使用rockyou作为字典列表并破解密码,如下所示:

john --wordlist=/usr/share/wordlists/rockyou.txt --format=raw-sha1 crack.txt

SHA256

为了解密sha256加密,我们将使用rockyou作为单词列表并破解密码,如下所示:

john --wordlist=/usr/share/wordlists/rockyou.txt --format=raw-sha256 crack.txt

SHA512

为了解密sha256加密,我们将使用rockyou作为单词列表并破解密码,如下所示:

john --wordlist=/usr/share/wordlists/rockyou.txt --format=raw-sha256 crack.txt

RIPEMD128

要解密ripemd128加密,我们将使用rockyou作为单词列表并破解密码,如下所示:

john --wordlist=/usr/share/wordlists/rockyou.txt --format=ripemd-128 crack.txt

RIPEMD160

要解密ripemd160加密,我们将使用rockyou作为单词列表并破解密码,如下所示:

john --wordlist=/usr/share/wordlists/rockyou.txt --format=ripemd-160 crack.txt

Whirlpool

要解密whirlpool加密,我们将使用rockyou作为单词列表并破解密码,如下所示:

john --wordlist=/usr/share/wordlists/rockyou.txt --format=whirlpool crack.txt

RAR Password

下面我们将破解一些压缩文件,为此我们必须创建一个要压缩的文件,所以让我们使用echo命令来完成:

echo Hacking.in > file.txt

John the Ripper可以破解rar文件密码,为了测试密码的破解,首先让我们创建一个压缩的加密rar文件

rar a -hpabc123 file.rar file.txt

#参数说明
a = Add files to archive 
hp[password] = Encrypt both file data and headers

当您尝试打开文件时,会出现以下提示

现在john不能直接破解这个密钥,首先我们必须改变它的格式,这可以使用一个名为"rar2john"的john实用程序来完成

rar2john file.rar > crack.txt

现在使用jhon来进行破解:

john --wordlist=/usr/share/wordlists/rockyou.txt crack.txt

ZIP Password

John the Ripper可以破解zip文件密码,为了测试密码的破解,首先让我们创建一个压缩的加密zip文件

zip -er file.zip file.txt

#参数说明:
e = Encrypt 
r = Recurse into directories

以上的操作会把我们的file.txt压缩和加密成file.zip,因此当您试图打开文件时,您将会看到以下提示:

现在john不能直接破解这个密钥,首先我们必须改变它的格式,这可以使用一个名为"zip2john"的john实用程序来完成

zip2john file.zip > crack.txt

现在让我们用John the Ripper来破解:

john --wordlist=/usr/share/wordlists/rockyou.txt crack.txt

7-Zip Password

John the Ripper可以破解7-zip文件密码,为了测试密码的破解,首先让我们创建一个压缩的加密7z文件

7z a -mhe file.7z file.txt -p"password"
    
#参数说明:
a = Add files to archive
m = Set compression Method
h = Calculate hash values for files
e = Encrypt file
p = set Password

这将把我们的file.txt压缩和加密成一个file.7z,当您试图打开文件时,您将会收到以下提示

现在john不能直接破解这个密钥,我们需要改变它的格式,这可以使用一个名为"7z2john"的john实用程序来完成,这不是内置的实用程序,可以从这里下载:

https://github.com/truongkma/ctf-tools/blob/master/John/run/7z2john.py

python 7z2john.py file.7z > crack.txt

现在让我们用John the Ripper来破解这个hash:

john -wordlist=pass.txt crack.txt

PuTTY Password

John the Ripper可以破解RSA加密中创建的putty私钥,为了测试私钥的破解,首先我们必须创建一组新的私钥,为了做到这一点,我们将使用一个随putty一起提供服务的工具——"putty密钥生成器"

点击"generate"生成密钥后,我们会看到一个窗口,我们将在其中输入密钥密码

输入密码后,单击保存私钥,在生成的传输密码会以.ppk文件的形式保存,之后复制ppk文件到kali linux,现在john不能直接破解这个密钥,首先我们必须改变它的格式,这可以使用一个名为"putty2john"的john实用程序来完成:

putty2john file.ppk > crack.txt

之后使用john进行破解

john crack.txt

Keepass2 Crack

John the Rippe可以破解keeppass2 key,为了测试密钥的破解,首先我们必须创建一组新的密钥,为此我们将使用一个名为"kpcli"的实用程序并通过该程序的命令"Save as"创建一个数据库文件,并将该数据库文件命名为al1ex.kdb:

john不能直接破解这个密钥,首先我们必须改变它的格式,这可以使用一个名为"keepass2john"的john实用程序来完成:

keepass2john al1ex.kdb > crack.txt

现在使用John the Ripper来破解这个密码:

john --wordlist=/usr/share/wordlists/rockyou.txt crack.txt

Other Password

a、mssql 2012系列数据库用户hash:

john --wordlist=weakpass.txt --format=mssql12 hash.txt

b、mysql 系列数据库用户hash:

 john --wordlist=weakpass.txt --format=mysql-sha1 hash.txt

c、oracle 11g 数据库用户hash

john --wordlist=weakpass.txt --format=oracle11 hash.txt

相关链接

https://github.com/openwall/john

https://openwall.info/wiki/john/johnny

https://www.openwall.com/lists/john-users/

https://www.jisuan.mobi/index.php?tag=hash

https://countuponsecurity.files.wordpress.com/2016/09/jtr-cheat-sheet.pdf

 

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FLy_鹏程万里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值