借助John the ripper破解Linux密码

译文
安全 数据安全
本文介绍了John the ripper这款密码破解工具。

John the ripper是一款大受欢迎的、基于字典的密码破解工具。它使用内容全是密码的单词表,然后使用单词表中的每一个密码,试图破解某个特定的密码散列。换句话说,它又叫蛮力密码破解,这是一种最基本的密码破解方式。不过它也是最耗费时间、最耗费处理器资源的一种方法。尝试的密码越多,所需的时间就越长。

借助John the ripper破解Linux密码

John有别于Hdra之类的工具。Hydra进行盲目的蛮力攻击,其方法是在FTP服务器或Telnet服务器上的服务后台程序上尝试用户名/密码组合。不过,John首先需要散列。所以,对黑客来说更大的挑战是,先搞到需要破解的散列。如今,使用网上随处可得的免费彩虹表(rainbow table),比较容易破解散列。只要进入到其中一个网站,提交散列;要是散列由一个常见单词组成,那么该网站几乎立马就会显示该单词。彩虹表基本上将常见单词及对应散列存储在一个庞大的数据库中。数据库越大,涵盖的单词就越多。

但是如果你想在自己的系统上本地破解密码,那么John是值得一试的好工具之一。John跻身于Kali Linux的十大安全工具。在Ubuntu上,它可以通过新立得软件包管理器(synaptic package manager)来安装。

我在本文中将向各位介绍如何使用unshadow命令连同John,在Linux系统上破解用户的密码。在Linux上,用户名/密钥方面的详细信息存储在下面这两个文件中。

/etc/passwd
/etc/shadow

实际的密码散列则存储在/etc/shadow中;只要对该机器拥有根访问权,就可以访问该文件。所以,试着从你自己的Linux系统来访问该文件。或者先创建一个使用简单密码的新用户。我会在自己的Linux系统上创建一个名为happy的新用户,其密码为chess。

root@kali:~# adduser happy
Adding user `happy' ...
Adding new group `happy' (1001) ...
Adding new user `happy' (1000) with group `happy' ...
Creating home directory `/home/happy' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for happy
Enter the new value, or press ENTER for the default
 Full Name []:
 Room Number []:
 Work Phone []:
 Home Phone []:
 Other []:
Is the information correct? [Y/n] y
root@kali:~#

为了方便演示,最好使用一个简单的密码,那样你没必要等待太长的时间。由于我们的新用户已创建完毕,现在可以破解其密码了。

unshadow

unshadow命令基本上会结合/etc/passwd的数据和/etc/shadow的数据,创建1个含有用户名和密码详细信息的文件。用法相当简单。

root@kali:~# unshadow
Usage: unshadow PASSWORD-FILE SHADOW-FILE
root@kali:~# unshadow /etc/passwd /etc/shadow > ~/file_to_crack

我们将unshadow命令的输出结果重定向至名为file_to_crack的新文件。

借助John来破解

现在这个新文件将由John来破解。就单词表而言,我们将使用Kali Linux上的John随带的密码列表。它位于下面这个路径:

/usr/share/john/password.lst

你也可以使用自己的密码列表。

root@kali:~# john --wordlist=/usr/share/john/password.lst ~/file_to_crack 
Warning: detected hash type "sha512crypt", but the string is also recognized as "crypt"
Use the "--format=crypt" option to force loading these as that type instead
Loaded 2 password hashes with 2 different salts (sha512crypt [64/64])
chess            (happy)
guesses: 1  time: 0:00:00:21 DONE (Tue May 14 06:47:58 2013)  c/s: 300  trying: sss
Use the "--show" option to display all of the cracked passwords reliably
root@kali:~#

所以在上面这个命令中,John能够破解散列,为我们破解出用户“happy”的密码“chess”。现在,John能够破解,就因为密码“chess”出现在密码列表中。要是该密码没有出现在密码列表中,那么John就会失败。

使用show选项,列出所有被破解的密码。

root@kali:~# john --show ~/file_to_crack
happy:chess:1000:1001:,,,:/home/happy:/bin/bash

1 password hash cracked, 1 left
root@kali:~#

剩余的1个密码是用户root的密码。所提供的单词表中没有一个密码破解得了。

不用单词表

要是不使用密码列表就想借助John破解密码,最简单的办法就是这样:

root@kali:~# john ~/file_to_crack

按照说明文档

这会先尝试“简单破解”(single crack)模式,然后使用带规则的单词表,最后是尝试“增强破解”(incremental)模式。

参阅模式方面的说明文档:http://www.openwall.com/john/doc/MODES.shtml。

相关资源

http://www.openwall.com/john/doc/EXAMPLES.shtml

原文地址:http://www.binarytides.com/cracking-linux-password-with-john-the-ripper-tutorial/

责任编辑:蓝雨泪 来源: 51CTO.com
相关推荐

2010-12-01 16:51:44

2018-12-14 08:35:16

2013-05-13 11:10:31

2009-10-30 09:33:28

2013-11-18 11:41:37

2009-12-22 16:43:28

2010-10-27 10:15:40

2011-12-09 10:17:07

2013-07-05 10:04:47

2010-12-03 11:43:51

2009-10-29 09:50:32

2010-08-30 14:10:08

2014-11-19 09:15:35

2012-07-27 15:59:59

2018-06-29 11:11:42

2010-01-30 11:23:59

2010-09-17 10:39:56

2010-06-10 15:44:53

2022-03-25 21:17:43

正则神经网络元字符

2010-06-13 13:10:09

MySQLROOT密码
点赞
收藏

51CTO技术栈公众号