John the Ripper:支持多平台的密码破解器

安全 数据安全
John the Ripper是一个流行的口令破解工具,它支持Windows和Linux平台,是一个开源软件。如果我们想使用专门针对特定操作系统优化、并生成相应本地代码的商业版本的该产品,那么读者可以使用John the Ripper Pro,主页地址为http://www.openwall.com/john/pro/。读者可以根据需要购买或下载破解字典表。

John the Ripper是一个流行的口令破解工具,它支持Windows和Linux平台,是一个开源软件。如果我们想使用专门针对特定操作系统优化、并生成相应本地代码的商业版本的该产品,那么读者可以使用John the Ripper Pro,主页地址为http://www.openwall.com/john/pro/。读者可以根据需要购买或下载破解字典表。本文以Linux下的John the Ripper为例,说明使用该程序破解Linux下/etc/shadow口令文件的方法。

下载链接:http://down.51cto.com/data/146315

>>去网络安全工具百宝箱看看其它安全工具

首先我们了解一下John the Ripper都有什么选项,如表1所示,其中方括号中的内容为可选项。

选    项
描    述
--single
single crack模式,使用配置文件中的规则进行破解
--wordlist=FILE
--stdin
字典模式,从FILE或标准输入中读取词汇
--rules
打开字典模式的词汇表切分规则
--incremental[=MODE]
使用增量模式
--external=MODE
打开外部模式或单词过滤,使用[List.External:MODE]节中定义的外部函数
--stdout[=LENGTH]
不进行破解,仅仅把生成的、要测试是否为口令的词汇输出到标准输出上
--restore[=NAME]
恢复被中断的破解过程,从指定文件或默认为$JOHN/john.rec的文件中读取破解过程的状态信息
--session=NAME
将新的破解会话命名为NAME,该选项用于会话中断恢复和同时运行多个破解实例的情况
--status[=NAME]
显示会话状态
--make-charset=FILE
生成一个字符集文件,覆盖FILE文件,用于增量模式
--show
显示已破解口令
--test
进行基准测试
--users=[-]LOGIN|UID[,..]
选择指定的一个或多个账户进行破解或其他操作,列表前的减号表示反向操作,说明对列出账户之外的账户进行破解或其他操作
--groups=[-]GID[,..]
对指定用户组的账户进行破解,减号表示反向操作,说明对列出组之外的账户进行破解。
--shells=[-]SHELL[,..]
对使用指定shell的账户进行操作,减号表示反向操作
--salts=[-]COUNT
至少对COUNT口令加载加盐,减号表示反向操作
--format=NAME
指定密文格式名称,为DES/BSDI/MD5/BF/AFS/LM之一
--save-memory=LEVEL
设置内存节省模式,当内存不多时选用这个选项。LEVEL取值在1~3之间

除了口令破解程序之外,在这个软件包中,还包含了其他几个实用工具,它们对于实现口令破解都有一定的帮助,这些工具都放置在run目录下,下面分别予以简要介绍。

unshadow PASSWORD-FILE SHADOW-FILE

unshadow命令将passwd文件和shadow文件组合在一起,其结果用于John破解程序。通常应该使用重定向方法将这个程序的结果保存在文件中,之后将文件传递给John破解程序。

unafs DATABASE-FILE CELL-NAME

unafs从二进制AFS数据库中提取口令散列值,并生成John可用的输出,通常应该把这个输出重定向到文件中。

unique OUTPUT-FILE

删除字典表中的重复词汇,但不改变字典表中各词条项的顺序。

现在,我们使用unshadow命令得到一个破解程序好用的口令文件。下面的命令完成这个任务:

  1. unshadow /etc/passwd /etc/shadow > passwd.1 

它将/etc/passwd和/etc/shadow文件组合起来,结果保存到新的文件passwd.1中。

现在,运行John the Ripper。默认情况下,John使用passwd.lst作为攻击用的字典文件,我们可以编辑这个文件或创建自己的口令文件。示例8-1给出了使用默认字典文件破解口令的命令及其输出。

示例1:使用默认配置运行John the Ripper。

  1. linux:/usr/bin/john-1.  
  2. 6/run # ./john passwd.1Loaded 6 passwords with 6 different salts (Standard DES [24/32 4K])  
  3. newuser          (user2)  
  4. foobar           (user4)  
  5. 123456           (user3)  
  6. Mickey           (user1)  
  7. guesses:  4 time: 0:00:00:02 (3) c/s: 135389 trying: sampida - chillier 

示例1说明,破解了该主机上4个用户的口令。作为渗透测试人员,我们应该创建一个能够破解的口令表,如表2所示。

表2 已破解口令

用    户
口    令
User1
Mickey
User2
Newuser

续表

用    户
口    令
User3
123456
User4
Foobar

通过在命令行中使用show选项,可以观察破解的口令,如示例2所示。

示例2:使用John the Ripper显示破解后的口令。

  1. linux:/usr/bin/john-1.6/run # ./john -show passwd.1  
  2. user1:Mickey:502:100::/home/user1:/bin/bash  
  3. user2:newuser:503:100::/home/user2:/bin/bash  
  4. user3:123456:504:100::/home/user3:/bin/bash  
  5. user4:foobar:505:100::/home/user4:/bin/bash  
  6. 4 passwords cracked, 2 left  

如果我们想查看原始加密口令和破解后的口令,那么随时可以打开文件john.pot来观看,如示例3所示。

示例3:显示原始加密口令和破解后的口令。

  1. linux:/usr/bin/john-1.6/run # cat ./john.pot  
  2. VYvDtYmDSCOPc:newuser  
  3. G54NKwmDHXwRM:foobar  
  4. t5zO9hJzkv7ZA:123456  
  5. Ae.SZDrP7fCPk:Mickey 

 

责任编辑:佟健 来源: blog.chinaunix.net
相关推荐

2014-06-16 09:06:17

2018-12-14 08:35:16

2010-12-22 11:23:02

2011-01-04 16:16:59

2023-04-17 13:03:37

2011-12-09 10:17:07

2021-02-07 19:20:27

微软自动填充浏览器

2010-12-03 11:43:51

2009-12-07 13:55:47

2016-03-10 09:56:41

2010-11-03 13:11:21

2013-07-05 10:04:47

2010-06-10 15:44:53

2010-06-13 13:10:09

MySQLROOT密码

2012-05-11 10:16:17

2013-08-12 12:36:10

2009-04-27 22:18:56

2010-08-30 14:10:08

2011-05-12 14:06:19

2020-12-13 17:57:16

加密密码Python
点赞
收藏

51CTO技术栈公众号