先nmap一下:

 

 发现2049端口开放了nfs网络文件系统,showmount查看nfs服务器共享信息,-e指定IP:

 

 设置本地的挂接点:

 

 进行挂载:mount [-t vfstype] [-o options] device dir(device 表示要挂接(mount)的设备,dir表示挂接点(mount point)。)

 

 尝试创建1001组id1001用户id的用户:

groupadd 命令用于创建一个新的工作组,新工作组的信息将被添加到系统文件中。实例:groupadd -g [id] group

useradd命令用于创建一个用户账号,--uid指定uid,--group指定所属组

 

 于是我们创建了一个uid个gid都是1001的新用户newuser,然后su - newsuer  (使用su - 是为了同时切换shell环境,参考http://www.ha97.com/4001.html)

 

 这时候可以正常访问.ssh目录了:

 

 其中的user.txt中含有第一个flag:

 

然后id_rsa.pub里面是公钥,可以看到用户名是karl:

 

 那么id_rsa应该就是对应的私钥了,拷贝下来进行ssh登录试试(如果id_rsa使用不了可能需要chmod 600 id_rsa 一下,好像是为了不允许他人访问):

 

 那么使用john破解密码,得到密码是sheep:

 

 连接成功以后发现是个rhash,很多命令都无法执行:

 

 那么重新连接并指定shell:

 

 寻找具有setuid的root的文件:

 

 发现有一个cp可以使用,那么下面的思路就是通过cp覆盖原有的passwd文件:

使用openssl生成newroot-666的密码加密(应该是MD5吧):

 

 然后将靶机的/etc/passwd文件拷贝到kali端,并在最后一行添加上newroot用户的相关信息:

再在kali端开启SimpleHTTPServer:

 

 靶机端通过wget下载kali端的passwd:

 

 下载成功后通过cp命令覆盖靶机上原有的/etc/passwd,然后su newroot并输入密码666即可:

 

 最终获得了flag:

 

 结束。

 

参考:

https://www.cnblogs.com/hack404/p/12129105.html

https://zhuanlan.zhihu.com/p/361474839