先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
浙公网安备 33010602011771号