写在前面
vulnhub的靶机常常检测不到ip地址,一般考虑网卡启动失败的原因,参考这篇文章里提到的方法,修复虚拟机网卡的问题。
探测

nmap探测发现开了ftp服务,ssh服务以及http服务
暴力穷举网站路径,发现一个叫hidden_text的文件,看名字就知道要搞事情

浏览器打开这个文件,发现有个超链接

打开这个超链接,发现是一个二维码。二维码本质上就是一个字符串,用微信扫一下,得到字符串源码:

攻击
此时我们观察这个字符串里的这一段:
USER=userftp PASSWORD=ftpp@ssword
好像就是ftp的登陆账号信息,尝试登陆:

成功登录ftp
当前路径发现有两个文件,下载到本地:

分别打开两个文件:

看样子,是留给一个叫robin的系统管理员的留言,让他在下面的文件里选一个强密码。
ok,hydra爆破之
hydra -l robin -P /root/p_lists.txt -t 6 ssh://192.168.3.128
得到robin管理员的密码robin:k4rv3ndh4nh4ck3r:

ssh连接robin的账号

查看系统信息,拿到一个userflag

提权
这个提权,我根据系统信息枚举了好多攻击脚本,然而一个个都失败了。后来我参考了网上别人的walkthrough里的提权方法,我从来没有试过用这种方法提权,这部机器正好学习一下。
在robin的家目录,进入一个project的文件夹

用sudo -l查看当前用户权限

貌似是说这里的文件不需要另一个用户的密码就可以执行
执行:
sudo -u jerry /home/robin/project/feedback.sh
进入feeback页面,填写信息

第二行填写字符串bash,就可以得到jerry的shell,然后再执行python3 -c 'import pty; pty.spawn("/bin/sh")'切换tty

由上图可知,jerry属于docker用户组,打开gtfobins这个网站,这个网站收录了很多命令行绕过本地安全限制的方法,查找到docker的绕过方法

执行docker run -v /:/mnt --rm -it alpine chroot /mnt sh

拿到root

拿flag