John the Ripper免费的开源软件,是一个快速的密码破解工具,用于在已知密文的情况下尝试破解出明文的破解密码软件,支持目前大多数的加密算法,如DES、MD4、MD5等。它支持多种不同类型的系统架构,包括Unix、Linux、Windows、DOS模式、BeOS和OpenVMS,主要目的是破解不够牢固的Unix/Linux系统密码。目前的最新版本是John the Ripper 1.8.0版,针对Windows平台的最新免费版为John the Ripper 1.7.9版。
John是Kali Linux的十大安全工具,在Ubuntu上,可以通过软件包管理器( synaptic package manager )来安装。john the Ripper主要读取linux文件下的/etc/shadow文件。
安装John the Ripper
下载: wget http://www.openwall.com/john/j/john-1.8.0.tar.gz
解压: tar xvf john-1.8.0.tar.gz -C ./ 使用tar xvf john-1.8.0.tar.gz -C ./ 命令将源码压缩包解压到当前目录
进入指定目录:cd /john-1.8.0/run/src 切换到john-1.8.0目录里,可以看到手册文档(doc),运行程序(run),源码文件(src),进入到源码文件里
安装编译环境: yum -y install gcc gcc-c++ 在编译安装之前,使用yum命令安装的前提是要搭建好yum仓库
编译:make clean linux-x86-64 完成之后,在run目录下会生成一个名为john的可执行程序
复制shadow文件: cp /etc/shadow ./mima
执行john程序:./john ./mima 进行弱口令分析
john破解模式:
【字典档】破解模式(wordlist Mod)
命令:./john -w:password.txt passwd1.txt password.txt是密码字典 passwd1.txt是需要爆破的文件
【简单】破解模式(single Crack)
命令:./john -single passwd1.txt
john是单线程任务,如果中途切断了破解,需要删除john.rec文件。
命令:rm ./john.rec
john破解出来的密码存储在john.pot文件中
查看命令:cat ./john.pot
/etc/shadow文件解读:
/etc/passwd中一个用户对应一条记录,记录着这个用户的基本属性。该文件对所有用户可读。
/etc/shadow文件是passwd文件的一个影子,/etc/shadow文件中的记录行与/etc/passwd中的一一对应,它由pwconv命令根据/etc/passwd中的数据自动产生。但是/etc/shadow文件只有系统管理员才能够进行修改和查看。
/etc/shadow的截图:
账户名:账户名与/etc/passwd里面的账户名是一一对应的关系。
密码:这里可以看到3类,分别是奇奇怪怪的字符串、*和!!其中,奇奇怪怪的字符串就是加密过的密码文件。星号代表帐号被锁定,双叹号表示这个密码已经过期了。奇奇怪怪的字符串是以$6$开头的,表明是用SHA-512加密的,$1$ 表明是用MD5加密的、$2$ 是用Blowfish加密的、$5$是用 SHA-256加密的。
修改日期:这个是表明上一次修改密码的日期与1970-1-1相距的天数密码不可改的天数:假如这个数字是8,则8天内不可改密码,如果是0,则随时可以改。
密码需要修改的期限:如果是99999则永远不用改。如果是其其他数字比如12345,那么必须在距离1970-1-1的12345天内修改密码,否则密码失效。
修改期限前N天发出警告:比如你在第五条规定今年6月20号规定密码必须被修改,系统会从距离6-20号的N天前向对应的用户发出警告。
密码过期的宽限:假设这个数字被设定为M,那么帐号过期的M天内修改密码是可以修改的,改了之后账户可以继续使用。
帐号失效日期:假设这个日期为X,与第三条一样,X表示的日期依然是1970-1-1相距的天数,过了X之后,帐号失效。
保留:被保留项,暂时还没有被用上。
参考地址:http://blog.51cto.com/13728740/2137550