全部博文(362)
分类: 网络与安全
2010-11-16 10:12:57
John the Ripper
John the Ripper()是一个流行的口令破解工具,它支持Windows和Linux平台,是一个开源软件。如果我们想使用专门针对特定操作系统优化、并生成相应本地代码的商业版本的该产品,那么读者可以使用John the Ripper Pro,主页地址为。读者可以根据需要购买或下载破解字典表。本节以Linux下的John the Ripper为例,说明使用该程序破解Linux下/etc/shadow口令文件的方法。
首先我们了解一下John the Ripper都有什么选项,如表8-2所示,其中方括号中的内容为可选项。
表8-2 John the Ripper的选项
选 项 | 描 述 |
--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命令得到一个破解程序好用的口令文件。下面的命令完成这个任务:
它将/etc/passwd和/etc/shadow文件组合起来,结果保存到新的文件passwd.1中。
现在,运行John the Ripper。默认情况下,John使用passwd.lst作为攻击用的字典文件,我们可以编辑这个文件或创建自己的口令文件。示例8-1给出了使用默认字典文件破解口令的命令及其输出。
示例8-1:使用默认配置运行John the Ripper。
示例8-1说明,破解了该主机上4个用户的口令。作为渗透测试人员,我们应该创建一个能够破解的口令表,如表8-3所示。
表8-3 已破解口令
用 户 | 口 令 |
User1 | Mickey |
User2 | Newuser |
续表
用 户 | 口 令 |
User3 | 123456 |
User4 | Foobar |
通过在命令行中使用show选项,可以观察破解的口令,如示例8-2所示。
示例8-2:使用John the Ripper显示破解后的口令。
如果我们想查看原始加密口令和破解后的口令,那么随时可以打开文件john.pot来观看,如示例8-3所示。
示例8-3:显示原始加密口令和破解后的口令。