Skip to content

Latest commit

 

History

History
49 lines (35 loc) · 2.09 KB

Level06——破解Linux登录密码.org

File metadata and controls

49 lines (35 loc) · 2.09 KB

根据题目所述,flag06这个帐号的认证凭据是按照传统UNIX的方法储存的——意味着密文是存储在/etc/passwd里的,而不是/etc/shadow中的——因为把密码存到passwd里不安全,所以后的Linux发行版都将加密后的密码单独存放到/etc/shadow中的。

所以可以直接读取/etc/passwd里flag06加密后的密码:

level06@nebula:/home/flag06$ cat /etc/passwd | grep flag06
flag06:ueqwOCnSGdsuM:993:993::/home/flag06:/bin/sh

以下过程我都不是在exploit-exercises虚拟机上弄的,而是在我实体机上的Linux里弄的,为了方便安装john而已。有BackTrack的朋友可以选择把导出的记录放到BackTrack中解决,就可以节省很多步骤了:

先/tmp中建了个passwd文件内容如下:

flag06:ueqwOCnSGdsuM:993:993::/home/flag06:/bin/sh

接着从http://www.openwall.com/john/ 下载john的源码包并编译(不会的请见doc/INSTALL):

lu4nx@lx:~/john-1.7.9$ cd src
lu4nx@lx:~/john-1.7.9$ make

这时,会提示选择操作系统平台,我选的是linux-ia64(读者按自己环境来选择):

lu4nx@lx:~/john-1.7.9/src$ make clean linux-ia64

之后是一段编译过程,稍等片刻。成功之后,进入跟src同级的run目录,然后执行join:

lu4nx@lx:~/john-1.7.9/src$ cd ../run
lu4nx@lx:~/john-1.7.9/run$ ./john /tmp/passwd     #john后跟刚才导出的密码文件
Loaded 1 password hash (Traditional DES [64/64 BS])
hello            (flag06)
guesses: 1  time: 0:00:00:00 100% (2)  c/s: 1813  trying: 123456 - magic
Use the "--show" option to display all of the cracked passwords reliably

hello就是破解出的密码。之前我还担心字典问题呢,怕它设置的密码在默认字典里找不到呢,看来我担心是多余的。

用这个密码在虚拟机上登陆flag06,然后执行getflag:

flag06@nebula:~$ getflag
You have successfully executed getflag on a target account