先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