Level 06 —— 破解Linux登录密码

详情:

flag06账户凭据来自旧版Unix系统。要执行此级别,请以level06账户和密码level06登录。此级别的文件位于/home/flag06。

Solution:

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

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

image-20250603215207597

这里flag06后面跟着是密码的哈希值。

在/tmp中新建一个passwd文件内容如下:

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

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

但是这里我是直接在Kali Linux上用john破解的(Kali Linux上自带john):

image-20250603220640070

发现flag06账户的密码是hello,直接登录flag06用户:

image-20250603220747745